Wie kann man das Active Directory fragen, welche Benutzer Mitglied einer Gruppe sind ?



Wenn man wissen möchte, welche Benutzer Mitglied einer bestimmten Gruppe sind, kann man dies mit folgendem Befehl abfragen:
 


DSGET GROUP “Distinguished Name (DN)-DER-GRUPPE” -members -expand



Wenn man beispielsweise eine Gruppe mit dem Namen „Verkauf“ hat, die sich in der Organisationseinheit „Newsgroup“ befindet und die
Domäne „intra.dikmenoglu.de” heißt, würde der Befehl wie folgt lauten:


DSGET GROUP „CN=Verkauf,OU=Newsgroup,DC=intra,DC=dikmenoglu,DC=de” -members -expand



Wenn sich die User sowie die Gruppen im Standard-Container USERS befinden (im Snap-In „Active Directory-Benutzer und -Computer“), so würde der Befehl folgendermaßen lauten:


 


DSGET GROUP „CN=<Gruppenname>,CN=Users,DC=intra,DC=dikmenoglu,DC=de“ -members -expand



Der Schalter -members zeigt eine Liste der Gruppenmitglieder an. Der Schalter -expand bewirkt im Falle des „-members“-Parameters,
dass die rekursiv (umgekehrt) expandierte (also „auseinander gezogene” im Sinne von vollständig angezeigte) Liste der Mitglieder der Gruppe
angezeigt wird. Dieser Parameter übernimmt die unmittelbare Liste der Mitglieder der Gruppe und expandiert rekursiv jede Gruppe in dieser Liste,
um sowohl die Gruppenzugehörigkeit festzustellen als auch ein komplettes „closure set“ der Mitglieder zu erhalten.


 


Wenn dieser Befehl nun noch mit dem Befehl „> C:\dsget.txt“ erweitert wird, kann man sich das Ergebnis in eine Textdatei exportieren lassen.
Die Syntax lautet für das angegebene Beispiel:
DSGET GROUP „CN=Verkauf,OU=Newsgroup,DC=intra,DC=dikmenoglu,DC=de” -members –expand > C:\dsget.txt


 


 


Eine weitere Alternative wäre:
dsquery group -samid <Gruppe> | dsget group -members


 


 


Hinweis: Unter Windows Server 2008 R2 und Windows 7 liefert dsget nicht die korrekten Daten.
Das lässt sich jedoch durch einen Hotfix beheben:


The “dsget user -memberof -expand” command returns incorrect results in Windows Server 2008 R2 and in Windows 7


 


 


Es gibt aber noch eine recht einfache Variante: Net Group <Gruppenname> /Domain


 


 


Es ist auch möglich, die Mitglieder einer Gruppe, mit LDIFDE zu exportieren.


Der Befehl könnte z.B. folgendermaßen aussehen:


 


Ldifde -m -f “C:\Ldifde.txt” -r “(sAMAccountname=<Gruppenname>)” -l name,member


 



Des Weiteren bekommt man die gewünschten Informationen auch über ein Skript:
List All the Members of a Group


 


 


Man kann sich auch über eine gespeicherte Abfrage die Mitglieder einer Gruppe anzeigen lassen.
Der Filter dazu könnte folgendermaßen aussehen:

(objectCategory=user)(memberOf=CN=Gruppe,CN=Users,DC=intra,DC=dikmenoglu,DC=de)


 


Oder in Verbindung mit den ds*-Tools, würde der Filter so aussehen:
(&(objectCategory=user)(memberOf=CN=Gruppe,CN=Users,DC=intra,DC=dikmenoglu,DC=de))


 


 


In welchen Gruppen ist ein bestimmter Benutzer?



Möchte man die direkten Gruppenmitgliedschaften bestimmter Benutzer ermitteln, so kann der folgende Befehl verwendet werden:


dsquery user -samid <Benutzername> | dsget user -memberof


oder:

dsget user “DN des Benutzerobjekts” -memberof



Sollen hingegen auch die verschachtelten Gruppenmitgliedschaften angezeigt werden, dann gilt es diesen Befehl auszuführen:


dsget user “DN des Benutzerobjekts” -memberof -expand


bzw.


dsquery user -samid <Benutzername> | dsget user -memberof -expand




Wie können die Mitglieder einer lokalen Gruppe auf einem Arbeitsgruppen-Server angezeigt werden?
Net Localgroup <Gruppe>




Die Mitglieder der Gruppe “Domänen-Benutzer” auflisten


Die Mitglieder der Gruppe Domänen-Benutzer lässt sich nicht auf die herkömmliche Weise Abfragen.
Die Gruppe Domänen-Benutzer (auf englisch: Domain Users), in der standardmäßig jeder Benutzer Mitglied ist
(sofern es nicht manuell geändert wurde), ist eine eher etwas speziellere Gruppe. Denn weder das member Attribut
im Gruppenobjekt, noch das memberof Attribut im Benutzerobjekt enthüllt die Grupenmitgliedschaft der primären Gruppe.
Bei jedem Domänen-Benutzer ist jedoch standardmäßig die Gruppe Domänen-Benutzer als ihre primäre Gruppe gekennzeichnet.
Überprüfen kann man das in den Eigenschaften der Benutzerkonten, im Reiter Mitglied von.

Damit die Mitglieder der Gruppe Domänen-Benutzer aufgelistet werden, muss das Attribut primaryGroupID mit dem Wert 513 abgefragt werden.
Der Gruppe “Domänen-Benutzer” ist nämlich im Attribut primaryGroupToken der Wert 513 zugewiesen.

Um die Mitglieder der Gruppe “Domänen-Benutzer” mit dsquery aufzulisten, muss der folgende Befehl ausgeführt werden:
Dsquery * -Filter “(&(objectCategory=Person)(primaryGroupID=513))” -Limit 0

Mit einer benutzerdefinierten gespeicherten Abfrage, lassen sich die Mitglieder mit folgendem Filter auflisten:
(&(objectCategory=person)(objectClass=user)(primaryGroupID=513))


 


Weitere Informationen:
How to use native ADSI components to find the primary group
Setting Primary Group Excludes the User from the Group Membership in Active Directory

Comments are closed, but trackbacks and pingbacks are open.