此命令列工具會分析樹系中一個或所有網域控制站的狀態,並報告任何問題,以協助疑難排解。DCDiag.exe 由各種測試組成,這些測試可獨立執行或隨一組測試一起執行,以確認網域控制站的狀況。
• | 除了以下指示的項目以外,DCDiag 中的所有命令都可在 Windows XP Professional 及 Windows Server 2003 系列產品 (成員伺服器及網域控制站) 上執行。 |
• | 從 Windows XP 或 Windows Server 2003 成員電腦或 Windows Server 2003 網域控制站的主控台執行時,新的 DCDIAG /TEST |
下列對象會對此功能有興趣:
• | DNS 系統管理員 |
• | 網域控制站系統管理員 |
• | DCDiag.exe 使用者 |
Windows Server 2003 Service Pack 1 中對 DCDiag 做了兩項重大改進:
• | DCDIAG /TEST |
• | DCDIAG /CheckSecurityError 用於偵測導致 Active Directory 複寫失敗的安全性設定. |
這些新增強功能的詳細資料說明如下。
Windows Server 2003 Service Pack 1 中已對 DCDiag.exe 進行加強,使其包含用於報告網域控制站整體 DNS 狀況的新 DNS 功能。有七個可個別或同時執行的新 DNS 相關測試。這些測試可在 Active Directory 樹系內一個或所有網域控制站上執行。完成測試時,DCDiag.exe 會呈現結果摘要,以及每個測試之網域控制站的詳細資訊。
| |
新的 DNS 測試需要有「企業系統管理」認證。 新 DNS 測試只能在 Windows 2000 Server (SP3 或更新版本) 或 Windows Server 2003 系列產品網域控制站上執行。 |
Windows Server 2003 SP1 dcdiag 使用的基本語法與舊版 dcdiag 相同。執行新 DNS 測試的語法如下:
Dcdiag
/testNS [/DnsBasic | /DnsForwarders | /DnsDelegation |
/DnsDynamicUpdate | /DnsRecordRegistration | /DnsResolveExtName
[/DnsInternetName:InternetName] | /DnsAll] [/f:Logfile] [/ferr:Logerr] /S:DCName[/e] [/v]
Parameter | 描述 |
/test | 在指定範圍的一組網域控制站上執行所有七項子測試 (/DnsInternetName 測試除外)。最常見的 DCDIAG 命令列引數是 DCDIAG /TEST |
/test | 執行所指定的 DNS 測試。如果未指定測試,則預設使用 /DnsAll。 |
/DnsBasic | 執行基本 DNS 測試 (包括網路連線能力、DNS 用戶端設定、服務可用性及區域存在性)。 |
/DnsForwarders | 執行 /DnsBasic 測試,也會檢查轉寄站的設定。 |
/DnsDelegation | 執行 /DnsBasic 測試,也會檢查正確的委派。 |
/DnsDynamicUpdate | 執行 /DnsBasic 測試,同時判定是否已在 Active Directory 區域中啟用動態更新。 |
/DnsRecordRegistration | 執行 /DnsBasic 測試,也會檢查是否登錄 A、CNAME 及已知 SRV 記錄。此外,會依據結果來建立庫存報告。 |
/DnsResolveExtName [/DnsInternetName:InternetName] | 執行 /DnsBasic 測試,也會嘗試解析範例內部網路或網際網路名稱。如果未指定 /DnsInternetName,則命令會嘗試解析名稱 www.microsoft.com。如果指定 /DnsInternetName,則命令會嘗試解析使用者所提供的網際網路名稱。 |
/DnsAll | 執行所有測試 (DnsResolveExtName 測試除外),並產生一個報告。 |
/f:Logfile | 將輸出重新導向到使用者所提供的記錄檔。 |
/ferr:Logerr | 將嚴重錯誤輸出重新導向到不同的記錄檔。 |
/s:DCName | 指定在其上執行測試的網域控制站。 |
/e | 會在 Active Directory 樹系中的所有網域控制站上執行 /test |
/v | 詳細資訊。除了錯誤及警告的資訊外,也會呈現成功測試結果的資訊 (如果沒有使用 /v 參數,則只會呈現錯誤及警告資訊)。Microsoft 建議在摘要表格中報告錯誤或警告時,使用 /v 參數 |
• | /test |
| |
使用 /e 參數時,DNS 測試的執行時間在大型企業中十分明顯。因 RPC 及其他通訊協定的長時間離線期間,而離線的網域控制站及 DNS 伺服器會增加執行時間。 |
• | 連線能力測試是強制測試,且會在執行任何其他 dcdiag 測試之前自動執行。 |
• | 連線能力測試會決定網域控制站是否已登錄在 DNS 中、是否可進行 Ping,以及是否具有 LDAP/RPC 連線能力。 |
• | 如果給定控制站上的連線能力測試失敗,則該網域控制站上不會執行其他測試。 |
| |
連線能力測試在 SP1 中未變更,但包括在此文件中,以供參照。 |
• | 基本 DNS 測試會確認下列必要服務執行中,且可在 dcdiag 所測試的網域控制站上取得:
| ||||||||
• | 基本 DNS 測試會透過確認可連線所有介面卡上的 DNS 伺服器,來確認每個網域控制站的網路連線能力。 | ||||||||
• | 基本 DNS 測試會確認最少在用戶端上所設定的一個 DNS 伺服器上登錄每個網域控制站的 A 記錄。 | ||||||||
• | 如果網域控制站執行的是「DNS 伺服器」服務,則基本 DNS 測試會確認 Active Directory 網域區域及 Active Directory 網域區域的 SOA 記錄是存在的。 | ||||||||
• | 基本 DNS 測試會檢查根 (.) 區域是否存在。 |
| |
只有在所測試之網域控制站執行的是「Microsoft DNS 伺服器」服務時,才會執行此測試。 |
• | 轉寄站測試會決定是否啟用遞迴。 |
• | 如 果已設定轉寄站或根提示,則轉寄站測試會確認 DNS 伺服器上的所有轉寄站或根提示正在作用,也會確定已解析「_ldap._tcp.<樹系根網域> DC 定位器」記錄 (而針對樹系根網域控制站上所設定的轉寄站或根提示,不會嘗試「_ldap_tcp.<樹系根網域> DC 定位器」記錄的解析)。 |
| |
只有在所測試之網域控制站執行的是「Microsoft DNS 伺服器」服務時,才會執行此測試。 |
• | 委派測試會確認委派名稱伺服器是可作用的「DNS 伺服器」。 |
• | 委派測試會確定目標網域控制站所在之 Active Directory 網域區域中的所有 NS 記錄,都具有對應的黏附 A 記錄,來檢查中斷的委派。 |
• | 動態更新測試會確認已設定安全動態更新的 Active Directory 網域區域,以及執行測試記錄 (_dcdiag_test_record) 的登錄。之後會刪除測試記錄。 |
• | 記錄登錄測試會驗證所有「DNS 伺服器」上之所有必要「DC 定位器」記錄的登錄,而這些伺服器是在網域控制站的每個介面卡上所設定。此測試會傳回下列記錄。
|
| |
只有在明確指定 (使用 /DnsResolveExtName) 時,才會執行外部名稱解析測試;而不是當作 /DnsAll 的一部份來執行。 |
• | 外部名稱解析測試會使用範例網際網路名稱 (www.microsoft.com),來驗證給定用戶端之外部 DNS 的基本解析,或使用者提供的網際網路名稱。 |
• | 外部名稱解析測試無法解析外部網際網路名稱,而此名稱是位在使用 Proxy 伺服器的環境中。 |
• | 可使用內部網路或網際網路名稱來測試名稱解析。 |
• | 若要解析使用者提供的網際網路或內部網路名稱 (而非預設名稱 www.microsoft.com),則必須使用 /DnsInternetName 參數。 |
下列步驟會摘要如何解譯 DNS 加強 dcdiag 所提供的結果:
1. | 執行 dcdiagtest:DNS /e /f:dns.txt。Microsoft 建議固定使用 /v 參數來取得詳細資訊。 |
2. | 以 [記事本] 或其他相容的編輯器開啟報告。 |
3. | 捲動到報告結尾,並讀取摘要表格。 |
4. | 在摘要表格中識別任何子測試是傳回「警告」或「失敗」狀態的伺服器。 |
5. | 檢視該伺服器的輸出區段以查看所偵測到的問題 (提示:使用 [編輯] 功能表上的 [尋找] 命令搜尋字串 "DC: DC_computername" (不包括引號),來尋找特定 DC 的詳細區段)。 |
6. | 依需要,解析 DNS 用戶端或 DNS 伺服器上的問題。 |
7. | 再次執行 dcdiag /test:DNS /v /e (或 /s:DCName) 以確認所做的修正。視需要重複步驟 1 到 6,直到瞭解並調解所有失敗為止。 |
Dcdiag 採用了較保守的方式,即識別可能存在問題、不符合最佳作法設定,或 dcdiag 無法完全驗證的 DNS 用戶端或 DNS 伺服器設定。因此,dcdiag 的摘要及詳細區段可能會報告目前作用之 DNS 設定的警告。透過 dcdiag 予以識別時,系統管理員應檢閱及驗證此類設定。
下列各表包含設定,而這些設定可觸發 dcdiag,以報告每個 DNS 子測試的警告或錯誤。
警告 | 其他資訊 |
警告:介面卡 <配接器名稱> 具有動態 IP 位址 | 所有 DNS 伺服器建議使用靜態 IP 位址。 |
警告:介面卡 <介面卡名稱> 具有無效的 DNS 伺服器:<名稱> <IP 位址> | 可能無法連線 DNS 伺服器。 |
警告:沒有 DNS RPC 連線能力 (正在執行錯誤的或非 Microsoft DNS 伺服器) | 如果 DNS 伺服器是 BIND 或其他非 Microsoft DNS 伺服器,則請略過此警告。 |
警告:找不到此 DC/DNS 伺服器的 Active Directory 區域 | N/A |
警告:在此 DC/DNS 伺服器上發現根區域 | N/A |
錯誤 | 其他資訊 |
錯誤:驗證因所指定的認證而失敗 | DCDIAG 要求有 Enterprise Admin 認證,才能執行所有測試。 |
錯誤:沒有 LDAP 連線能力 | N/A |
錯誤:沒有 DS RPC 連線能力 | N/A |
錯誤:沒有 WMI 連線能力 | DNS 測試要求有 WMI 連線能力,才能在遠端電腦上執行。 |
錯誤:無法透過 WMI 讀取作業系統版本 | 這可能是因為遠端電腦沒有 WMI 連線能力。 |
錯誤:不支援 <作業系統名稱> (只有 Windows 2000、Windows XP 及 Windows Server 2003 支援此工具) | N/A |
錯誤:開啟服務控制管理員失敗 | 無法發現服務是否正在執行。 |
錯誤:未執行 Kdc/netlogon/DNS/dnscache | 未執行部份金鑰服務。 |
錯誤:無法透過 WMI 讀取網路介面卡資訊 | N/A |
錯誤:所有 DNS 伺服器無效。 | 用戶端所指向的 DNS 伺服器可能無法連線、不是 DNS 伺服器,或具有無效的 IP 位址。 |
錯誤:找不到此 DC 的 A 記錄 | 每個 DC 應登錄 A 記錄。確定已在用戶端所指向的所有 DNS 伺服器上登錄 A 記錄。 |
錯誤:區域列舉找不到根及 AD 區域 | N/A |
錯誤:無法查詢此 DC 上的 DNS 區域 | 請確定存在 DC 將要登錄的區域。 |
錯誤 | 其他資訊 |
錯誤:轉寄站清單具有無效的轉寄站:<轉寄站的 IP 位址> | DNS 伺服器上設定的轉寄站具有無效的 IP 位址或不是 DNS 伺服器,或名稱解析無法運作 (也就是說,如果是非根網域 DC,則無法解析樹系根網域 SRV 記錄)。 |
錯誤:都未設定根提示及轉寄站。請設定轉寄站或根提示。 | 除非 DNS 伺服器主控有根區域,否則請確定已在 DNS 伺服器上設定轉寄站或根提示。 |
錯誤:根提示清單具有無效的根提示伺服器:<根目錄提示伺服器的 IP 位址> | DNS 伺服器上所設定的根提示伺服器具有無效的 IP 位址或不是 DNS 伺服器,或名稱解析未運作 (即如果樹系根網域 SRV 記錄是非根網域 DC,則無法解析該記錄)。 |
錯誤:<根提示伺服器名稱> IP:<無法使用> 狀態:<伺服器狀態> | 設定的根提示伺服器不具有對應的 IP 位址。狀態欄位會告知您伺服器的狀態 |
錯誤:<根提示伺服器名稱> IP:<無法使用> Status:找不到 A 記錄 | 設定的根提示伺服器不具有 A 記錄。 |
錯誤:無法列舉 <DNS 伺服器名稱> 上的根提示伺服器 | 無法列出目標 DNS 伺服器上的根提示伺服器。 |
警告 | 其他資訊 |
警告:DNS 伺服器:<DnsServer 名稱> IP:<Ipaddress> 失敗:遺失黏附 A 記錄 | 設定的委派遺失黏附 A 記錄。 |
錯誤 | 其他資訊 |
DNS 伺服器:<伺服器名稱> IP:<IP 位址> 錯誤:中斷的委派 -詳細資訊 | 已設定委派,但名稱伺服器未回應。 |
DNS 伺服器:<伺服器名稱> IP:<IP 位址> 錯誤:中斷的委派網域 <委派網域名稱> -非詳細資訊 | N/A |
錯誤:無法列舉伺服器之區域根處的記錄 | N/A |
警告 | 其他資訊 |
警告:已在區域上啟用動態更新,但不是安全的 <區域名稱> | 建議使用安全動態更新。 |
警告:無法新增測試記錄 _dcdiag_test_record,區域 <區域名稱> 發生錯誤 <錯誤碼> | 測試會動態新增虛擬的記錄 |
警告:無法刪除測試記錄 _dcdiag_test_record,區域 <區域名稱> 發生錯誤 <錯誤碼> | 也會一併刪除新增的記錄。 |
錯誤 | 其他資訊 |
錯誤:區域 <區域名稱> 上未啟用動態更新 | Active Directory 區域上未啟用動態更新,因此用戶端無法登錄它的記錄。 |
警告 | 其他資訊 |
警告:DNS 伺服器上遺失 DC SRV 記錄 <記錄名稱> | 如果 DNSAvoidRegisterRecord 登錄機碼或其群組原則已設定為阻止登錄此記錄,請忽略此錯誤。 |
警告:DNS 伺服器上遺失 GC SRV 記錄 <記錄名稱> | 如果 DNSAvoidRegisterRecord 登錄機碼或其群組原則已設定為阻止登錄此記錄,請忽略此錯誤。 |
警告:DNS 伺服器上遺失 PDC SRV 記錄 <記錄名稱> | 如果 DNSAvoidRegisterRecord 登錄機碼或其群組原則已設定為阻止登錄此記錄,請忽略此錯誤。 |
警告:在部份網路介面卡中找不到記錄登錄 | N/A |
錯誤 | 其他資訊 |
錯誤:DNS 伺服器 <DNS 伺服器 IP 位址> 上遺失一筆記錄:<記錄名稱> | DC 未在所指定的 DNS 伺服器上登錄其 A 記錄。 |
錯誤:DNS 伺服器 <DNS 伺服器 IP 位址> 上遺失 CNAME 記錄:<CNAME 記錄名稱> | DC 未在所指定的 DNS 伺服器上登錄其 CNAME 記錄。 |
錯誤:DNS 伺服器 <DNS 伺服器 IP 位址> 上遺失 DC SRV 記錄:<SRV 記錄名稱> | DC 未在所指定的 DNS 伺服器上登錄其 DC SRV 記錄。 |
錯誤:DNS 伺服器 <DNS 伺服器 IP 位址> 上遺失 GC SRV 記錄:<SRV 記錄名稱> | DC 未在所指定的 DNS 伺服器上登錄其 GC SRV 記錄。 |
錯誤:DNS 伺服器 <DNS 伺服器 IP 位址> 上遺失 PDC SRV 記錄:<SRV 記錄名稱> | DC 未在所指定的 DNS 伺服器上登錄所指定的 PDC SRV 記錄。停止及啟動 netlogon 服務,即可登錄所有這些記錄。 |
錯誤:找不到所有網路介面卡的記錄登錄 | 如果有多個網路介面卡,則測試會檢查每個介面卡上所設定之所有 DNS 伺服器上的所有記錄是否存在。如果 DNS 伺服器上的記錄登錄遺失,則會發生此錯誤。 |
錯誤 | 其他資訊 |
錯誤:無法解析網際網路名稱 <名稱> | 無法解析所指定的網際網路名稱。確定已正確設定 Proxy 用戶端、伺服器、根提示及轉寄站。 |
警告 | 其他資訊 |
警告:都未設定從下層網域到上層網域的轉寄站及根提示 | 上層或下層網域的 DNS 伺服器中需要設定轉寄站或根提示,而這些網域會主控其對應網域的授權區域,讓名稱解析運作。 |
錯誤 | 其他資訊 |
錯誤:上層網域上未設定委派 | 應從上層到下層網域來設定委派。 |
錯誤:有委派,但黏附記錄遺失 | 已設定委派,但名稱伺服器遺失它們的黏附記錄。 |
錯誤:未從上層網域到下層網域來設定轉寄站 | 必須從下層網域到上層網域來設定轉寄站。 |
錯誤:未從上層網域到下層網域來設定根提示 | 必須從下層網域到上層網域來設定根提示。 |
錯誤:從下層到上層網域來設定轉寄站,但有一部份的 DNS 伺服器測試失敗 (請參閱 DNS 伺服器區段,以取得錯誤詳細資料) | 所設定的轉寄站具有無效的 IP 位址或不是有效的 DNS 伺服器,或名稱解析未運作 (如果樹系根網域 SRV 記錄是位於非根網域中,則無法解析該記錄)。 |
錯誤:從下層到上層網域來設定根提示,但有一部份的 DNS 伺服器測試失敗 (請參閱 DNS 伺服器區段,以取得錯誤詳細資料) | 所設定的根提示具有無效的 IP 位址或不是有效的 DNS 伺服器,或名稱解析未運作。 |
下列範例將說明 Windows Server 2003 SP1 dcdiag 的使用方式。應將斜體的參數取代成您環境適用的那些參數:
• | 在處於非詳細資訊模式的單一網域控制站上執行所有 DNS 測試: Dcdiag /test:DNS /s:TargetDCName /f:LogFileName |
• | 在處於詳細資訊模式的單一網域控制站上執行所有 DNS 測試: Dcdiag /test:DNS /s:TargetDCName /v /f:LogFileName |
• | 在處於非詳細資訊模式的整個樹系上執行所有 DNS 測試: Dcdiag /test:DNS /e /f:LogFileName |
• | 在處於詳細資訊模式的整個樹系上執行所有 DNS 測試: Dcdiag /test:DNS /v /e /f:LogFileName |
• | 在單一網域控制站上執行 DNS 基本測試: Dcdiag /test:DNS /DnsBasic /s:TargetDCName /f:LogFileName |
• | 在單一網域控制站上執行 DNS 轉寄站測試: Dcdiag /test:DNS /DnsForwarders /s:TargetDCName /f:LogFileName |
• | 在單一網域控制站上執行 DNS 委派測試: Dcdiag /test:DNS /DnsDelegation /s:TargetDCName /f:LogFileName |
• | 在單一網域控制站上執行 DNS 動態更新測試: Dcdiag /test:DNS /DnsDynamicUpdate /s:TargetDCName /f:LogFileName |
• | 在單一網域控制站上執行 DNS 記錄登錄測試: Dcdiag /test:DNS /DnsRecordRegistration /s:TargetDCName /f:LogFileName |
• | 解析範例網際網路或內部網路名稱: Dcdiag /test:DNS /DnsResolveExtName /DnsInternetName:InternetName /f: LogFileName |
| |
執行個別測試時,在執行所指定的個別測試之前,預設會執行 /DnsBasic 測試。 如果未指定個別的測試,則預設會執行所有 DNS 測試 (/DnsResolveName 除外)。 |
Windows Server 2003 Service Pack 1 中已對 DCDiag.exe 進行加強,使其包含了一項新功能,以識別可能會導致 Active Directory 複寫失敗的安全性設定。
新的 CheckSecurityError 測試可在 Active Directory 樹系中的一個或所有網域控制站上執行。該測試會執行下列作業:
• | 檢查金鑰發佈中心 (KDC) 在目標及來源網域控制站之網域中的可用性。 |
• | 確認目標 DC 可以傳輸並接收足夠大的 UDP 格式的封包 (由 Kerberos 使用)。 |
• | 確認目標 DC 的系統時鐘,與目標及來源網域中的 KDC 以及來源 DC 的系統時間相差不超過 5 分鐘。 |
• | 確認來源網域控制站上的每個命名內容根都已設定必要的使用權限。 |
• | 確認來源及目標 DC 電腦帳戶未遭停用、為可供委派的可信任帳戶,並且包含所有必要的服務主要名稱。 |
完成測試時,DCDiag.exe 呈現的摘要包括每個測試之網域控制站的結果,以及所發生之安全性錯誤的診斷。
使用下列語法,可在命令列中執行此測試:
Dcdiag /test:CheckSecurityError
可選擇性將參數 /ReplSource:SourceDC 新增到命令中,以將特定的網域控制站識別成複寫嘗試中的來源。/replsource: 參數中指定的網域控制站不必是目前的來源網域控制站,即目前正被測試的網域控制站的複寫來源 (亦即目標網域控制站目前具有的輸入連線物件的來源)。此測試會從網域控制站、金鑰發佈中心 (KDC) 來源與目標伺服器,以及 Active Directory 收集資訊。
| |
Dcdiag /test:CheckSecurityError 既可在成員電腦的主控台上執行 (使用 /e 或 /s:servername 命令),也可以在網域控制站的主控台上執行。為達到最佳效果,請在輸入 Active Directory 複寫失敗 (因可疑的安全性錯誤所致) 之每個網域控制站的主控台上執行 Dcdiag /test:CheckSecurityError。 |
如果複寫無法運作,且錯誤是安全性錯誤 (例如「拒絕存取」、「目標帳戶名稱不正確」或「RPC 伺服器無法使用」),則導致這個問題的原因有很多。此測試會自動化診斷,方法是透過查看這些錯誤的最常用來源,並報告它們以讓您解決問題。
歡迎光臨 百利工頭 (http://bb.pc104.tw/) | Powered by Discuz! 6.0.0 |