共用方式為


使用 Ntdsutil.exe 在 Active Directory 中檢視及設定 LDAP 原則

本文說明如何使用 Ntdsutil.exe 工具來管理輕量型目錄存取通訊協定 (LDAP) 原則。

原始 KB 編號: 315071

摘要

若要確定域控制器可以支援服務等級保證,您必須指定許多LDAP作業的操作限制。 這些限制可防止特定作業對伺服器的效能產生負面影響。 它們也會讓伺服器對某些類型的攻擊更有彈性。

LDAP 原則是使用 類別的對象來實作 queryPolicy 。 查詢原則物件可以在查詢原則容器中建立,這是組態命名內容中目錄服務容器的子系。 例如,cn=Query-Policies,cn=Directory Service,cn=Windows NT,cn=Services 組態命名內容

LDAP 管理限制

LDAP 管理限制如下:

  • InitRecvTimeout - 此值會定義域控制器等候用戶端在域控制器收到新連線之後傳送第一個要求的時間上限。 如果用戶端在此時間內未傳送第一個要求,伺服器就會中斷用戶端的連線。

    預設值:120 秒

  • MaxActiveQueries - 允許在域控制器上同時執行的並行 LDAP 搜尋作業數目上限。 達到此限制時,LDAP 伺服器會 傳回忙碌 錯誤。

    預設值:20

    注意

    此控件與 MaxPoolThreads 值互動不正確。 MaxPoolThreads 是每個處理器控制件,而 MaxActiveQueries 則定義絕對數位。 從 Windows Server 2003 開始,不再強制執行 MaxActiveQueries。 此外,MaxActiveQueries 不會出現在 Windows Server 2003 版 NTDSUTIL 中。

    預設值:20

  • MaxConnections - 域控制器將接受的同時 LDAP 連線數目上限。 如果域控制器達到此限制之後發生連線,域控制器會卸除另一個連線。

    默認值:5000

  • MaxConnIdleTime - 在LDAP 伺服器關閉連線之前,用戶端可以閒置的秒數上限。 如果連線閑置超過此時間,LDAP 伺服器會傳回LDAP中斷連線通知。

    預設值:900 秒

  • MaxDatagramRecv - 域控制器將處理的數據報要求大小上限。 會忽略大於 MaxDatagramRecv 值的要求。

    默認值:4,096 個字節

  • MaxNotificationPerConnection - 單一聯機上允許的未處理通知要求數目上限。 達到此限制時,伺服器會將 忙碌 錯誤傳回至在該連線上執行的任何新通知搜尋。

    默認值:5

  • MaxPageSize - 此值控制單一搜尋結果中傳回的物件數目上限,與每個傳回物件的大小無關。 若要執行結果可能超過這個物件數目的搜尋,客戶端必須指定分頁搜尋控件。 這是將傳回的結果分組在不超過 MaxPageSize 值的群組中。 為了摘要說明,MaxPageSize 會控制在單一搜尋結果中傳回的物件數目。

    默認值:1,000

  • MaxPoolThreads - 域控制器用來接聽網路輸入或輸出 (I/O) 的每個處理器線程數目上限。 這個值也會決定每個處理器可以同時處理LDAP要求的線程數目上限。

    預設值:每個處理器 4 個線程

  • MaxResultSetSize - 在組成分頁結果搜尋的個別搜尋之間,域控制器可能會儲存用戶端的元數據。 域控制器會儲存此數據,以加速分頁結果搜尋的下一個部分。 MaxResultSize 值會控制域控制器針對這類搜尋所儲存的數據總量。 達到此限制時,域控制器會捨棄其中最舊的中繼結果,讓空間儲存新的中繼結果。

    默認值:262,144 個字節

  • MaxQueryDuration - 域控制器在單一搜尋上花費的時間上限。 達到此限制時,域控制器會傳回 「timeLimitExceeded」 錯誤。 需要更多時間的搜尋必須指定分頁結果控制件。

    預設值:120 秒

  • MaxTempTableSize - 處理查詢時, dblayer 可能會嘗試建立暫存資料庫數據表來排序和選取中繼結果。 MaxTempTableSize 限制可控制這個臨時資料庫數據表的大小。 如果暫存資料庫數據表包含的物件數目超過 MaxTempTableSize的值,則會 dblayer 執行比完整 DS 資料庫和 DS 資料庫中所有物件更有效率的剖析。

    默認值:10,000 筆記錄

  • MaxValRange - 此值會控制物件屬性傳回的值數目,與對象擁有的屬性數目無關,或搜尋結果中有多少物件。 在 Windows 2000 中,此控件是以 1,000 硬式編碼。 如果屬性的值數目超過 MaxValRange 值所指定的值數目,您必須使用 LDAP 中的值範圍控件來擷取超過 MaxValRange 值的值。 MaxValueRange 控制在單一物件上單一屬性上傳回的值數目。

    • 最小值:30
    • 默認值:1500

