_AD_IsMemberOf aus AD.au3 - Untergruppen erkennen

  • Hallo zusammen,

    ich frage mit "_AD_IsMemberOf" aus der "AD.au3" beim Programmstart ab, ob der Benutzer Mitglied einer Active Directory-Gruppe ist. Das funktioniert soweit auch.

    Allerdings weist man Gruppen ja meistens globale Obergruppen zu, das heißt in meiner Gruppe "Programmstart" befinden sich nicht die User selbst, sondern die Gruppen, denen diese angehören. Hier schlägt dann aber die Prüfung fehl, eben weil die User nicht direkte Gruppenmitglieder sind.

    Ist es möglich, das zu umgehen?

    Danke !

  • @F1109

    Die Active Directory-UDF von water benutze ich nicht, aber so solltest Du verschachtelte Gruppenmitgliedschaften auslesen können.

    [autoit]


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

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

    Func _IsMember($UserDN, $GroupDN)
    Local $Group = ObjGet('LDAP://' & $GroupDN) ; As IADsGroup
    For $Member In $Group.Members
    If StringLower($Member.Class) = 'group' Then
    If _IsMember($UserDN, $Member.distinguishedName) Then
    Return True
    EndIf
    Else
    If StringLower($Member.distinguishedName) = $UserDN Then
    Return True
    EndIf
    EndIf
    Next ; $Member
    Return False
    EndFunc ;==>_IsMember

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

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

    [/autoit]