LAB環境中的網域控制站有三台DC01,DC02,DC03(Azure),突然發生DC02 無法登入
登入時出現和用戶端PC登入網域時偶爾會發生的=>此工作站和主要網域間的信任關係失敗
於是先從DC01登入看一下開啟AD管理工具檢查DC02電腦帳戶是否存在~~發現是存在的,因為都無法登入且都是VM所以只好強迫重開機,但重開後就出現藍底白字錯誤代碼為 0xc00002e2,然後無限輪迴連登入畫面也看不到。
查詢了一下錯誤代碼,可能的原因是ad資料庫ntds.dit 損毀造成
所以我讓他重跑幾次後,選擇疑難排解來進入DSRM模式
進入目錄還原模式(可以參考下面幾張圖)
備份c:\windows\ntds 目錄所有檔案,到另外的路徑
輸入 activate instance ntds 按enter
輸入 Info 按enter (可以看到AD資料庫相關路徑資訊)
回到 c:\windows\ntds目錄 將.log檔案刪除或是改名稱
接著,重開機,
==>再次進到錄還原模式
==>進入 ntdsutil 模式
==>輸入 activate instance ntds 按enter
==> 輸入 Files 按enter
==> 輸入 Info 按enter (可以看到AD資料庫相關路徑資訊已經沒有log)
==> 輸入 Compact to C:\windows\ntds\temp 按 Enter ==> 會發生下圖錯誤
Compact to C:\windows\ntds\temp =>這個步驟簡單來說就是壓縮Active Directory數據庫,也會檢查資料庫的完整性,並且經檢查完沒問題的資料庫放到指定的路徑。
但看起來我這次的問題資料庫可能已經有問題了。
接著先嘗試修復資料庫只用下列指令(開啟命令提示字元)
esentutl /p “c:\windows\ntds\ntds.dit”
看起來有修復成功
再次執行壓縮重整資料庫就可以成功
壓縮整理後確實在指定的路徑產生新的資料庫ntds.dit
再來就是把壓縮整理後的ntds.dit 覆蓋掉原資料庫路徑的ntds.dit,並且將*.log 都刪除
然後重開機,如果順利應該就恢復正常。(此次我可以順利登入)登入後確認一下AD複寫是否有異常。
結論:
因為這台DC02(不具有5大角色),本身我都有使用windows system backup 備份AD資料庫到NAS,如果真的修復不回來,我的作法應該就是進入目錄還原模式還原最近一天備份的資料後再讓它與其他DC複寫最新資料。
參考資料:
1. Esentutl指令
2. Compact the Directory Database File (Offline Defragmentation)
3. Directory Services cannot start” error message when you start your Windows-based or SBS-based domain controller
本篇瀏覽人數: 8164