von postNils Kaczenski post27. Juli 2005, 16:07 Uhr
post Kategorie: AD: Erweiterte Abfragen, Active Directory, Scripting

Der LDAP-Standard sieht unglücklicherweise vor, dass die Objektklasse "user" nicht nur Benutzerobjekte umfasst (wie man annehmen könnte). Setzt man also bei der AD-Abfrage einen Filter wie (objectClass=user), so erhält man nicht nur Benutzer-, sondern auch Computerobjekte zurück.

Der Trick liegt darin, dass man parallel das Attribut "objectCategory" abfragt, das in Kombination mit "objectClass" eine eindeutige Unterscheidung zulässt:

  • für User:
    (&(objectCategory=person)(objectClass=user))
  • für Computer:
    (&(objectCategory=computer)(objectClass=user))

Das hat gleichzeitig den Vorteil, dass die Suche bei großen Domänen beschleunigt wird, weil objectCategory ein indiziertes Attribut ist.