Créer des comptes utilisateurs par lot avec PowerShell v2 et le module Active Directory Server 2008 R2

I. Présentation

Le module  Active Directory Server 2008 R2 a fait son apparition dans Windows Server 2008 R2. Il est installé en même temps que le rôle Contrôleur de domaine Active Directory. Le module Active Directory apporte deux choses : un fournisseur  ainsi qu’un ensemble de commandlets. Grâce à ce module, il est désormais possible d’administrer en ligne de commandes PowerShell les rôles « Active Directory Domain Services (AD DS) » et « Active Directory Lightweight Domain Services (AD LDS) ».

Prenons l'exemple d'une problématique courante qui consiste à ajouter  plusieurs utilisateurs Active Directory : Au moyen de l’interface graphique Windows cette tâche requiert aujourd’hui un ensemble de clics de souris pour chaque utilisateur créé. Les informations doivent être saisies à plusieurs reprises  d’où un risque d’erreurs accru.

 

II. Procédure

Pour répondre à cette problématique nous pourrions imaginer la création d’un fichier Excel où chaque ligne contiendrait la description d’un utilisateur, et en particulier les champs suivants :

  • Name : nom de l’objet (il s’agit du nom visible dans la console de gestion de l’Active Directory) ;

  • SAMAccountName : nom de login ;

  • Surname : nom de l’utilisateur ;

  • GivenName : prénom de l’utilisateur ;

  • Description : description du compte ;

  • ProfilePath : chemin à spécifier en cas de profils itinérants ;

  • ScriptPath : script de logon ;

  • HomeDrive : lettre de connexion au home directory ;

  • HomeDirectory : chemin réseau (au format UNC) vers un partage sur un serveur.

listeUtilisateurs

listeUtilisateurs

Nous pourrions ensuite enregistrer ce fichier au format CSV (Comma Separated Values) pour en obtenir un fichier texte dont les champs seraient séparés par des points-virgules, Excel ne sachant pas utiliser la virgule comme séparateur. Un tel fichier pourrait ressembler à celui-ci :

Name;SAMAccountName;surname;givenName;Description;profilePath;scriptPath;
HomeDrive;HomeDirectory
Dupont;Dupont;Dupont;Paul;Compte utilisateur;;login.vbs;L:;\\server1\users
Timon;Timon;Timon;Marc;Compte utilisateur;;login.vbs;L:;\\server1\users

Avec PowerShell v2 couplé aux commandlets apportées par le module Active Directory Server 2008 R2, vous allez voir avec quelle facilité nous répondrons à cette problématique .

Le fait qu’Excel ne sache pas enregistrer les fichiers CSV avec un séparateur autre que le point-virgule ne nous dérange pas plus que cela car la commandlet Import-CSV s’est doté du paramètre Delimiter qui permet de spécifier un délimiteur autre que la virgule.

De plus, avec le module Active Directory Server 2008 R2 nous disposons de la commande New-ADUser. Celle-ci lorsqu’on lui passe en entrée de pipeline un objet avec les bonnes propriétés créé directement l’utilisateur. Cela raccourcira considérablement notre script. Voir ci-après :

PS > (Import-Csv .\ListeUtilisateurs.csv -Delimiter ’;’) | New-ADUser

Si l’on souhaite créer les utilisateurs dans une unité d’organisation particulière, il suffit de préciser le paramètre Path, comme dans l’exemple suivant :

PS > (Import-Csv .\ListeUtilisateurs.csv -Delimiter ’;’) |
 New-ADUser -Path ’OU=Commerce,DC=NomDomaine,DC=com’

 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Oussama

