文章編號: 246530 - 上次校閱: 2007年3月1日 - 版次: 4.2

Iadstools.dll 所提供的指令碼函式

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

Iadstools.dll 是您可以用來撰寫 Visual Basic 指令碼 (或建立您自己的程式) 一個動態連結程式庫 (DLL) 從 Active Directory 擷取特定類型的資料,並善加利用新的應用程式發展介面 (API) 呼叫,可在 Windows 2000 中使用。例如,Iadstools.dll 包括輕鬆編寫指令碼只需幾行程式 VBScript 程式碼的網域控制站之間複寫的函式。

您可以從 Windows 2000 Server 或專業光碟片中的 [Support\Tools] 資料夾安裝的 「 Windows 2000 支援工具] 封裝安裝 Iadstools.dll。如 Iadstools.dll 中可用的所有函數的完整清單,請參閱 Iadstools.doc 檔與 Windows 2000 支援工具套件安裝]。

其他相關資訊

函數說明

DsGetDcName: 可讓尋找 Windows NT 4.0 為基礎的新 Windows 2000 API 和 Windows 2000 網域控制站具有不同的需求與更多的彈性。

ReplicaSync: 指定的目錄磁碟分割的兩個網域控制站之間的啟始複寫。

ReplicaSyncAll: 啟始複寫到所有其他網域控制站或發送使在方面最特定的網域控制站從一個網域控制站變更為所有其他人。

TriggerKCC: 觸發 「 知識一致性檢查程式 (KCC) 指定伺服器上檢查目前的拓樸,以確保它已達到任何最近的變更。

GetGCList: 產生企業中的通用類別目錄伺服器的清單。

GetDirectPartnersEx: 傳回名稱以及直接複寫協力電腦,指定的網域控制站的狀態。

