Wyświetlanie i ustawianie zasad LDAP w usłudze Active Directory przy użyciu Ntdsutil.exe

W tym artykule opisano sposób zarządzania zasadami protokołu Lightweight Directory Access Protocol (LDAP) przy użyciu narzędzia Ntdsutil.exe.

              Dotyczy systemów: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Oryginalny numer KB: 315071

Podsumowanie

Aby upewnić się, że kontrolery domeny mogą obsługiwać gwarancje na poziomie usługi, należy określić limity operacyjne dla wielu operacji LDAP. Te limity zapobiegają niekorzystnemu wpływowi określonych operacji na wydajność serwera. Sprawiają one również, że serwer jest bardziej odporny na ataki niektórych typów.

Zasady LDAP są implementowane przy użyciu obiektów queryPolicy klasy . Obiekty zasad zapytań można tworzyć w kontenerze Zasady zapytań, który jest elementem podrzędnym kontenera usługi katalogowej w kontekście nazewnictwa konfiguracji. Na przykład cn=Query-Policies,cn=Directory Service,cn=Windows NT,cn= Kontekst nazewnictwa konfiguracji usług.

Limity administracji LDAP

Limity administracyjne protokołu LDAP to:

  • InitRecvTimeout — ta wartość definiuje maksymalny czas w sekundach oczekiwania kontrolera domeny na wysłanie pierwszego żądania przez klienta po odebraniu nowego połączenia przez kontroler domeny. Jeśli klient nie wyśle pierwszego żądania w tym czasie, serwer rozłączy klienta.

    Wartość domyślna: 120 sekund

  • MaxActiveQueries — maksymalna liczba równoczesnych operacji wyszukiwania LDAP, które mogą być uruchamiane w tym samym czasie na kontrolerze domeny. Po osiągnięciu tego limitu serwer LDAP zwraca błąd zajęty .

    Wartość domyślna: 20

    Uwaga

    Ta kontrolka ma nieprawidłową interakcję z wartością MaxPoolThreads. MaxPoolThreads jest kontrolką na procesor, a maxActiveQueries definiuje liczbę bezwzględną. Począwszy od systemu Windows Server 2003, funkcja MaxActiveQueries nie jest już wymuszana. Ponadto funkcja MaxActiveQueries nie jest wyświetlana w wersji NTDSUTIL systemu Windows Server 2003.

    Wartość domyślna: 20

  • MaxConnections — maksymalna liczba jednoczesnych połączeń LDAP akceptowanych przez kontroler domeny. Jeśli połączenie zostanie nawiązane po osiągnięciu tego limitu przez kontroler domeny, kontroler domeny usunie inne połączenie.

    Wartość domyślna: 5000

  • MaxConnIdleTime — maksymalny czas w sekundach, przez który klient może być bezczynny, zanim serwer LDAP zamknie połączenie. Jeśli połączenie jest bezczynne przez więcej niż ten czas, serwer LDAP zwraca powiadomienie o rozłączeniu LDAP.

    Wartość domyślna: 900 sekund

  • MaxDatagramRecv — maksymalny rozmiar żądania datagramu, które będzie przetwarzać kontroler domeny. Żądania większe niż wartość parametru MaxDatagramRecv są ignorowane.

    Wartość domyślna: 4096 bajtów

  • MaxNotificationPerConnection — maksymalna liczba zaległych żądań powiadomień dozwolonych w jednym połączeniu. Po osiągnięciu tego limitu serwer zwraca błąd zajęty do wszystkich nowych wyszukiwań powiadomień, które są wykonywane na tym połączeniu.

    Wartość domyślna: 5

  • MaxPageSize — ta wartość kontroluje maksymalną liczbę obiektów zwracanych w jednym wyniku wyszukiwania, niezależnie od rozmiaru każdego zwróconego obiektu. Aby przeprowadzić wyszukiwanie, w którym wynik może przekroczyć tę liczbę obiektów, klient musi określić stronicowa kontrolkę wyszukiwania. Jest to grupowanie zwróconych wyników w grupach, które nie są większe niż wartość MaxPageSize. Podsumowując, maxPageSize kontroluje liczbę obiektów zwracanych w jednym wyniku wyszukiwania.

    Wartość domyślna: 1000

  • MaxPoolThreads — maksymalna liczba wątków na procesor, które kontroler domeny przeznacza na nasłuchiwanie danych wejściowych lub wyjściowych sieci (we/wy). Ta wartość określa również maksymalną liczbę wątków na procesor, które mogą jednocześnie pracować nad żądaniami LDAP.

    Wartość domyślna: 4 wątki na procesor

  • MaxResultSetSize — między poszczególnymi wyszukiwaniami, które tworzą stronicowone wyszukiwanie wyników, kontroler domeny może przechowywać dane pośrednie dla klienta. Kontroler domeny przechowuje te dane, aby przyspieszyć następną część stronicowanego wyszukiwania wyników. Wartość MaxResultSize steruje całkowitą ilością danych przechowywanych przez kontroler domeny dla tego rodzaju wyszukiwania. Po osiągnięciu tego limitu kontroler domeny odrzuca najstarsze z tych wyników pośrednich, aby umożliwić przechowywanie nowych wyników pośrednich.

    Wartość domyślna: 262 144 bajty

  • MaxQueryDuration — maksymalny czas w sekundach, który kontroler domeny spędzi na jednym wyszukiwaniu. Po osiągnięciu tego limitu kontroler domeny zwraca błąd "timeLimitExceeded". Wyszukiwania, które wymagają więcej czasu, muszą określać kontrolkę wyników stronionych.

    Wartość domyślna: 120 sekund

  • MaxTempTableSize — podczas przetwarzania dblayer zapytania może zostać podjęta próba utworzenia tymczasowej tabeli bazy danych w celu sortowania i wybierania wyników pośrednich. Limit MaxTempTableSize określa, jak duża może być ta tymczasowa tabela bazy danych. Jeśli tymczasowa tabela bazy danych zawiera więcej obiektów niż wartość maxTempTableSize, dblayer wykonuje znacznie mniej wydajną analizę pełnej bazy danych DS i wszystkich obiektów w bazie danych usług DS.

    Wartość domyślna: 10 000 rekordów

  • MaxValRange — ta wartość kontroluje liczbę wartości zwracanych dla atrybutu obiektu, niezależnie od liczby atrybutów obiektu lub liczby obiektów w wyniku wyszukiwania. W systemie Windows 2000 ta kontrolka jest zakodowane na stałe na poziomie 1000. Jeśli atrybut ma więcej niż liczba wartości określonych przez wartość MaxValRange, należy użyć kontrolek zakresu wartości w LDAP, aby pobrać wartości przekraczające wartość MaxValRange. MaxValueRange steruje liczbą wartości zwracanych dla pojedynczego atrybutu w jednym obiekcie.

    • Wartość minimalna: 30
    • Wartość domyślna: 1500

