Windows Server 2008 和更新版本的網域控制站只會傳回 LDAP 回應中的5000值

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

原始產品版本:  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 原則:顯示值

原則 Current (New)

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 原則的有效設定為 MaxPageSize = 50000 和 MaxValRange = 25000 在 LDAP 原則中所設定,但在 Windows Server 2008 R2 或 Windows Server 2008 網域控制站上的 windows server 2003 網域控制站上,硬編碼限制規定 MaxPageSize = 20000 和 MaxValRange = 5000。
MaxValRange 會影響查詢傳回的屬性數目。 如果您針對具有超過5000個成員的 group 物件執行多值屬性成員的 LDAP 查詢,Windows Server 2008 R2 或 Windows Server 2008 網域控制站將只會傳回5000。

解決方案

Windows Server 2008 R2 和 Windows Server 2008 引進的新的最大限制,會嘗試強制執行應用程式應採用的原則所採用的郵件。 您應該據此調整 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