Pagesize bei LDAP-Queries

In größeren Umgebungen kann es vorkommen, dass bei LDAP-Anfragen an das AD nicht alle Benutzer gefunden werden. Dies liegt an einer Standard-Limitierung für LDAP-Abfragen, die im AD bei 1000 Datensätzen liegt. Wem das zu gering ist, der kann das Limit auch hochsetzen. Dazu gibt es einen Knowledgebase-Artikel bei MS (315071), aber bitte nicht den deutschen Artikel verwenden, der ist falsch, sondern den englischen! Hier das Wichtigste daraus:

Es gibt einige Limitierungen, die in großen Umgebungen kritisch sind, z.B.:

  • MaxPageSize – Maximal unterstützte Seitengröße für LDAP-Antworten (1.000 Datensätze).
  • MaxTempTableSize – Maximale Größe des temporären Speichers, der für die Ausführung von Abfragen zugeordnet wird (10.000 Datensätze).
  • MaxPoolThreads – Maximale Anzahl der vom Domänencontroller für die Abfrageausführung erstellten Threads (4 pro Prozessor).

Zum Anzeigen/Ändern dieser (und anderer) Limits starten Sie ntdsutil (in den Support Tools) auf einem der DCs und geben Sie an der Eingabeaufforderung ein (Hilfe mit ? und Return, Kommandos lassen sich abkürzen durch Eingabe der ersten paar Buchstaben der Worte):

ntdsutil: LDAP policies
ldap policy: connection
server connections: connect to server<FQDN DC>
(.) wurde hergestellt
server connections: (wechselt ein Menü höher)
ldap policy: show values

Zum Ändern der Limits weiter mit:

ldap policy: set MaxPageSize to 2000
ldap policy: show values

Richtlinie                              Aktuell(Neu)
(…)
MaxPageSize                     1000(2000)

ldap policy: Commit Changes   (oder Cancel Changes)

Das „show values“ zeigt in Klammern den neuen Wert, der aber noch nicht gesetzt ist! Das ist im deutschen Knowledgebase-Artikel übrigens nicht erwähnt, sondern nur im englischen! Erst mit einem „commit changes“ gilt das dann. Und zwar ohne Reboot, wenn es sich (wie hier) um die system policy handelt. Eigene Policies lassen sich zwar auch anlegen, aber nicht mit ntdsutil bearbeiten (siehe Knowledgebase).

Mit Server 2008 R2 hat Microsoft allerdings eine fest eingestellte Obergrenze eingeführt, nämlich 20.000! Daran läßt sich auch nur noch nach unten etwas ändern, Eingaben in der Policy wie oben gezeigt, die mehr als 20.000 zulassen würden, werden ignoriert, zumindest von den DCs, die mit Windows Server 2008 R2 laufen. Und: Nein, ich finde das ganz und gar nicht sinnvoll! 🙂

UPDATE: Es gibt wohl eine Möglichkeit, diese PageSize-Limitierung wieder zu entfernen, allerdings habe ich die noch nicht getestet und ist auch nicht ganz ungefährlich. Zu finden im TechNet-Blog-Eintrag von Qasim Zaidi.

Advertisements

Über Ralf Wigand

...arbeitet für Microsoft und war von 2008-2015 MVP für Directory Services.
Dieser Beitrag wurde unter Active Directory, LDAP, Windows Server veröffentlicht. Setze ein Lesezeichen auf den Permalink.

5 Antworten zu Pagesize bei LDAP-Queries

  1. Pingback: Gelöschte AD-Objekte von Hand wiederherstellen | Mathom

  2. Pingback: dSHeuristics | Mathom

  3. Pingback: dSHeuristics | do not forget

  4. Pingback: do not forget

  5. Pingback: Gelöschte AD-Objekte von Hand wiederherstellen | do not forget

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s