[VBS] Lister groupes et Utilisateurs dans AD

Lister groupes et Utilisateurs dans AD [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 13-03-2006 à 15:57:13    

Salut à tous et à toutes,
je fais a nouveau appel a vos lumières pour resoudre un probleme. Voila je vous l'explique : je voudrais lister tous les groupes de mon Active Directory, et pour chaque groupe les utilisateurs qui en font partis.
Toutes les pistes seront etudiées. Je vous remerice d'avance  ;) .

Reply

Marsh Posté le 13-03-2006 à 15:57:13   

Reply

Marsh Posté le 16-03-2006 à 11:22:01    

Bon apres quelles heures de recherche et de bidouille,j'ai enfin trouvé quelque chose. Il doit y avoir mieux mais je pense que ca marche ! Pour ce que ca interesse voila le code :  
 
 
' cheminLDAP indique dans quel chemin LDAP la recherche a lieu
cheminLDAP=""
' le nom de domaine est contenu dans le premier argument
nomDomaine="monDomaine.com"
 
'il faut decouper le nom de domaine a chaque '.'
'pour le formater de la sorte  
'test.local => dc=test,dc=local
decoupe=Split(nomDomaine,"." )
for k=LBound(decoupe) To Ubound(decoupe)-1
       if len(decoupe(k))>0 then  
            cheminLDAP=cheminLDAP + "dc=" + decoupe(k) + ","
next
if len(decoupe(Ubound(decoupe)))>0 then  
      cheminLDAP=cheminLDAP + "dc=" + decoupe(Ubound(decoupe))
     
 
Const ADS_SCOPE_SUBTREE = 2
 
'l'interogation de AD se fait par ADODB
'obtenir un objet connexion ADODB
 
Set objConnection = CreateObject("ADODB.Connection" )
 
'cree un objet command qui va permetre de faire une requete
Set objCommand =   CreateObject("ADODB.Command" )
 
'parametrage de la connexion
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
 
   
objCommand.Properties("Page Size" ) = 5000
'indique que la recherche a lieu dans tout le sous arbre du domaine
objCommand.Properties("Searchscope" ) = ADS_SCOPE_SUBTREE  
' La requete LDAP
On error resume next
'objectCategory=user pour lister tous les utilisateurs'
'objectCategory=user pour lister tous les groupes'
objCommand.CommandText = "SELECT * FROM 'LDAP://"+cheminLDAP+"' WHERE objectCategory='group'"  
Set objRecordSet = objCommand.Execute
if Err<>0 then
 Wscript.Echo ("Une erreur s'est produite, vérifier le nom de domaine" )
 exit sub
end if
On error goto 0
 
objRecordSet.MoveFirst
 
'pour tous les groupes, on affiche les utilisateurs'
Do Until objRecordSet.EOF  
 ' ...recuperer ses infos ...
 set objUser = GetObject(objRecordset.Fields(0).Value)
              'j'ai mis ici un filtre pour resortir que les groupes qui m'interessaient du genre  
             'if ((InStr(objUser.sAMAccountName,"Admin AGPM" ) <> 0)
 for each membre in objUser.member
                  wscript.echo membre
             next
             'endif
 
objRecordSet.MoveNext
Loop
 
objConnection.close
 
Voila j'ai mis ma solution, ca peut toujours servir a quelqu'un
 

Reply

Sujets relatifs:

Leave a Replay

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