Gruppenzugehörigkeit per LDAP ermitteln

  • Hallo Forum,
    ich versuche mich gerade daran per LDAP die Gruppenzugehörigkeit(en) eines Users zu ermitteln. Die Verbindung zum AD per LDAP bekomm ich hin.
    Verschiedene Attribute auslesen klappt auch, aber wie ermittele ich die Gruppenzugehörigkeit.

    Die LDAP Verbindung realsiere ich mit:

    $oObjUser = ObjGet("LDAP://Servername/cn=Username,ou=OU1,ou= Ou2,DC=DC1,DC=DC2,DC=DC3"

    Wie entlocke ich jetzt meinem Objekt $oObjUser die verschiedenen Gruppen meines Users ?

    Einmal editiert, zuletzt von bordermax (11. März 2013 um 20:07)

  • Wirf mal einen Blick in meine AD UDF. Da gibt es alles was Du brauchst. Funktion _AD_GetUserGroups bringt eine Liste aller Gruppen in denen ein User direkt MItglied ist.

  • [autoit]


    AutoItSetOption('MustDeclareVars', 1)
    Global $Err = ObjEvent('AutoIt.Error', '_ComErr')

    [/autoit][autoit][/autoit][autoit]

    Dim $user = ObjGet('LDAP://cn=Lemon,ou=Becks,dc=Bier,dc=local') ; As IADsUser
    _GetGroups($user)

    [/autoit][autoit][/autoit][autoit]

    Func _GetGroups($ADsObject)
    ; Die ADSI-Methode 'GetEx' gibt IMMER ein Array zurück!!!
    Dim $memberOf = $ADsObject.GetEx('memberOf')
    For $groupDN In $memberOf
    Dim $group = ObjGet('LDAP://' & $groupDN) ; As IADsGroup
    ConsoleWrite('Gruppe: ' & $group.cn & @CRLF)
    _GetGroups($group)
    Next
    EndFunc ;==>_GetGroups

    [/autoit][autoit][/autoit][autoit]

    Func _ComErr()
    ;ConsoleWrite(StringFormat('\tFehlernummer: %s\n', Hex($Err.Number, 8)))
    ;ConsoleWrite(StringFormat('\tBeschreibung: %s\n', $Err.Windescription))
    ;ConsoleWrite(StringFormat('\tSkriptzeile: %s\n', $Err.Scriptline))
    SetError(1)
    EndFunc ;==>_ComErr

    [/autoit]