GetReplicationUSNStateEx: 傳回名稱] 和 [更新序號 (USN) 的直接及可轉移複寫協力電腦。

GetChangeNotifications: 傳回需要複寫的網域控制站所指定的伺服器時已發生變更,會告知。

GetRidPoolFSMO: 查詢指定給它認為是 RID 集區 FSMO 擁有者伺服器。

GetDomainNamingFSMO: 查詢指定給它認為是網域樹狀目錄管理 FSMO 擁有者伺服器。

GetSchemaFSMO: 查詢指定給它認為是結構描述 FSMO 擁有者伺服器。

GetPDCFSMO: 查詢指定給它認為是 PDC FSMO 擁有者伺服器。

GetInfrastructureFSMO: 查詢指定給它認為是基礎結構 FSMO 擁有者伺服器。

GetHighestCommittedUSN: 指定網域控制站,它接收伺服器的認可的最高 USN。

GetGPOs: 指定的網域控制站會列舉群組原則物件 (GPO)。

GetGPOVersion: 決定特定網域控制站上特定的 GPO,在 Active Directory 中的版本。

GetGPOSysVolVersion: 決定特定網域控制站上的特定的 GPO 中 SYSVOL 版本。

GetConfigurationNamingContext: 判斷指定的網域控制站設定目錄磁碟分割名稱。

GetDefaultNamingContext: 指定的網域控制站的決定預設的目錄磁碟分割 (網域) 名稱。

GetMetaData: 在 Active Directory 中傳回特定的物件屬性的中繼資料。

GetDSAConnections: 產生的 NTDS 連線物件和指定的伺服器其屬性的清單。

GetSiteList: 產生的網站提供來源資料在伺服器清單。

GetSiteLinks: 產生的指定來源資料在伺服器的站台連結的清單。

GetSiteLinkBridges: 產生的站台連結橋提供來源資料在伺服器的清單。

GetSiteLinkBridgeProperties: 查詢 Active Directory 的給定的站台連結橋接器設定。

GetSiteLinkProperties: Active Directory 查詢指定的站台連結的設定。

GetSiteProperties: Active Directory 查詢指定的站台的設定。

GetInterSiteTransports: Active Directory 查詢 IP] 與 [SMTP Active Directory 的複寫傳輸的設定。

GetSiteForServer: 解析指定的網域控制站所隸屬的網站。

GetBridgeHeadsInSite: 列舉網域控制站做為指定的站台的 bridgeheads。

GetInterSiteTopologyGenerator: 指定一個網站取得擁有建立/維護一個站台中的所有伺服器的站台間的連線物件的角色的電腦單一部份名稱 (從辨別名稱)。

DsGetSiteName: 用於找出查詢的電腦的站台的新 Windows 2000 API。

GetSubnets: Active Directory 查詢的列舉型別和子網路組態。

GetServersInSite: 列舉中指定的站台網域控制站。

GetTrustRelationships: 傳回為連接到網域控制站所在的網域的信任關係的設定。

GetDSAProperties: Active Directory 查詢特定的網域控制站的 NTDS 設定的設定。

DsGetDcList: 取得指定網域的網域控制站和相關聯的屬性清單。

GetIPConfiguration: 決定 IP 設定 (包括 IP 位址 DNS,等等) 的指定伺服器。

GetServersInSiteWithWritableNC: 列舉中指定的可寫入目錄磁碟分割與指定的站台網域控制站。

GetNamingContexts: 讀取指定的網域控制站的 RootDSE,以判斷它可以維持的目錄磁碟分割。

GetWritableNCsForServer: 讀取指定的網域控制站的 RootDSE,以判斷它可以維持的目錄磁碟分割。

GetPartialNamingContexts: 讀取指定的網域控制站的 RootDSE,以判斷它可以維持在部分複本目錄磁碟分割。

ConvertErrorMsg: 將錯誤號碼轉換成訊息文字。

GetActiveDirectoryProperties: Active Directory 查詢的一般組態參數。

GetRegistryData: 抓取遠端或本機電腦的登錄值。

GetServerFromGuid: 解析伺服器名稱從一個指定全域唯一識別碼 (GUID)。

GetGuidForServer: 的 GUID (資料庫 GUID) 查詢 Active Directory 的給定的伺服器。

GetObjectGuidForServer: 查詢 Active Directory 物件 GUID 給定的伺服器。

GetObjectFromGuid: 解析在 Active Directory 中將物件從指定的物件 GUID。

TranslateDNToNT4: 將轉換使用者帳戶的辨別的名稱 (cn = 管理員 cn = 使用者,...) (透過 ADSI 達成) 為 Windows NT 4.0 樣式網域 \ 使用者格式。

TranslateNT4ToDN: 藉由查閱該帳戶及閱讀識別 (透過 ADSI 達成) 該物件的辨別的名稱將 Windows NT 4.0 樣式認證 (網域 \ 使用者) 轉換成可辨別的名稱。

GetPerformanceData: 讀取目前的計數器值載入 InitPerformanceData 中。

範例

同步處理網域控制站

此指令碼會觸發同步在"server1"提取 server2 < 從已經記錄的組態資訊的任何變更 (包括站台、 子網路及網域控制站資料):
Set DLL=CreateObject("IADsTools.DCFunctions")
Result=DLL.ReplicaSync("server1","cn=configuration,dc=mydomain,dc=com","server2")
if result=-1 Then
     Wscript.Echo "The error returned was: " + DLL.LastErrorText
else
     Wscript.Echo "The command completed successfully."
end if
				
如果您在指令碼中使用變數,它看起來有些許不同:
Dim TargetServer
Dim SourceServer
Dim NamingContext

TargetServer="server1"
SourceServer="server2"
NamingContext="cn=configuration,dc=mydomain,dc=com"

Set DLL=CreateObject("IADsTools.DCFunctions")
Result=DLL.ReplicaSync(Cstr(TargetServer),Cstr(NamingContext),Cstr(SourceServer))
if result=-1 Then
     Wscript.Echo "The error returned was: " + DLL.LastErrorText
else
     Wscript.Echo "The command completed successfully."
end if
				

在企業中取得通用類別目錄伺服器的清單

這個指令碼使用 server1"作為來源的資訊,並從它取得企業中的通用類別目錄伺服器清單:
Set DLL=CreateObject("IADsTools.DCFunctions")
Result=DLL.GetGCList("server1")
if result=-1 Then
     Wscript.echo "The error returned was: " + DLL.LastErrorText
else
     Wscript.echo "The number of Global Catalog servers returned is: " + cstr(result)
     wscript.echo "----------------------------------------------------"
     for i=1 to Result
          'print out the name of each GC server
          wscript.echo DLL.GCName(i)
     next
end if
				

列舉網域控制站及檢查複寫問題

此指令碼會連絡網域和檢查中的每個網域控制站的任何複寫問題。此指令碼會結合列舉的網域控制站清單、 列舉上每個這些網域控制站的目錄磁碟分割的清單並檢查問題的每個目錄磁碟分割的複寫狀態的函式:
Set DLL=CreateObject("IADsTools.DCFunctions")
'read the list of domain controllers
Result=DLL.DsGetDCList("server1","mydomain.com",1)
if result=-1 Then
     Wscript.echo "The error returned was: " + DLL.LastErrorText
else
     Wscript.echo "The number of Domain Controllers returned is: " + cstr(result)
     wscript.echo "--------------------------------------------------"
     for i=1 to Result
          'for each domain controller, get the number of Directory Partitions (non-partial) it hosts
          wscript.echo "Checking domain controller: " + DLL.DCListEntryNetBiosName(i)
          PartitionResult=DLL.GetNamingContexts(DLL.DCListEntryNetBiosName(i))
          'if we couldn't reach the server, skip it
          if PartitionResult=-1 then
               wscript.echo "Could not reach the server: " + DLL.DCListEntryNetBiosName(i)
          else
               wscript.echo "Found " + CStr(PartitionResult) + " Directory Partitions (non-partial) on (" + DLL.DCListEntryNetBiosName(i) + ")."
               'query the status of each directory partition
               for j=1 to PartitionResult
                    ReplResult=DLL.GetDirectPartnersEx(DLL.DCListEntryNetBiosName(i),DLL.NamingContextName(j), 0)
                    'see if there's a failure code other than zero for any of the replication partners
                    for k=1 to ReplResult
                         if DLL.DirectPartnerFailReason(k) > 0 then
                              wscript.echo "Failure detected replicating partition (" + DLL.NamingContextName(j) + ") from (" + DLL.DirectPartnerName(k) + ")."
                         else
                              'if you wanted to enable the following line, you could see the ones that are OK as well
                              'wscript.echo "OK --- Replicating partition (" + DLL.NamingContextName(j) + ") from (" + DLL.DirectPartnerName(k) + ")."
                         end if
                    next
                next
          end if
     next
end if
				

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