Rozpocznij Ntdsutil.exe

Ntdsutil.exe znajduje się w folderze Narzędzia pomocy technicznej na dysku CD-ROM instalacji systemu Windows. Domyślnie Ntdsutil.exe jest zainstalowany w folderze System32.

  1. Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.
  2. W polu tekstowym Otwórz wpisz ntdsutil, a następnie naciśnij klawisz ENTER. Aby wyświetlić pomoc w dowolnym momencie, wpisz ? w wierszu polecenia.

Wyświetlanie bieżących ustawień zasad

  1. W wierszu polecenia Ntdsutil.exe wpisz LDAP policies, a następnie naciśnij klawisz ENTER.
  2. W wierszu polecenia zasad LDAP wpisz connections, a następnie naciśnij klawisz ENTER.
  3. W wierszu polecenia połączenia serwera wpisz connect to server <DNS name of server>, a następnie naciśnij klawisz ENTER. Chcesz nawiązać połączenie z serwerem, z którym obecnie pracujesz.
  4. W wierszu polecenia połączenia serwera wpisz q, a następnie naciśnij klawisz ENTER, aby powrócić do poprzedniego menu.
  5. W wierszu polecenia zasad LDAP wpisz Show Values, a następnie naciśnij klawisz ENTER.

Zostanie wyświetlony widok zasad w miarę ich istnienia.

Modyfikowanie ustawień zasad

  1. W wierszu polecenia Ntdsutil.exe wpisz LDAP policies, a następnie naciśnij klawisz ENTER.

  2. W wierszu polecenia zasad LDAP wpisz Set <setting> to <variable>, a następnie naciśnij klawisz ENTER. Na przykład wpisz Ustaw wartość MaxPoolThreads na wartość 8.

    To ustawienie zmienia się w przypadku dodania innego procesora do serwera.

  3. Możesz użyć polecenia , Show Values aby zweryfikować zmiany.

    Aby zapisać zmiany, użyj opcji Zatwierdź zmiany.

  4. Po zakończeniu wpisz q, a następnie naciśnij klawisz ENTER.

  5. Aby zamknąć Ntdsutil.exe, w wierszu polecenia wpisz q, a następnie naciśnij klawisz ENTER.

Uwaga

Ta procedura pokazuje tylko domyślne ustawienia zasad domeny. Jeśli zastosujesz własne ustawienie zasad, nie będzie ono widoczne.

Wymaganie ponownego uruchomienia

Jeśli zmienisz wartości zasad zapytań używanych obecnie przez kontroler domeny, zmiany te zostaną wprowadzone bez ponownego uruchomienia. Jeśli jednak zostaną utworzone nowe zasady zapytań, ponowne uruchomienie jest wymagane, aby nowe zasady zapytań zaczęły obowiązywać.

