Logo faq-o-matic.net
Logo faq-o-matic.net

Mitglieder einer AD-Gruppe mit Zusatzdaten ausgeben

von veröffentlicht am4. Juli 2008, 22:20 Uhr Kurzlink http://faq-o-matic.net/?p=838 Zitatlink
Kategorie Kategorie: Active Directory, AD: Erweiterte Abfragen   Translate with Microsoft Translator Translate EN

MItglieder einer Gruppe werden in Active Directory an zwei Stellen hinterlegt. Die maßgebliche Stelle, die aktiv geändert wird, wenn man Mitglieder einer Gruppe hinzufügt oder sie löscht, ist das "member"-Attribut des Gruppenobjekts. Es ist mehrwertig und nimmt den DN (distinguishedName, gewissermaßen der "LDAP-Objektpfad") des Mitglieds auf. Zusätzlich gibt es aber bei allen Mitgliedern auch das "memberOf"-Attribut, in dem hinterlegt ist, in welchen Gruppen das jeweilige Objekt Mitglied ist. Hierbei handelt es sich aber nur um einen sekundären Verweis – das Feld wird von Active Directory aktualisiert, wenn man die Mitglieder einer Gruppe ändert. Der Nutzen: Auf diese Weise kann man direkt beim Objekt nachschlagen, in welchen Gruppen es Mitglied ist, ohne dass man die Gruppen selbst abfragen muss.

Diesen Umstand kann man sich zunutze machen, wenn man zusätzliche Informationen über alle Mitglieder einer bestimmten Gruppe benötigt. Hilfreich ist hierbei ein Client, der benutzerdefinierte Suchabfragen an Active Directory stellen kann, z.B. mein Tool Carmen.

Im ersten Schritt besorgt man sich mit Carmen den DN der Gruppe, um die es geht. Dazu eignet sich eine Abfrage mit der Ambiguous Name Resolution, etwa so:

SELECT * FROM <so lassen> WHERE anr='Anzeigename-der-Gruppe'

Wichtig sind die einfachen Anführungsstriche (Apostrophe, oben auf der #-Taste) um das Suchkriterium. In dieser Abfrage reicht auch ein Teil (= der Anfang) des Namens, z.B. "Cons" für "Consulting". Den so erhaltenen DN (ohne das "LDAP://") nutzt man nun in einer zweiten Abfrage. Diese sucht nach allen Objekten, die die betreffende Gruppe in ihrem "memberOf"-Attribut stehen haben. Von diesen Objekten lassen sich dann beliebige Felder ausgeben.

SELECT adsPath,givenName,sn
FROM 'LDAP://DC=faq-o-matic,DC=net'
WHERE memberOf='CN=Superhelden,OU=Benutzer,DC=faq-o-matic,DC=net'

Für einfachere Abfragen von Gruppenmitgliedern siehe auch unseren Artikel:

http://www.faq-o-matic.net/2004/07/30/wie-kann-ich-die-mitglieder-einer-gruppe-in-eine-datei-schreiben/

 

Verwandte Beiträge:

  1. Wie kann ich die Mitglieder einer Gruppe in eine Datei schreiben?
    Natürlich gibt es auch hierzu mehrere (kostenlose) Möglichkeiten – hier eine (unvollständige) Auswahl einiger Bordmittel. Achtung, mit Ausnahme des "dsget"-Beispiels...
  2. Warum kann ich einen User nicht mit dem "memberOf"-Attribut einer Gruppe hinzufügen?
    Das Feld "memberOf" ist ein sog. "Backlink"-Feld, das zur Abfragezeit berechnet wird. Sein Wert setzt sich "rückwärts" aus den Gruppenmitgliedschaften...
  3. In welchen AD-Gruppen ist ein Benutzer Mitglied?
    Unsere FAQ bietet ein paar Artikel, die die Mitglieder von Gruppen ausgeben. Spannend ist aber auch die Frage: In welchen...
  4. AD: “Domänen-Benutzer” per LDAP abfragen
    Wer per LDAP (oder auch per ADSI) die Mitglieder bestimmter Gruppen abfragen möchte, nutzt dafür das Feld “member” der jeweiligen...
  5. Wie kann ich sicher prüfen, ob ein Benutzer Mitglied einer bestimmten Gruppe ist?
    Neben der Möglichkeit, für den gerade angemeldeten Benutzer mit dem Tool "whoami.exe" (Resource Kit bzw. bei Windows 2003 im Lieferumfang)...

© 2005-2012 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!