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