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 und Zitatlink einblenden
Kategorie Kategorie: Active Directory, AD: Erweiterte Abfragen   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

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/

 

© 2005-2019 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!