Windows AD裡若有多台DC, 當其中一台出現問題時, 解決過程! (考古文)
沒錯! 2025年了, 還在用Windows 2003 server的AD網域。所以, 最新版的Windows AD應該已經不會有這些問題了吧! 我不知道! 但是windows 2003的AD, 就已經可以有多台DC, 當然是為了防止單一台主機故障, 我們辛苦一筆一筆建立的使用者帳號就不見了。有了多台DC, 就可以把這些帳號資料同時存在不同的DC, 萬一有一台機器壞了, 還有其他DC保存個這些資料。
那麼平常使用AD帳號登入機器時, 自然也是去DC查詢帳號密碼對不對。是不是多台DC環境下, 只要有一台DC正常運作, 就可以了呢? 很多人都會理所當然的這麼想的, 但在2003, 其實不是這樣的。我們有一台主機, 在登入畫面, 當選擇登入AD網域時, 一直出現 "無法登入, 因為無法連線到網域" 的錯誤訊息。因為之前已經檢查了相關主機狀況, 所以我知道多台DC中有一台有點問題。它出現了以下幾個徵狀:
1. 在Active Directory使用者及電腦, 要查找使用者時出現問題
2. 查看事件檢視器的目錄服務分類, 看到一些複寫的錯誤及警告, 例如:
------------------------------------------------------------------------------------------------------------------------
這個伺服器是下列 FSMO 角色的擁有者,但並不認為它是有效 的。對於含有 FSMO 的磁碟分割,這個伺服器自從重新啟動後即 未以任何它的協力電腦成功複寫過。複寫錯誤正阻礙這個角色的 確認。
要求連絡 FSMO 操作主機的操作將會失敗直到這個問題被更正 為止。
FSMO 角色: CN=RID Manager$,CN=System,DC=princo,DC=com,DC=tw
使用者動作:
1. 初始同步處理是系統啟動時所做的第一個早期複寫,初始 同步處理失敗可能說明了為什麼無法確認 FSMO 角色。這個程序 已在 KB article 305476 中說明。
2. 這個伺服器擁有一 或多個複寫協力電腦,而所有這些協力電腦的複寫都將失敗。 請使用命令 repadmin /showrepl 來顯示複寫錯誤,更正有問題 的錯誤。例如,阻礙複寫成功的問題可能在 IP 連線能力,DNS 名稱解析或安全性驗證。
3. 在所有複寫協力電腦全都關閉是預期發生 (可能因為維護 或從嚴重損毀中修復) 的稀有狀況中,您可以強迫確認角色。這 可以經由使用 NTDSUTIL.EXE 拿取角色給相同的伺服器來達到。 這可以使用 http://support.microsoft.com 上 KB articles 255504 和 324801 中所提供的步驟來達到。
下列操作可能會受影響:
架構: 您將不再能夠修改這個樹系的架構。
網域命名: 您將不再能夠從這個樹系新增或移除網域。
PDC: 您將不再能夠執行諸如群組原則更新和非 Active Directory 帳戶密碼重設之類的主要網域控制站操作。
RID: 您將不再能夠為新使用者帳戶、電腦帳戶或安全性群組 配置新的安全性識別元。
基礎結構: 諸如萬用群組成員資格之類的跨網域名稱參照將 無法正確地更新,如果參照目標物件已移動或重新命名。
------------------------------------------------------------------------------------------------------------------------
以及:
-------------------------------------------------------------------------------------------------------------------------
這是本機網域控制站上,下列目錄磁碟分割的複寫狀態。
目錄磁碟分割:
DC=princo,DC=com,DC=tw
本機網域控制站最近並未從一些網域控制站收到複寫資訊。 顯示出的網域控制站計數,分成下列的間隔。
超過 24 小時:
2
超過一週:
2
超過一個月:
2
超過兩個月:
2
超過標記存留時間:
0
標記存留時間 (天):
180
未及時複寫的網域控制站可能會發生錯誤。它可能會遺失密碼變更,並且無法驗證。未在標記存 留時間內進行複寫的 DC 可能已遺失某些物件的刪除,在重新調整之前,它將被自動中止以後的 複寫操作。
如果要依照名稱來識別網域控制站,請安裝包含在安裝 CD 中的支援工具,然後執行 dcdiag.exe。
您也可以使用支援工具 repadmin.exe 來顯示樹系中網域控制站的複寫延遲。 命令為 "repadmin /showvector /latency <partition-dn>"。
在 Windows Server 2003 中,如果你使用 dcpromo
降級網域控制站(DC)時遇到錯誤,例如無法聯繫其他 DC 或複製失敗,可以考慮使用 強制移除(/forceremoval) 的方式跳過某些檢查。
🛠️ 使用 dcpromo /forceremoval
強制降級
這個指令會將 DC 降級為成員伺服器,即使它無法與其他 DC 通訊:
dcpromo /forceremoval
⚠️ 注意:這不會清除 Active Directory 中的該 DC 資料,會留下「孤立的 metadata」,你必須在其他健康的 DC 上手動清理。
🧹 強制降級後的清理步驟
- 清除 AD metadata
- 在其他 DC 上執行:
- 選取要移除的 DC,並執行
remove selected server
- 移除 DNS 記錄
- 刪除該 DC 的 A 記錄、SRV 記錄、反向查詢記錄
- 檢查
_msdcs
、_sites
等區域是否仍有殘留 - 移除 AD Sites and Services 中的伺服器物件
ntdsutil metadata cleanup
📌 額外提醒
- 若該 DC 擁有 FSMO 角色,請先轉移或在其他 DC 上「強制接管(seize)」角色
- 若該 DC 是 Global Catalog 或 DNS Server,也需在其他 DC 上重新設定
🛠️ 使用 netdom
查詢 FSMO 角色分布
netdom query fsmo
這個指令會列出目前網域中五個 FSMO 角色的持有者:
FSMO 角色 | 功能說明 |
---|---|
Schema Master | 控管 AD 架構的變更 |
Domain Naming Master | 控管網域新增/移除 |
RID Master | 分配 RID 給 DC,用於建立 SID |
PDC Emulator | 模擬舊版 PDC,處理密碼同步與時間同步 |
Infrastructure Master | 更新跨網域物件參照資訊 |
✅ netdom
工具包含在 Windows Server 2003 Support Tools 中,請確認已安裝。
🛠️ 強制接管 RID Master 的步驟
請在你要接管角色的 DC 上執行以下操作:
- 開啟命令提示字元
- 進入 FSMO 管理模式
- 建立連線到目標 DC(你要接管角色的 DC)
- 執行強制接管 RID Master
- 完成後退出工具
ntdsutil
roles
connections connect to server <你的DC名稱> quit
seize rid master
quit quit
🧹 使用 ntdsutil
清除 AD metadata 的步驟
請在健康的 DC 上執行以下操作:
- 開啟命令提示字元
- 進入 metadata cleanup 模式
- 建立連線到本機或其他 DC
- 選擇要移除的 DC
- 移除選定的 DC
- 退出工具
ntdsutil
metadata cleanup
connections connect to server <你的DC名稱> quit
select operation target list domains select domain <編號> list sites select site <編號> list servers in site select server <編號> quit
remove selected server
quit quit
📋 清理後的額外步驟
- Active Directory Sites and Services
- 刪除該 DC 的 NTDS Settings 與 Server 物件
- Active Directory Users and Computers
- 刪除該 DC 的電腦帳戶(位於 Domain Controllers OU)
- DNS 管理主控台
- 移除該 DC 的 A、SRV、PTR 記錄,特別是
_msdcs
區域
留言