SCRIPT POWERSHELL CREATION UTILISATEURS ACTIVE DIRECTORY

Pour éviter de saisir les utilisateurs un par un dans Active Directory, il est nécessaire de faire un script qui va automatiser cette manipulation. J’ai réalisé un script en powershell. Voici comment j’ai procédé.

Le script a été testé sur Microsoft Windows Serveur 2008 R2 Standard 64 Bits

Sources :

 1 – Installation d’applets (commandes powershell) supplémentaire

Pour créer les utilisateurs en utilisant la commande New-ADUser il faut installer des applets supplémentaires. Les télécharger à l’adresse suivante.

http://www.quest.com/powershell/activeroles-server.aspx

Après avoir téléchargé le fichier, double cliquer sur le fichier. La fenêtre suivante apparait.

Cliquer sur Next

Cocher I accept the terms in the License Agreement puis cliquer sur Next

Saisir le Nom et l’Entreprise puis cliquer sur Next.

Cliquer sur Install

L’installation se déroule

Cliquer sur Finish pour terminer l’installation.

Les applets sont maintenant installés. Il y a deux possibilités pour les utiliser. Tout d’abord, en saisissant cette commande Add-PSSnapin Quest.ActiveRoles.ADManagement dans une fenêtre shell qui va permettre de charger le module

Saisir la commande puis appuyer sur [Entree]

Puis saisir les commandes de format New-QA… par exemple New-QADUser qui permet de rajouter un utilisateur dans active directory.

Il existe aussi un shell qui prend en compte directement le module. Pour l’exécuter, cliquer sur Démarrer > Saisir PowerShell > Module Active Directory pour Windows PowerShell

La fenêtre suivante apparait et saisir les commandes de format New-A… par exemple New-ADUser qui permet de rajouter un utilisateur dans active directory.

2 – Création du Script et du fichier CSV

2-1 Le Script

Dans mon cas, le script va s’exécuter via powershell . Le script va commencer par charger le module Quest Active Directory puis importer l’utilisateur depuis un fichier CSV et pour finir créer l’utilisateur.

Dans le script, modifier suivant vos informations les parties en gras. Les utilisateurs seront ajoutés dans Users. Le script et le fichier CSV sont stocké dans C:\Add_User_Powershell\.

 

#

# Création d’utilisateurs dans Active Directory

# Ce script interroge un fichier CSV contenant la liste des utilisateurs

#

# Pré-Requis

# [+] http://www.quest.com/powershell/activeroles-server.aspx

#

# Auteur : POMENTE Guillaume

# Blog : http://guillaume-p.net

#

# Version 1.0

 

# Chargement du module Quest ActiveDirectory

echo « Chargement du Module Quest Active Directory »

Add-PSSnapin Quest.ActiveRoles.ADManagement

 

# Importation du fichier .CSV

echo « Importation du fichier CSV »

$utilisateurs = Import-Csv -path « C:\Add_User_Powershell\test_users.csv » -delimiter « ; »

 

# Création de l’utilisateur

 

foreach($utilisateurs in $utilisateurs)

    {

        $pass = $utilisateurs.password

        $nom = $utilisateurs.sn

        $prenom = $utilisateurs.givenname

        $displayname = $utilisateurs.displayname

        $name = $utilisateurs.name

        $login = $utilisateurs.samaccountname

        $mail = $utilisateurs.mail

        $ou = « CN=Users,DC=votredomaine,DC=local »

        $password = $utilisateurs.password


echo « Création de l’utilisateur $displayname »

 

        new-QADuser -name « $name » -FirstName « $prenom » -LastName « $nom » -displayname « $displayname » -samaccountname « $login » -email « $mail » -UserPassword (convertto-securestring « $password » -asplaintext -force ) -ParentContainer « $ou » | Enable-QADUser

 

echo « Utilisateur $displayname crée »

    }

 

Si jamais vous souhaitez passer directement par le Module Active Directory pour Windows PowerShell (vu ci-dessus) remplacer la commande new-QADuser -name « $name […]Enable-QADUser par celle-ci :

 

New-ADUser –name « $name » –givenname « $givenname » –surname « $sn » –displayname « $displayname » –samaccountname « $login » –emailaddress « $mail » –enabled 1 –accountpassword (convertto-securestring $password –asplaintext –force)

 

2-2 Le fichier CSV

 

Le fichier CSV, va contenir la liste de tous les utilisateurs à créer. Il doit être rédigé comme ci-dessous.

 

displayname;sn;givenname;name;samaccountname;mail;password

Prenom Nom;Nom;Prenom;identifiant;identifiant;adresse mail;motdepasse;

2-3 Exécution du script

Vérifier que votre script et votre fichier CSV sont dans le même dossier. Dans mon cas C:\Add_User_Powershell\

Se déplacer dans le dossier Add_User_Powershell

cd C:\ Add_User_Powershell

Saisir .\nomduscript.ps1 dans mon cas .\add_users_AD.ps1

Si tout s’est correctement déroulé, vous devriez avoir cette fenêtre avec un récapitulatif des utilisateurs créés.

