Lister complètement les utilisateurs d'une OU [ADSI] - VB/VBA/VBS - Programmation
Marsh Posté le 07-06-2005 à 17:00:23
En mettant objItem.Name à la place de objItem.Get("Name" ), je viens de me rendre compte j'ai la liste de mes sous-OU.
Mais comment, puis-je lister leurs contenus.
Marsh Posté le 08-06-2005 à 10:49:12
Tu peux par exemple utiliser un filtre type de Classe d'objet sur ta variable objet.
Set objRootDSE = GetObject("LDAP://rootDSE" )
Set objOU = GetObject("LDAP://OU=PRES," & objRootDSE.Get("defaultNamingContext" ))
objOU.Filter = Array("user" )
...
quelques types de Classe: "organizationalUnit", "user", "group", "computer"... on peut mettre plusieurs critères ex: Array("organizationalUnit", "user" ) Limités à 2 de mémoire.
Ensuite dans ta boucle, tu testes le nom du type de classe de l'objet de ta collection filtrée.
For Each objItem In objOU
If objItem.Class = "user" Then
Wscript.Echo ObjItem.Name & vbcrlf
...
End If
If objitem.Class = "organizationalUnit" Then
...
End If
Next
Pour le deuxième problème, exploite la récursivité si ton objItem est une Ou. Donc il serait pratique de passer l'Ou en paramètre.
Reste à peaufiner en pratique...
Marsh Posté le 08-06-2005 à 10:52:00
Reply
Marsh Posté le 07-06-2005 à 16:52:38
Je me lance dans les scripts pour Active Directory. J'ai bien réussi à lister le contenu d'une OU grace au source suivant :
Set objRootDSE = GetObject("LDAP://rootDSE" )
Set objOU = GetObject("LDAP://OU=PRES," & objRootDSE.Get("defaultNamingContext" ))
For Each objItem In objOU
WScript.Echo objItem.Get("Name" )& vbCr
Next
Seulement, je rencontre 2 problèmes.
Le premier est que j'ai aussi bien les utilisateurs que les groupes.
J'ai bien essayé de jouer avec plusieurs valeurs de CN mais, à chaque fois, j'obtient l'erreur de compilation "Cet objet ne se trouve pas sur le serveur."
Mon second problème est que j'aimerai lister les OU qui se trouve dans ma OU "PRES" afin d'en lister les utilisateurs.
Merci d'avance