Windows Server 2008 和更新的域控制器只會在LDAP回應中傳回5000個值

本文提供 Windows Server 2008 R2 或更新的域控制器只會針對 LDAP 回應傳回 5000 值的問題解決方案。

適用:Windows Server 2012 R2
原始 KB 編號: 2009267

徵狀

當查詢傳送至 Windows Server 2008 或 Windows Server 2008 R2 域控制器時,LDAP 應用程式傳回的資訊可能會比傳送至 Windows Server 2003 域控制器時少。 查詢結果可能會顯示為截斷或不完整。 在某些情況下,您可能無法取得任何結果。 例如,如果LDAP應用程式查詢群組的成員,Windows Server 2008 R2 或 Windows Server 2008 域控制器只會傳回 5000 個成員,而 Windows Server 2003 域控制器會傳回更多成員。 在這兩種情況下,您可能會在LDAP應用程式所需的NTDSUTIL中瞭解相同的擴充LDAP原則設定。 如需檢視LDAP原則設定的詳細資訊,請按下列文章編號以檢視 Microsoft 知識庫中的文章:

315071 如何使用 Ntdsutil.exe 在 Active Directory 中檢視和設定 LDAP 原則

範例輸出:

ldap 原則:顯示值

原則目前 (新)

MaxPoolThreads 4
MaxDatagramRecv 4096
MaxReceiveBuffer 10485760
InitRecvTimeout 120
MaxConnections 5000
MaxConnIdleTime 900
MaxPageSize 50000
MaxQueryDuration 120
MaxTempTableSize 10000
MaxResultSetSize 262144
MinResultSets 0
MaxResultSetsPerConn 0
MaxNotificationPerConn 5
MaxValRange 25000

注意事項

在這兩個域控制器上,MaxPageSize 設定為 50000 (預設值 1000) ,MaxValRange 設定為 25000 (預設值 1500) 。

原因

Windows Server 2008 R2 和 Windows Server 2008 已引進內部 LDAP 限制,以防止多載域控制器。 當原則值應該較高時,這些限制會覆寫 LDAP 原則設定。

LDAP 設定 硬式編碼 (的最大值)
MaxReceiveBuffer 20971520
MaxPageSize 20000
MaxQueryDuration 1200
MaxTempTableSize 100000
MaxValRange 5000

因此,上述 LDAP 原則的有效設定是 Windows Server 2003 域控制器上的 MaxPageSize=50000 和 MaxValRange=25000,如 LDAP 原則中所設定,但在 Windows Server 2008 R2 或 Windows Server 2008 域控制器上,硬式編碼限制會指定 MaxPageSize=20000 和 MaxValRange=5000。
MaxValRange 會影響針對查詢傳回的屬性數目。 如果您針對具有超過 5000 個成員的群組對象執行多重值屬性 Member 的 LDAP 查詢,則 Windows Server 2008 R2 或 Windows Server 2008 域控制器只會傳回其中 5000 個。

解決方案

Windows Server 2008 R2 和 Windows Server 2008 所導入的新最大限制,會嘗試強制執行應用程式應對 AD 想要強制執行的原則採用的訊息。 您應該據以調整 LDAP 應用程式。 針對 MaxValRange 限制,您可以考慮使用範圍查詢的下列 MSDN 資訊和範例:屬性值的範圍擷取 https://msdn.microsoft.com/library/cc223242(PROT.10).aspx
下列程式代碼範例使用範圍,使用IDirectoryObject 介面擷取群組的成員:使用IDirectoryObject 進行範圍的範例程序代碼 https://msdn.microsoft.com/library/aa705923(VS.85).aspx
下列程式代碼範例使用範圍,使用 IDirectorySearch 介面擷取群組的成員:使用 IDirectorySearch 進行範圍的範例程式代碼 https://msdn.microsoft.com/library/aa705924(VS.85).aspx
針對 MaxPageSize,建議使用 MSDN 上概述的分頁查詢,如下所示:分頁搜尋結果 https://msdn.microsoft.com/library/aa367011(VS.85).aspx
ldap_create_page_control函式 https://msdn.microsoft.com/library/aa366547(VS.85).aspx
有一種方法可以覆寫這些限制,但建議您與 Microsoft 客戶技術支持討論需求,以決定修改原則是否是正確的方法。

其他相關資訊

如需LDAP原則的詳細資訊,請造訪LDAP原則 https://msdn.microsoft.com/library/cc223376(PROT.10).aspx