2017-11-15 3 views
1

Super neu in Active Directory und Erstellen von LDAP-Abfragen.LDAP-Abfragefilter nach Mitgliedsanzahl in Active Directory

Ich möchte versuchen, Verteilergruppen mit nur 1 Mitglied zu ziehen. Ich habe versucht, eine Abfrage zu bearbeiten, die ich verwendet habe, um Gruppen ohne Mitglieder zu finden, hatte aber kein Glück. Ich habe nach einer Lösung gesucht, konnte aber keine Informationen finden. Ich war nur neugierig, ob das überhaupt möglich ist.

(&(&(&(objectCategory=group)(member=1)(objectClass=group)(proxyAddresses=*@domain.com)))) 

Antwort

2

Nein, Sie können nicht nur mit einer einzigen LDAP-Abfrage.

Der Filter (member=1) funktioniert nicht, weil er nur versucht, eine ungültige DN ('1') zu finden. Übrigens ist der gesamte Filter falsch, Sie müssen weder die Bedingungen verschachteln noch & Operatoren für jeden hinzufügen. Sie können jedoch weiterhin (!(member=*)) hinzufügen, um Gruppen auszuschließen, die kein Mitglied haben. So in Ihrer Situation, ein richtiger Filter soll wie folgt aussehen:

(&(objectCategory=group)(objectClass=group)(proxyAddresses=*@domain.com)(!(member=*))) 

Gruppen zu filtern, die nur ein Mitglied, Sie in einem ersten Schritt haben würden für die Gruppen suchen iterieren die Filter oben mit, dann über jede Gruppe Einträge, lesen Sie das Member-Attribut, um die Anzahl manuell zu erhalten, und schließen Sie Gruppen mit mehr als einem Mitglied aus.

Sie können Gruppenobjekten auch ein benutzerdefiniertes Attribut hinzufügen, damit Sie die Mitgliedsanzahl darin speichern und schließlich Filter so anwenden können, wie Sie es zuerst vorgesehen haben (z. B. memberCount = 1), dh in einer einzelnen Abfrage. ABER das erfordert natürlich auch, das Attribut zu pflegen.