Ca fait quelques temps déjà que je planche sur ca :
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 :
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
Est-ce que quelqu’un aurait une idée, même si il faut
laisser tomber ce que j’ai fait en VBS ?
Merci pour ta réponse. J’ai essayé ta proposition mais ca ne
fonctionne pas.
L’utilisateur a bien les droits sur l’AD, cela ne vient pas
de la mais plutôt d’une erreur de syntaxe ASP. Je n’arrive pas à trouver une syntaxe
correcte.