Bonjour,

Ça fait quelques temps déjà que je planche sur ça : comment récupérer tous les groupes Active Directory auxquels appartient un utilisateur donné.

En fait j'ai réussit à le faire mais en VBS. Le tout est de l'adapter pour qu'il fonctionne en ASP.

Voici le code VBS :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
Dim objConnection, objCommand, objRecordSet, sgid_valid, nom, value
value=lcase(CreateObject("WScript.Shell").ExpandEnvironmentStrings ("%USERNAME%") )
 
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "<GC://dc=ZA,dc=IF,dc=ATCSG,dc=NET>;(&(objectCategory=user) (samAccountName=" & value & ")); distinguishedName ;subtree "
Set objRecordSet = objCommand.Execute
Do Until objRecordSet.EOF
    LDAPPAth =objRecordSet.Fields("distinguishedName").value
    objRecordSet.MoveNext
Loop
 
On Error Resume Next
Set objUser = GetObject("LDAP://"& LDAPPAth &"")
arrMemberOf = objUser.GetEx("memberOf")
 
For Each Group in arrMemberOf
    Set objGroup = GetObject("LDAP://" & Group)
    objGroup.GetInfo
 
    GroupsarrMembersOf = objGroup.GetEx("memberOf")
 
    For Each strMemberOf in GroupsarrMembersOf
        If strMemberOf <> "" Then
            ArrGroup=Split(Group,",")
            ArrGroupMember=Split(strMemberOf,"," )
            WScript.Echo  Mid(ArrGroup(0),4)
        End If
    Next
Next
J'ai également trouvé un script (qui fonctionne) qui récupère les utilisateurs d'un groupe.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
strComputer = "domaine"
nomGroupe = "nom groupe"
 
Set colGroups = GetObject("WinNT://" & strComputer & "") 
colGroups.Filter = Array("group") 
For Each objGroup In colGroups
	if objGroup.Name = nomGroupe then
 	 	For Each objUser in objGroup.Members
         		response.write objUser.Name &"<br />"
        	Next
	end if 
Next
J'aimerais donc faire l'inverse de ce script. Quelqu'un à t'il une idée ?