Auteur : POMENTE Guillaume

14 réponses à “SCRIPT POWERSHELL CREATION UTILISATEURS ACTIVE DIRECTORY

  1. Salut,

    Je commence tout juste à essayer de comprendre PowerShell mais ce n’est pas chose facile!!!

    Tout d’abord, merci pour ton script et tuto. Cependant, j’ai suivi tout ce que tu as fait mais j’ai un message en retour.
    Peux tu m’aider à comprendre STP?

    voici le message:

    Impossible de charger le fichier C:\Users\D1noeil\Desktop\Test_ Script_PS\new-users.ps1. Le fichier C:\Users\D1noeil\Desktop\Test_ Script_PS\new-users.ps1 n’est pas signé numériquement. Le script ne sera pas exécuté sur le sys
    tème. Pour plus d’informations, consultez « get-help about_signing »..
    Au niveau de ligne : 1 Caractère : 16
    + .\new-users.ps1 <<<<
    + CategoryInfo : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

  2. Oups, au temps pour moi! J’avais pas vu ton autre lien.
    Je n’ai plus cette erreur mais j’en ai une nouvelle….

    Voici la nouvelle erreur lorsque j’exécute le script:

    Le terme « new-aduser » n’est pas reconnu comme nom d’applet de commande, fonction, fichier de script ou programme ex
    utable. Vérifiez l’orthographe du nom, ou si un chemin d’accès existe, vérifiez que le chemin d’accès est correct et
    essayez.
    Au niveau de C:\Users\D1noeil\Desktop\Test_ Script_PS\new-users.ps1 : 12 Caractère : 11
    + new-aduser <<<< -name $displayname -surname $nom -givenname $prenom -displayname $displayname -samaccountname $log
    -accountpassword (convertto-securestring $pass -asplaintext -force) -Path $ou -description $description -title $fonc
    on -enabled $true
    + CategoryInfo : ObjectNotFound: (new-aduser:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    D'ou cela peut il venir?

    Merci par avance

  3. Bonjour Guillaume

    J’utilise ton script et j’ai quelques soucis !
    Est-ce que tu as une idée?

    Par avance merci 🙂

    New-QADUser : A referral was returned from the server.
    At C:\add_user_powershell\add_users_AD.ps1:57 char:20
    + new-QADuser <<<< -name " $name " -FirstName " $givenname " -LastName " $name " -displayname " $displayname "
    -samaccountname " $login " -email " $mail " -UserPassword (convertto-securestring " $password " -asplaintext -force )
    -ParentContainer " $ou " | Enable-QADUser
    + CategoryInfo : NotSpecified: (:) [New-QADUser], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powers
    hell.Cmdlets.NewUserCmdlet

  4. Bonjour Guillaume,

    Tout d’abord, merci pour votre tutoriel. Je rencontre cependant un message d’erreur lorsque je tente d’exécuter mon script. Pourtant, j’ai suivis à la lettre les différentes étapes, et j’ai conservé les chemins d’accès ( C:\Add_User_Powershell )

    Vous trouverez ci-joint une capture d’écran montrant l’erreur rencontré, en espérant que vous trouverez le plus de détails possible: http://npic.imagup.com/2/1177743849.jpg

    D’avance, merci pour votre aide !

    Cordialement,

  5. Bonjour,

    Je voudrais rajouter le chemin de création à ce script, en effet mes utilisateurs doivent être créés dans plusieurs UO, cela est il possible ?

    1. Bonjour,

      Oui c’est tout à fait possible. Il suffit de rajouter une colonne dans le fichier csv puis modifier la variable $ou = « CN=Users,DC=votredomaine,DC=local »

      Cordialement,

  6. Bonjour,

    Merci pour ce tutoriel mais dommage que vous n’ayez pas mis le contenu de votre fichier csv. Car dans la colonne name et sammacountname qui sont de sidentifiants je ne sais pas quoi mettre..

    1. Bonjour,

      Voici une exemple de fichier CSV.

      displayname;sn;givenname;name;samaccountname;mail;password
      Guillaume POMENTE;POMENTE;Guillaume;Guillaume POMENTE;guillaume.pomente;guillaume.pomente@mondomaine.test;monmotdepasse;

      Cordialement,

  7. Bonjour,

    Et merci pour ce super tuto et script bien pratique !!
    J’aurai cependant une question (car j’y suis confronté) comment traiter les homonymes ? C’est à dire s’il y a déja un utilisateur « hernandez » dans l’AD dans l’état il ne sera pas crée.
    Dans mon organisme quand cela arrive on a par habitude de reprendre le nom et d’y ajouter « _1ère lettre du prénom », et cas plus rare si le login existe encore on ajoute « _2premieres lettres du prénom » (etc…) .

    Encore merci.
    Cordialement,

    1. Bonjour,
      Plusieurs politique peuvent être appliqué. Il faut mettre en place celle qui vous correspond le mieux. Dans mon cas je fais prenom.nom ça limite les homonymes.
      Cordialement,

Les commentaires sont clos.