Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1192 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1111461
Skyfou
Posté le 07-06-2005 à 16:52:38  profilanswer
 

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

mood
Publicité
Posté le 07-06-2005 à 16:52:38  profilanswer
 

n°1111473
Skyfou
Posté le 07-06-2005 à 17:00:23  profilanswer
 

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.

n°1112303
dahlo
Posté le 08-06-2005 à 10:49:12  profilanswer
 

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

n°1112306
cesarr89
Posté le 08-06-2005 à 10:52:00  profilanswer
 

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


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
lister et supprimer le contenu d'un dossierLister toutes les requettes SQL du projet en PHP ?
Supprimer complètement des espaces invisibles.probleme completement inexplicable avec les sockets sous windows c++
[Framework J2EE] Gestion d'utilisateurslister repertoire distant - Serv Linux vers Serv 2000
[C]Comment lister les fichiers *.txt d'un répertoire sous linux?[C] Lister les fichiers d un repertoire
lister un repertoire distant 
Plus de sujets relatifs à : [ADSI] Lister complètement les utilisateurs d'une OU


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR