VBS et Active directory
Résolu
Makss
Messages postés
385
Date d'inscription
Statut
Membre
Dernière intervention
-
pimoos -
pimoos -
Bonjour,
Je suis en stage, et pour passer mon temps libre (et oui, j'en ai...), j'essaye de faire un petit truc en VBS afin d'extraire des infos concernat tous les users dans l'active directory... Mais voila, je bute sur un truc et jm'en sort pas...
Ci dessous le code, ça plante à la ligne 33 avec une erreur notifiée "Provider"... Il n'y a encore rien au point vis à vis du fichier texte...
Merci!!!
' Extraction d'users de l'Active Directory
dim fso, MyFile, reptemp, filetext, oRecordSet
' LDAP du domaine
strDomainDN ="dc=******,dc=lan"
' Le répertoire c:\temp doit exister
reptemp="c:\temp\"
Filetext=Inputbox("fichier temporaire de l'OU cible : ")
Set fso = CreateObject("Scripting.FileSystemObject")
' création d'un fichier txt pour la première partie du script, soit le nom des utilisateurs
set MyFile = fso.CreateTextFile(reptemp + filetext + ".txt")
'Connexion
Set objDSE = GetObject("LDAP://rootDSE")
set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
' Ici un filtre sur les utilisateurs, récupération des paramètres
strFilter = "(&(objectclass=user)(objectcategory=person));"
strAttrs = "givenName,SN,distinguishedName,userPrincipalName,mail,description"
strScope = "subtree"
'Requète
Requete = "<LDAP://" & objDSE.Get("defaultNamingContext") & ">;" & strFilter & strAttrs & strScope
WScript.Echo Requete
'Execution de la requète
Set oRecordSet = objConn.Execute(Requete)
prenom = oRecordset.Fields("givenName").Value
nom = oRecordset.Fields("SN").Value
UserDName = oRecordset.Fields("distinguishedName").Value
UserPName = oRecordset.Fields("userPrincipalName").Value
Email = oRecordset.Fields("mail").Value
Description = oRecordset.Fields("Description").Value
' extraction nom OU la plus basse
partie = split(UserDName,",")
OU = Right(partie(1),Len(partie(1))-3)
' extraction login user (a partir windows 2000)
partie = split(UserPName,"@")
login = partie(0)
' Affichage des infos recuperees
' ------------------------------
WScript.Echo "prenom: " & prenom _
& CRLF & "nom: " & nom _
& CRLF & "login: " & login _
& CRLF & "Email: " & Email _
& CRLF & "OU: " & OU _
& CRLF & "Description: " & Description
oConnection.Close
WScript.Quit
msgbox "fin de récupération des utilisateurs. Le fichiers texte est dans " + reptemp + Filetext + ".txt"
Je suis en stage, et pour passer mon temps libre (et oui, j'en ai...), j'essaye de faire un petit truc en VBS afin d'extraire des infos concernat tous les users dans l'active directory... Mais voila, je bute sur un truc et jm'en sort pas...
Ci dessous le code, ça plante à la ligne 33 avec une erreur notifiée "Provider"... Il n'y a encore rien au point vis à vis du fichier texte...
Merci!!!
' Extraction d'users de l'Active Directory
dim fso, MyFile, reptemp, filetext, oRecordSet
' LDAP du domaine
strDomainDN ="dc=******,dc=lan"
' Le répertoire c:\temp doit exister
reptemp="c:\temp\"
Filetext=Inputbox("fichier temporaire de l'OU cible : ")
Set fso = CreateObject("Scripting.FileSystemObject")
' création d'un fichier txt pour la première partie du script, soit le nom des utilisateurs
set MyFile = fso.CreateTextFile(reptemp + filetext + ".txt")
'Connexion
Set objDSE = GetObject("LDAP://rootDSE")
set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
' Ici un filtre sur les utilisateurs, récupération des paramètres
strFilter = "(&(objectclass=user)(objectcategory=person));"
strAttrs = "givenName,SN,distinguishedName,userPrincipalName,mail,description"
strScope = "subtree"
'Requète
Requete = "<LDAP://" & objDSE.Get("defaultNamingContext") & ">;" & strFilter & strAttrs & strScope
WScript.Echo Requete
'Execution de la requète
Set oRecordSet = objConn.Execute(Requete)
prenom = oRecordset.Fields("givenName").Value
nom = oRecordset.Fields("SN").Value
UserDName = oRecordset.Fields("distinguishedName").Value
UserPName = oRecordset.Fields("userPrincipalName").Value
Email = oRecordset.Fields("mail").Value
Description = oRecordset.Fields("Description").Value
' extraction nom OU la plus basse
partie = split(UserDName,",")
OU = Right(partie(1),Len(partie(1))-3)
' extraction login user (a partir windows 2000)
partie = split(UserPName,"@")
login = partie(0)
' Affichage des infos recuperees
' ------------------------------
WScript.Echo "prenom: " & prenom _
& CRLF & "nom: " & nom _
& CRLF & "login: " & login _
& CRLF & "Email: " & Email _
& CRLF & "OU: " & OU _
& CRLF & "Description: " & Description
oConnection.Close
WScript.Quit
msgbox "fin de récupération des utilisateurs. Le fichiers texte est dans " + reptemp + Filetext + ".txt"
A voir également:
- VBS et Active directory
- Vbs windows - Accueil - Optimisation
- Directory list & print - Télécharger - Divers Utilitaires
- Active partition disk - Télécharger - Stockage
- Comment activé - Guide
- Pass telecommande active - Forum Enceintes / HiFi
1 réponse
Salut,
Y'a bien plus simple pour "scripter" ça....Regarde ici :
https://docs.microsoft.com/en-us/
http://www.microsoft.com/downloads/details.aspx?familyid=b4cb2678-dafb-4e30-b2da-b8814fe2da5a&displaylang=en
;)
Tom
Y'a bien plus simple pour "scripter" ça....Regarde ici :
https://docs.microsoft.com/en-us/
http://www.microsoft.com/downloads/details.aspx?familyid=b4cb2678-dafb-4e30-b2da-b8814fe2da5a&displaylang=en
;)
Tom
Par contre, je veux extraire, des infos sur tous les users, et non sur un seul en particulier, et je ne trouve pas ce que j'veux... Enfin je testerai ça demain...
L'intégralité du script est ici :