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
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’
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 !
Salut Cascador ,
Il suffit juste d’ajouter un champ « Password » dans le fichier csv et indiquer les mots de passe .
Regards .
Salut Oussama,
Et si on doit y créer des utilisateurs dans diverses OU voir des sous OU ?
Merci.
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.
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.
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.
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.
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
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
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 ?
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
Je suis toujours sur Windows Server 2008 et je suis bien content d’être tombé sur ton article ça m’a bien aidé!
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…
Merci.
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 .
Bonjour
Comment ajouté la creation de dossier personnel sur le disque « C: » part exemple pour chaque utilisateur du dossier csv
merci