ADsOpenObject() ADsGetObject(),OpenDSObject() 函式可能產生不正確的 DNS 查詢

文章翻譯 文章翻譯
文章編號: 258507 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

如果伺服器名稱傳遞至 Active Directory 服務介面 ADSI ADsOpenObjectADsGetObjectIADsOpenDSObject::OpenDSObject 函式,無效的 SRV 查詢傳送到已設定的網域名稱系統 (DNS) 伺服器。這些 SRV 查詢包含主機名稱,而且不應該傳送到網路。這個行為不會造成任何問題,但可以產生額外的網路流量。如果該呼叫是無伺服器繫結,或網域名稱會傳遞至 ADSI 函式,是沒有問題。比方說下列的範例函式不會產生無效的查詢,如果 domain.com 是網域名稱:
ADsOpenObject("LDAP://domain.com/DC=domain, DC=com",...)
下列範例函式會產生和無效的查詢,如果 server 是伺服器名稱:
ADsOpenObject("LDAP://server/DC=domain, DC=com",...)
是,就會產生無效的查詢:
_ldap._tcp.my-site._sites.dc._msdcs.server

發生的原因

判斷傳入的名稱是否為伺服器名稱或網域名稱的程序期間傳送無效的查詢。

當使用伺服器名稱呼叫 ldap_open/ldap_init (由 ADsOpenObjectADsGetObjectOpenDSObject 的間接呼叫) 時, 它就會有無法知道引數伺服器名稱或網域名稱。在這些情況下 DsGetDcName 參數是否為網域就會呼叫函式。當引數不是網域名稱,但不是伺服器名稱時,網域控制站定位器呼叫會產生不正確 SRV 記錄查詢根據伺服器名稱。如果要解決這個問題,稱為 LDAP_OPT_AREC_EXCLUSIVE 旗標會加入可以傳遞給 ldap_set_option 來連接呼叫之前。這個旗標指示 LDAP 用戶端參數是伺服器名稱,因此應該解決沒有定位程式呼叫。不過,這個新的旗標是不會暴露 ADSI 中。

解決方案

如果要解決這個問題,取得最新的 Service Pack 為 Windows 2000。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
260910如何取得最新的 Windows 2000 Service Pack
若要解決這個問題,已新增新標幟 ADS_SERVER_BIND,iads.h 中。如果傳入的伺服器名稱,則請使用與 ADsOpenObjectOpenDSObject 函式的第四個參數 OR 這個新的旗標。如果因為沒有將新的旗標傳遞至 ADsGetObject 的機制,傳入的伺服器名稱,請使用 ADsOpenObjectADsGetObject 的位置。

此修正程式會提供基底的修復問題。但是,您可以在呼叫這些函式的程式使用新的旗標時,才移除無效的查詢。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。這個問題已經先在 Windows 2000 Service Pack 1 中獲得修正。

其他相關資訊

如需有關如何一次安裝 Windows 2000 和 Windows 2000 的 Hotfix 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
249149安裝 Microsoft Windows 2000 和 Windows 2000 的 Hotfix

屬性

文章編號: 258507 - 上次校閱: 2007年2月21日 - 版次: 3.4
這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
關鍵字:?
kbmt kbhotfixserver kbbug kbfix kbqfe kbwin2000sp1fix KB258507 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:258507
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com