Automatiser l'import de données dans AD
Résolu
jerem7286
Messages postés
77
Date d'inscription
Statut
Membre
Dernière intervention
-
onesdf Messages postés 375 Date d'inscription Statut Membre Dernière intervention -
onesdf Messages postés 375 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerai savoir comment faut il s'y prendre pour automatiser l'import de données dans AD
J'ai recupérer un fichier des RH de mon entreprise dans lequel j'ai le matricule, le nom, le prénom et le login de chaque personnes. Je souhaiterai automatiser l'import des matricule dans AD (dans le champ description d'une fiche utilisateur)
pour ne pas avoir à tout saisir à la main
merci
j'aimerai savoir comment faut il s'y prendre pour automatiser l'import de données dans AD
J'ai recupérer un fichier des RH de mon entreprise dans lequel j'ai le matricule, le nom, le prénom et le login de chaque personnes. Je souhaiterai automatiser l'import des matricule dans AD (dans le champ description d'une fiche utilisateur)
pour ne pas avoir à tout saisir à la main
merci
Configuration: Windows XP Firefox 2.0.0.14
1 réponse
-
Par VBS,
Je te mets une copie rapidement modifiée de celui que j'ai utilisé récemment, à adapter à ton réseau bien évidemment :Option Explicit Dim fso Dim fichier Dim Ligne Dim v Dim pole, nom, prenom, login, pass, fonction, email Dim message Set fso = CreateObject("Scripting.FileSystemObject") Set fichier = fso.OpenTextFile("users.csv", 1) Do While Not fichier.AtEndOfStream Ligne = fichier.Readline v = Split(Ligne, ";") Call Cree_Utilisateur(v(0), v(1), v(2), v(3), v(4), v(5), v(6)) Loop Sub Cree_Utilisateur(pole, nom, prenom, login, pass, fonction, email) Dim Domaine Domaine = ",DC=Domaine,DC=Local" ' Construction de l'unité organisationnelle Dim nomOU nomOU = "OU=" & pole & ",OU=Personnels" & Domaine Dim tmp tmp = nomOU Call CreeOU(tmp, Domaine) Dim OU Set OU = GetObject("LDAP://" & nomOU) OU.Filter = Array("user") Dim existe, element For Each element In OU Dim test test = "CN=" & prenom & " " & nom MsgBox element.Name & " " & test If element.Name = test Then existe = 1 MsgBox "Existe" End If Next If existe = 0 Then ' Crée l'utilisateur dans l'OU Dim User Set User = OU.Create("user", "CN=" & prenom & " " & nom) 'Définit le nom d'ouverture de session User.Put "SAMAccountName", login User.SetInfo ' Nom d'ouverture de session User.Put "userPrincipalName", login ' Nom d'usage User.Put "sn", nom ' Prénom User.Put "givenName", prenom ' Nom affiché User.Put "displayName", prenom & " " & nom ' Script de connexion User.Put "scriptpath", "script.bat" ' Home Directory User.Put "homedirectory", "\\SERVEUR\" & login & "$" User.SetInfo ' Adresse Email If email <> "" Then User.Put "mail", email End If ' Description User.Put "description", fonction User.SetInfo ' Active le compte User.AccountDisabled = False User.SetInfo ' Crée le dossier utilisateur Call CreeDossier("Utilisateurs\Personnels\" & pole & "\" & login & "$") ' Partage le dossier Dim ServeurFichiers Dim Partage Set ServeurFichiers = GetObject("WinNT://Domaine/SERVEUR/Lanmanserver") Dim PartageCache PartageCache = login & "$" MsgBox PartageCache Set Partage = ServeurFichiers.Create("fileshare", PartageCache) Partage.Path = "C:\Utilisateurs\Personnels\" & pole & "\" & login & "$" Partage.SetInfo ' Définit le mot de passe Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000 Const ADS_UF_PASSWD_CANT_CHANGE = &H40 Set User = GetObject("WinNT://Domaine/" & login) User.SetPassword pass User.Put "userFlags", User.Get("UserFlags") Or ADS_UF_PASSWD_CANT_CHANGE User.Put "userFlags", User.Get("UserFlags") Or ADS_UF_DONT_EXPIRE_PASSWD User.SetInfo ' Ajoute l'utilisateur au groupe Dim LeGroupe Set LeGroupe = GetObject("LDAP://CN=" & pole & ", " & nomOU) LeGroupe.Add "LDAP://CN=" & prenom & " " & nom & ", " & nomOU LeGroupe.SetInfo End If End Sub Sub CreeOU(chemin, DOM) chemin = Left(chemin, Len(chemin) - Len(DOM)) Dim Toutes Toutes = Split(chemin, ",") Dim combien, element, adspath, i For Each element In Toutes combien = combien + 1 Next DOM = Right(DOM, Len(DOM) - 1) adspath = DOM For i = combien - 1 To 0 Step -1 ' Vérifie si l'élément existe Dim obj Set obj = GetObject("LDAP://" & adspath) obj.Filter = Array("organizationalUnit") Dim item, existe existe = 0 For Each item In obj If item.Name = Toutes(i) Then existe = 1 End If Next If existe = 0 Then ' Creation de l'OU Dim NewOU Set NewOU = obj.Create("organizationalUnit", Toutes(i)) NewOU.SetInfo ' Création du groupe dans l'OU Créée Dim NouveauGroupe, NomGroupe, temp NomGroupe = Right(Toutes(i), Len(Toutes(i) - 3)) temp = Split(adspath, ",") NomGroupe = NomGroupe & " " & Right(temp(0), Len(temp(0)) - 3) Set NouveauGroupe = NewOU.Create("group", "CN=" & NomGroupe) NouveauGroupe.SetInfo End If adspath = Toutes(i) & "," & adspath Next End Sub Sub CreeDossier(chemin) Dim dossiers, racine, repertoire, fso dossiers = Split(chemin, "\") racine = "C:\" For Each repertoire In dossiers Set fso = CreateObject("Scripting.filesystemobject") If Not fso.folderexists(racine & repertoire) Then fso.createfolder racine & repertoire End If racine = racine & repertoire & "\" Next End Sub