Zagadnienia dotyczące zmiany wartości zapytań

Aby zachować odporność serwera domeny, nie zaleca się zwiększania wartości limitu czasu o 120 sekund. Preferowanym rozwiązaniem jest tworzenie bardziej wydajnych zapytań. Aby uzyskać więcej informacji na temat tworzenia wydajnych zapytań, zobacz Tworzenie bardziej wydajnych aplikacji microsoft active Directory-Enabled.

Jeśli jednak zmiana zapytania nie jest opcją, zwiększ wartość limitu czasu tylko na jednym kontrolerze domeny lub tylko w jednej lokacji. Aby uzyskać instrukcje, zobacz następną sekcję. Jeśli ustawienie jest stosowane do jednego kontrolera domeny, zmniejsz priorytet DNS LDAP na kontrolerze domeny, tak aby klienci mniej prawdopodobne używać serwera do uwierzytelniania. Na kontrolerze domeny o zwiększonym priorytecie użyj następującego ustawienia rejestru, aby ustawić LdapSrvPrioritywartość :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

W menu Edytuj wybierz pozycję Dodaj wartość, a następnie dodaj następującą wartość rejestru:

  • Nazwa wpisu: LdapSrvPriority
  • Typ danych: REG_DWORD
  • Wartość: ustaw wartość na wartość żądanego priorytetu.

Aby uzyskać więcej informacji, zobacz Jak zoptymalizować lokalizację kontrolera domeny lub wykazu globalnego, który znajduje się poza lokacją klienta.

Instrukcje dotyczące konfigurowania kontrolera domeny lub zasad lokacji

  1. Utwórz nowe zasady zapytań w obszarze CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, forest root.

  2. Ustaw kontroler domeny lub lokację tak, aby wskazywała nowe zasady, wprowadzając nazwę wyróżniającą nowych zasad w atrybucie Query-Policy-Object . Lokalizacja atrybutu jest następująca:

    • Lokalizacja kontrolera domeny to CN=NTDS Settings, CN= DomainControllerName, CN=Servers,CN= nazwa lokacji,CN=Lokacje,CN=Konfiguracja, katalog główny lasu.

    • Lokalizacja lokacji to CN=NTDS Site Settings,CN= nazwa lokacji,CN=Sites,CN=Configuration, katalog główny lasu.

Przykładowy skrypt

Poniższy tekst umożliwia utworzenie pliku Ldifde. Ten plik można zaimportować, aby utworzyć zasady z wartością limitu czasu wynoszącą 10 minut. Skopiuj ten tekst do pliku Ldappolicy.ldf, a następnie uruchom następujące polecenie, gdzie katalog główny lasu jest nazwą wyróżniającą katalogu głównego lasu. Pozostaw wartość DC=X tak, jak jest. Jest to stała, która zostanie zastąpiona przez nazwę głównej lasu podczas uruchamiania skryptu. Stała X nie wskazuje nazwy kontrolera domeny.

ldifde -i -f ldappolicy.ldf -v -c DC=X DC= forest root

Uruchamianie skryptu Ldifde

dn: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X  
changetype: add  
instanceType: 4  
lDAPAdminLimits: MaxReceiveBuffer=10485760  
lDAPAdminLimits: MaxDatagramRecv=1024  
lDAPAdminLimits: MaxPoolThreads=4  
lDAPAdminLimits: MaxResultSetSize=262144  
lDAPAdminLimits: MaxTempTableSize=10000  
lDAPAdminLimits: MaxQueryDuration=300  
lDAPAdminLimits: MaxPageSize=1000  
lDAPAdminLimits: MaxNotificationPerConn=5  
lDAPAdminLimits: MaxActiveQueries=20  
lDAPAdminLimits: MaxConnIdleTime=900  
lDAPAdminLimits: InitRecvTimeout=120  
lDAPAdminLimits: MaxConnections=5000  
objectClass: queryPolicy  
showInAdvancedViewOnly: TRUE

Po zaimportowaniu pliku możesz zmienić wartości zapytania przy użyciu pliku Adsiedit.msc lub Ldp.exe. Ustawienie MaxQueryDuration w tym skrypcie wynosi 5 minut.

Aby połączyć zasady z kontrolerem domeny, użyj pliku importu LDIF w następujący sposób:

dn: CN=NTDS  
Settings,CN=DC1,CN=Servers,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Zaimportuj go przy użyciu następującego polecenia:

ldifde -i -f link-policy-dc.ldf -v -c DC=X DC= **forest root**

W przypadku lokacji plik importu LDIF będzie zawierać:

dn: CN=NTDS Site Settings,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Uwaga

Ntdsutil.exe wyświetla tylko wartość w domyślnych zasadach zapytania. Jeśli zdefiniowano jakiekolwiek zasady niestandardowe, nie są one wyświetlane przez Ntdsutil.exe.