Création de comptes utilisateurs Active Directory en bloc
Transcription
Création de comptes utilisateurs Active Directory en bloc
Création de comptes utilisateurs Active Directory en bloc L’utilisation d’un script est nécessaire pour créer plus rapidement des comptes à partir d’une liste de noms. Microsoft propose deux systèmes pour créer des comptes en bloc dans Active Directory : avec CSVDE ou LDIFDE, deux différents formats de base de données. LDIFDE est trop compliqué pour une simple création de comptes, CSVDE quant à lui reste assez limité, il lui est impossible par exemple de mettre un compte membre d’un groupe. A ma connaissance le langage idéal pour ce type de script est le VBS. Le principe de fonctionnement du script est de créer une liste d’utilisateurs avec différentes informations dans un fichier texte et d’exécuter le script VBS, les comptes sont instantanément créés dans Active Directory. Voici un exemple de script : Le script que je propose (détaillé plus loin, et téléchargeable au format TXT dans le sommaire du site) permet de récupérer le nom (sn), le prénom (GivenName) et le nom de session (sAMAccountName et userPrincipalName) pour chaque compte à créer d’un fichier texte. Il crée ensuite ces comptes dans une UO (Unité Organisationnelle) de l’Active Directory. Il intègre ces comptes dans un groupe d’utilisateurs et crée pour chacun un lecteur réseau (homeDirectory et homeDrive) dont le chemin est spécifié Le fichier texte doit être dans un endroit bien précis et doit être nommé « eleves.txt » pour que le script puisse le retrouver. Il doit être de cette forme : Chaque ligne correspond à un compte, les éléments sont séparés par des « : ». C’est de la forme : « Nom :Prénom :Nom de session » Pour chaque groupe d’utilisateurs un script doit être créé, dans cet exemple un script a aussi été créé pour les professeurs : 1 Une fois la liste des utilisateurs créés, il suffit d’exécuter le VBS approprié. ATTENTION le VBS n’accepte pas la création d’un compte déjà existant. Les comptes seront ainsi créés dans l’Active Directory : Voici le détail du script permettant de créer des comptes membres du groupe « eleves », en rouge sont les données à changer. ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ creation eleves.vbs’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ' Script pour créer les utilisateurs dans Active Directory wscript.echo "Le script commence. Cliquez OK pour continuer." DIM arrRecord Const ForReading = 1 ' Détermine le chemin LDAP de votre domaine ' Rien dans cette partie ne doit être changé Set Root = GetObject("LDAP://RootDSE") DomainPath = Root.Get("DefaultNamingContext") ' Obtenez l'indicateur à votre objet de domaine ' Rien dans cette partie ne doit être changé Set Domain = GetObject("LDAP://" & DomainPath) ' Pour indiquer l'OU où mettre les utilisateurs, ici dans l’UO « eleves » se trouvant dans l’UO « ecole » Set ou_HR = GetObject("LDAP://OU=eleves,OU=ecole, " & DomainPath) ' L'objet du fichier système est votre point d'entrée dans le fichier système ' Rien dans cette partie ne doit être changé set fso = CreateObject ("Scripting.FileSystemObject") ' Pour retrouver le fichier texte dans C:\ADSI\eleves.txt ' Le nom et l'emplacement peuvent être modifiés Set tsTextFile = fso.OpenTextFile ("C:\ADSI\eleves.txt", ForReading, False) ' Commence à lire le fichier rentré, début de la boucle ' Lit une ligne du fichier ' Rien dans cette partie ne doit être changé While Not tsTextFile.AtEndOfStream ' START OF LOOP strRecord = tsTextFile.ReadLine 2 ' Découpe la ligne en plusieurs segments délimités par le délimiteur spécifié ' (Vous pouvez changer le délimiteur) ' mettre chaque segment dans une rangée nommée arrRecord ' Le premier segment est référencé par arrRecord(0) arrRecord = Split (strRecord, ":") ' Création de l'utilisateur dans l'OU ' Rien dans cette partie ne doit être changé Set adsUser = ou_HR.Create("user", "CN=" & arrRecord(2)) ' Définit les sAMAccountName et userPrincipalName ' attribués pour chaque utilisateur ' Rien dans cette partie ne doit être changé adsUser.Put "sAMAccountName", arrRecord(2) adsUser.Put "userPrincipalName", arrRecord(2) adsUser.SetInfo ' Active le compte qui est désactivé par défaut ' Rajoute les attributs additionnés listés dans le fichier texte ' Dans cet exemple, l'attribut de description sera ' rempli dans le second (1) segment ' et l'attribut du nom affiché est pris du troisième ' (2) segment ' Changez cette partie d'attributs add/change ' rentrés dans le fichier texte adsUser.AccountDisabled = False adsUser.sn = arrRecord(0) adsUser.GivenName = arrRecord(1) adsUser.homeDirectory = "\\serveur\partages" adsUser.homeDrive = "Z:" 'ajout de cet utilisateur au groupe "eleves" de l'OU "eleves" set grp = GetObject("LDAP://CN=eleves,OU=eleves,OU=ecole,DC=ecole,DC=com") grp.Add "LDAP://CN="&arrRecord(2)&",OU=eleves,OU=ecole,DC=ecole,DC=com" ' SetInfo flushes the attributes in cache to disk ' Rien dans cette partie ne doit être changé adsUser.SetInfo ' Efface adsUser pour le prochain utilisateur ' Rien dans cette partie ne doit être changé Set adsUser = Nothing Wend ' END OF LOOP ' Ferme le fichier texte ' Rien dans cette partie ne doit être changé tsTextFile.Close ' Boite de dialogue finie ' Rien dans cette partie ne doit être changé wscript.echo "Eleves créés.", Chr(10),Chr(10),"Cliquez pour finir." ‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ 3