[ADSI] Lister complètement les utilisateurs d'une OU

Lister complètement les utilisateurs d'une OU [ADSI] - VB/VBA/VBS - Programmation

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

Reply

Marsh Posté le 07-06-2005 à 16:52:38   

Reply

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.

Reply

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...

Reply

Marsh Posté le 08-06-2005 à 10:52:00    

http://www.secretswindows.com/inde [...] s/adsi.htm


---------------
!== Force et honneur ==!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed