AD.au3 > Mitglieder einer Gruppe ausgeben

  • Hallo zusammen,

    ich habe folgende Funktion:

    Spoiler anzeigen
    [autoit]


    Func _ConMitglieder()
    $c_ges = _GUICtrlListBox_GetSelItems($lstGroupLeft)
    If $c_ges[0] > 1 Then
    MsgBox(0, "Fehler", "Bitte nur eine Gruppe auswählen!")
    Else
    $aGroupName = _GUICtrlListBox_GetSelItemsText($lstGroupLeft)
    $aGroupName = $aGroupName[1]
    $aGroupName = _AD_GetObjectsInOU("", "(&(objectClass=Group)(name=" & $aGroupName & "))")
    ;~ _ArrayDisplay($aGroupName)
    $aGroupName = _AD_SamAccountNameToFQDN($aGroupName[1])
    ;~ MsgBox(0, "", $aGroupName)
    $aGroupMember = _AD_GetGroupMembers($aGroupName)
    For $c_sel = 1 To UBound($aGroupMember) - 1
    $aGroupMember[$c_sel] = _AD_FQDNToSamAccountName($aGroupMember[$c_sel])
    ;~ MsgBox(0, "", $aGroupMember)
    GUICtrlSetData($lstGroupRight, $aGroupMember[$c_sel])
    GUICtrlSetData($lblGroupRight, $aGroupNameInit & " (" & UBound($aGroupMember) - 1 & ")")
    Next
    EndIf
    EndFunc ;>> Context > Mitglieder der Gruppe anzeigen

    [/autoit]

    Mit dieser Funktion lasse ich mir die Mitglieder der Gruppe der linken Listbox in der rechten Listbox ausgeben. Allerdings funktioniert dies nicht mit der Gruppe "Domänen-Benutzer". Hat jemand eine Idee, weshalb das in diesem Kontext nicht funktioniert? Muss ich hier eine andere Funktion nehmen? Bei anderen Gruppen funktioniert die Suche ohne Probleme.

    Vielen Dank für eure Hilfe vorab und LG,
    der Robert

    Einmal editiert, zuletzt von DasIch (23. September 2014 um 07:33)

  • "Domänen-Benutzer" funktioniert deswegen nicht, weil das in den meisten Fällen eine elend lange Liste gäbe.
    Da funktioniert es umgekehrt, indem beim User die "PrimaryGroup" definiert wird.

  • "Domänen-Benutzer" funktioniert deswegen nicht, weil das in den meisten Fällen eine elend lange Liste gäbe.
    Da funktioniert es umgekehrt, indem beim User die "PrimaryGroup" definiert wird.

    Hallo und danke für die Antwort :)
    Wie würde denn eine Suche danach aussehen? Ich kann ja auch alle Benutzer im AD anzeigen lassen mit dem filter

    [autoit]

    "(&(objectClass=Person)(name="*"))"

    [/autoit]

    . In dem Fall ist die Liste sogar noch länger. Es geht darum, dass ich sehen will, ob es User gibt, die nicht in der Gruppe sind. Und deshalb möchte ich alle user angezeigt bekommen, damit ich diese in eine vorhandene excel liste exportieren kann (die funktion ist bereits vorhanden und funktioniert tadellos :P nur halt nicht bei "Domänen-Benutzer" :()

    Ich hoffe, du kannst mir irgendwie helfen. Ich bin jedenfalls am Ende mit meinem Latein :(

    LG,
    der Robert

  • Versuch's mal mit folgendem Filter mit _AD_GetObjectsInOU.
    "(&(objectCategory=person)(objectClass=user)(primaryGroupID=513))"

  • Versuch's mal mit folgendem Filter mit _AD_GetObjectsInOU.
    "(&(objectCategory=person)(objectClass=user)(primaryGroupID=513))"


    Alles klar, mache ich gleich morgen früh. Bin leider nicht mehr auf Arbeit und hab daher das AD nicht hier zum Testen :P Danke dir! Ich werde mich morgen nochmal melden :)

  • Water, du bist der Beste! Danke dir! :D Funktioniert wunderbar:

    [autoit]


    If $aGroupName = "Domänen-Benutzer" Then
    $aGroupMember = _AD_GetObjectsInOU("", "(&(objectCategory=person)(objectClass=user)(primaryGroupID=513))")
    Else
    $aGroupName = _AD_GetObjectsInOU("", "(&(objectClass=Group)(name=" & $aGroupName & "))")
    $aGroupName = _AD_SamAccountNameToFQDN($aGroupName[1])
    $aGroupMember = _AD_GetGroupMembers($aGroupName)
    EndIf

    [/autoit]
  • 8)