Ravi de partager mes connaissances avec vous, n’hésitez pas à demander d’autres informations.
Cheers !

    oussama a publié 3 articles sur IT-Connect.See all posts by oussama

    16 réactions sur “Créer des comptes utilisateurs par lot avec PowerShell v2 et le module Active Directory Server 2008 R2

    • 02/06/2014 à 18:26
      Permalink

      Hello,

      Je suppose que A.D te laisse créer les comptes sinon tu ne ferais pas un sujet là-dessus mais alors comment tu gères les mots de passe de ces utilisateurs ensuite ?

      Tcho !

      Répondre
      • 02/06/2014 à 19:37
        Permalink

        Salut Cascador ,
        Il suffit juste d’ajouter un champ « Password » dans le fichier csv et indiquer les mots de passe .
        Regards .

        Répondre
    • 25/06/2014 à 14:29
      Permalink

      Salut Oussama,

      Et si on doit y créer des utilisateurs dans diverses OU voir des sous OU ?

      Merci.

      Répondre
      • 25/06/2014 à 15:26
        Permalink

        Salut ,

        Il suffit juste de regarder la dernière ligne :

        -Path ’OU=Commerce,DC=NomDomaine,DC=com’

        « OU=Commerce » c’est l’unité d’organisation .

        Merci.

        Répondre
        • 10/12/2014 à 16:31
          Permalink

          Salut Oussama,
          Les utilisateurs sont par défaut désactivés, y’a un moyen pour qu’ils soient activés directement après l’importation depuis le fichier.

          Merci.

          Répondre
    • 02/12/2014 à 19:30
      Permalink

      Salut Oussama,
      Les utilisateurs sont par défaut désactivés, y’a un moyen pour qu’ils soient activés directement après l’importation depuis le fichier.

      Merci.

      Répondre
    • Ping : LAMP | Pearltrees

    • 05/02/2015 à 08:08
      Permalink

      Bonjour,

      Est-il possible de rajouter l’OU dans le fichier Excel, car mes utilisateurs se trouvent dans différente OU ?

      Merci pour votre réponse.

      A Bientôt.

      Répondre
    • 18/03/2015 à 17:00
      Permalink

      Coucou et merci pour ce tuto excellent.

      Néanmoins je n’y arrive pas pour le mot de passe,

      j’ai bien rajouté le champ « Password » dans mon CSV mais à chaque import le compte est désactivé dans mon AD, et lorsque je tente de l’activer il me dit que « le mot de passe ne respecte pas la longueur… »

      alors que mes autres users créés manuellement ont le même :/

      Une idée ?

      Merci

      Répondre
      • 19/03/2015 à 13:58
        Permalink

        Salut Charline29,

        Peut-être que la stratégie de mot de passe a changée depuis ? as-tu tenté de créer un nouvel utilisateur manuellement avec ce mot de passe ?
        Si besoin, tu peux créer un compte sur le site et créer une nouveau sujet dans le forum pour que l’on s’intéresse de près à ton problème 🙂

        Bon après-midi
        Florian

        Répondre
    • 20/03/2015 à 14:28
      Permalink

      J’ai aussi le même soucis que Charline29 et mes stratégies de mot de passe fonctionne correctement car à la main sa marche. Y’as t’il une solution ?

      Répondre
    • 02/07/2015 à 14:13
      Permalink

      Article fort sympathique, une lecture agréable. Ce blog est vraiment pas mal, et les sujets présents plutôt bons dans l’ensemble, bravo ! Virginie Brossard LETUDIANT.FR

      Répondre
    • 24/03/2016 à 10:46
      Permalink

      Je suis toujours sur Windows Server 2008 et je suis bien content d’être tombé sur ton article ça m’a bien aidé!

      Répondre
    • 28/04/2016 à 15:21
      Permalink

      bonjour

      Perso je n’y arrives pas….

      avez vous un autre tuto ou vidéo un peux mieux illustré avec des screenshots svp???

      une fois le fichier modifier en .csv, je ne sais plus quoi faire…

      Répondre
    • 12/06/2017 à 14:05
      Permalink

      bonjour , j’ai utilisé la même technique mais j’ai eu besoin de plus d’arguments . Il y’en a certains que j’ai du modifier . Par exemple l’attribut « l » est celui de la ville il ne fonctionne pas , pourtant si je met « city » il remplit bien le champs ville . J’ai fais cela pour plusieurs attributs . Mais j’ai encore un soucis avec l’ attribut du champs « pays/region » qui serait l’équivalent de l’attribut « co » . J’ai mis toutes les traductions possibles ( ex : country ..) mais cela ne fonctionne toujours pas . Le reste de mes soucis sont pour les attributs « memerOf » (j’ai bien respecté la syntaxe CN=….,DC= j’ai essayé de rajouter des guillemets mais les champs ne se remplissent pas) et accountExpires ( j’ai remplis le champs au format JJ/MM/AAAA dans mon csv et pourtant il reste coché sur « jamais ») . Ce sont ces 3 attributs restant auquel j’ai des problèmes. Merci de bien pouvoir m’aider s’il vous plait .

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *