Page 1 sur 1
[Ex] Ajout d'utilisateurs dans une OU --> Active Directory
Posté : lun. 16 mai 2011 22:06
par Strofe
Bonjour
Dans le cadre d'un changement de serveur avec un DNS endommagé et une AD mal configurée, j'ai fait ce programme afin d'importer les comptes utilisateurs depuis un fichier CSV.
Un prochain programme suivra pour les groupes.
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
Version : 1.0
Auteur : Christophe
Script Function : Création des utilisateurs dans une OU existante
A partir de ; http://technet.microsoft.com/fr-fr/library/cc731279(WS.10).aspx
#ce
Dim $domaine, $OU, $prenom, $nom, $login, $description, $bureau, $homedir, $drive, $script, $pwd
Dim $fichier = @ScriptDir & "\comptead.csv"
Dim $file, $ligne, $array
If not FileExists($fichier) = 1 Then
msgbox(64,"ERREUR","Le fichier comptead.csv n'est pas présent dans "&@ScriptDir)
Exit
EndIf
$file = FileOpen($fichier,0)
While 1
$ligne = FileReadLine($file)
If @error = -1 Then ExitLoop
$array = StringSplit($ligne, ';', 1)
$domaine = $array[ 1]
$OU = $array[ 2]
$prenom = $array[ 3]
$nom = $array[ 4]
$login = $array[ 5]
$description = $array[ 6]
$bureau = $array[ 7]
$homedir = $array[ 8]
$drive = $array[ 9]
$script = $array[10]
$pwd = $array[11]
If $domaine="" Then Exit
If $domaine<>"$domaine" Then
_AddUser( $domaine, $OU, $prenom, $nom, $login, $description, $bureau, $homedir, $drive, $script, $pwd )
EndIf
WEnd
FileClose($file)
Func _AddUser( $domaine, $OU, $prenom, $nom, $login, $description, $bureau, $homedir, $drive, $script, $pwd )
Dim $ldap = ""
$ldap &= 'dsadd user cn="'&$login&',OU='&$OU&'" '
$ldap &= '-fn '&$prenom&' -ln '&$nom&' -display "'&$prenom&' '&$nom&'" -desc "'&$description&'" -office "'&$bureau&'" '
;~ $ldap &= '-dept departement -company compagnie -title titre '
$ldap &= '-upn '&$login&'@'&$domaine&' '
$ldap &= '-hmdir '&$homedir&' -hmdrv '&$drive&' -loscr "'&$script&'" '
$ldap &= '-pwd "'&$pwd&'" -mustchpwd no -canchpwd no -pwdneverexpires yes'
Run(@ComSpec & " /c " & $ldap, "", @SW_HIDE)
EndFunc ; ==> _AddUser
Merci de vos retour
Pièce jointe le fichier CSV pour l'import
Re: [Ex] Ajout de groupes dans une OU --> Active Directory
Posté : lun. 16 mai 2011 22:12
par Strofe
Bonsoir
Voici la suite. Testée sous Serveur 2008 (virtualisartion)
► Afficher le texte
Code : Tout sélectionner
Dim $OU, $group, $description
Dim $fichier = @ScriptDir & "\groupad.csv"
Dim $file, $ligne, $array
If not FileExists($fichier) = 1 Then
msgbox(64,"ERREUR","Le fichier groupad.csv n'est pas présent dans "&@ScriptDir)
Exit
EndIf
$file = FileOpen($fichier,0)
While 1
$ligne = FileReadLine($file)
If @error = -1 Then ExitLoop
$array = StringSplit($ligne, ';', 1)
$OU = $array[ 1]
$group = $array[ 2]
$description = $array[ 3]
If $OU = "" Then Exit
If $OU <> "$OU" Then
_AddUserToGroup( $OU, $group, $description )
EndIf
WEnd
FileClose($file)
Func _AddUserToGroup( $OU, $group, $description )
Dim $ldap = ""
$ldap &= 'dsadd group cn="'&$group&'",ou="'&$OU&'" '
$ldap &= '-desc "'&$description&'" '
Run(@ComSpec & " /c " & $ldap, "", @SW_HIDE)
EndFunc ; ==> _AddUserToGroup
Re: [Ex] Ajout utilisateurs dans groupes OU --> Active Direc
Posté : lun. 16 mai 2011 22:14
par Strofe
Bonsoir
Voici la fin pour ce qui me concerne. Testée sous Serveur 2008 (virtualisartion)
► Afficher le texte
Code : Tout sélectionner
#cs
dsmod group "CN=Marketing and Finance users,CN=users,DC=worldwideimporters,DC=com" -addmbr "CN=SeanA,OU=Marketing and Finance,DC=worldwideimporters,DC=com" "CN=AaronC,OU=Marketing and Finance,DC=worldwideimporters,DC=com"
#ce
Dim $group, $login
Dim $fichier = @ScriptDir & "\AddUserGroup.csv"
Dim $file, $array
If not FileExists($fichier) = 1 Then
msgbox(64,"ERREUR","Le fichier AddUserGroup.csv n'est pas présent dans "&@ScriptDir)
Exit
EndIf
$file = FileOpen($fichier,0)
While 1
$ligne = FileReadLine($file)
If @error = -1 Then ExitLoop
$array = StringSplit($ligne, ';', 1)
$group = $array[ 1]
$login = $array[ 2]
If $group = "" Then Exit
If $group <> "$group" Then
_AddUserToGroup( $group, $login )
EndIf
WEnd
FileClose($file)
Func _AddUserToGroup( $group, $login )
Dim $ldap = ""
$ldap &= 'dsmod group '&$group&' -addmbr '&$login&' '
ConsoleWrite($ldap)
Run(@ComSpec & " /c " & $ldap, "", @SW_HIDE)
EndFunc ; ==> _AddUserToGroup
Si vous avez des remarques ou des suggestions, je suis ouvert.
A+