開始Ntdsutil.exe

Ntdsutil.exe位於 Windows 安裝 CD-ROM 上的 [支援工具] 資料夾中。 根據預設,Ntdsutil.exe會安裝在 System32 資料夾中。

  1. 按一下 [開始],再按一下 [執行]
  2. 在 [ 開啟 ] 文本框中,輸入 ntdsutil,然後按 ENTER。 若要隨時檢視說明,請在命令提示字元中輸入 ?

檢視目前的原則設定

  1. 在Ntdsutil.exe命令提示字元中,輸入 LDAP policies,然後按 ENTER。
  2. 在LDAP原則命令提示字元中,輸入 connections,然後按 ENTER。
  3. 在伺服器連線命令提示字元中,輸入 connect to server <DNS name of server>,然後按 ENTER。 您想要連線到您目前正在使用的伺服器。
  4. 在伺服器連線命令提示字元中,輸入 q,然後按 ENTER 鍵返回上一個功能表。
  5. 在LDAP原則命令提示字元中,輸入 Show Values,然後按 ENTER。

出現時的原則顯示。

修改原則設定

  1. 在Ntdsutil.exe命令提示字元中,輸入 LDAP policies,然後按 ENTER。

  2. 在LDAP原則命令提示字元中,輸入 Set <setting> to <variable>,然後按 ENTER。 例如,輸入 將 MaxPoolThreads 設定為 8

    如果您將另一個處理器新增至伺服器,此設定就會變更。

  3. 您可以使用 Show Values 命令來驗證變更。

    若要儲存變更,請使用 認可變更

  4. 當您完成時,輸入 q,然後按 ENTER。

  5. 若要結束Ntdsutil.exe,請在命令提示字元輸入 q,然後按 ENTER。

注意

此程式只會顯示預設網域原則設定。 如果您套用自己的原則設定,則看不到它。

需要重新開機

如果您變更域控制器目前正在使用的查詢原則值,這些變更會在不重新啟動的情況下生效。 不過,如果已建立新的查詢原則,新查詢原則必須重新啟動才會生效。

變更查詢值的考慮

若要維護網域伺服器復原能力,我們建議您增加 120 秒的逾時值。 形成更有效率的查詢是慣用的解決方案。 如需建立有效率查詢的詳細資訊,請參閱 建立更有效率Microsoft已啟用Active Directory 的應用程式

不過,如果變更查詢不是選項,請只在一個域控制器或一個站臺上增加逾時值。 如需指示,請參閱下一節。 如果設定套用至一個域控制器,請減少域控制器上的 DNS LDAP 優先順序,讓用戶端不太可能使用伺服器進行驗證。 在具有增加優先權的網域控制器上,使用下列登入設定來設定 LdapSrvPriority

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

在 [編輯] 功能表上,選取 [新增值],然後新增下列登錄值:

  • 項目名稱:LdapSrvPriority
  • 數據類型:REG_DWORD
  • 值:將值設定為您想要之優先順序的值。

如需詳細資訊,請參閱 如何優化位於用戶端網站外部之域控制器或全域編錄的位置。

設定每個域控制器或每個月台原則的指示

  1. 在 CN=Query-Policies、CN=Directory Service、CN=Windows NT、CN=Services、CN=Configuration、 樹系根目錄下建立新的查詢原則

  2. 在Query-Policy-Object屬性中輸入新原則的辨別名稱,將域控制器或月臺設定為指向新原則。 屬性的位置如下所示:

    • 域控制器的位置為 CN=NTDS 設定、CN= DomainControllerName、CN=Servers、CN= 網站名稱、CN=Sites、CN=Configuration、 樹系根目錄。

    • 月臺的位置是 CN=NTDS 網站設定,CN= 網站名稱,CN=Sites,CN=Configuration, 樹系根目錄。

範例指令碼

您可以使用下列文字來建立 Ldifde 檔案。 您可以匯入此檔案,以建立逾時值為 10 分鐘的原則。 將此文字複製到Ldappolicy.ldf,然後執行下列命令,其中 樹系根目錄是樹系根 目錄的辨別名稱。 讓 DC=X 保持為不變。 這是文稿執行時會由樹系根名稱取代的常數。 常數 X 不會指出域控制器名稱。

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

啟動 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

匯入檔案之後,您可以使用Adsiedit.msc或 Ldp.exe來變更查詢值。 此腳本中的 MaxQueryDuration 設定為 5 分鐘。

若要將原則連結至 DC,請使用 LDIF 匯入檔案,如下所示:

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

使用下列命令匯入它:

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

針對月臺,LDIF 匯入檔案會包含:

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

注意

Ntdsutil.exe只會在預設查詢原則中顯示值。 如果定義了任何自定義原則,Ntdsutil.exe就不會顯示這些原則。