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