根據(jù)系統(tǒng)的報錯信息、系統(tǒng)日志或者應(yīng)用程序的報錯,懷疑出錯原因是域控制器上的Active Directory,這時可能您最先想到的就是使用Ntdsutil工具的修理功能來修復(fù)。但是,我建議您最好把它作為所有可用方法中最后的方案。如果有一個有效的備份,最好使用備份來恢復(fù)系統(tǒng),應(yīng)該始終把使用備份來恢復(fù)作為您首選的方案。
對目錄數(shù)據(jù)庫使用修復(fù)功能并不總是能夠達(dá)到預(yù)期的結(jié)果。比如,如果數(shù)據(jù)庫文件真的損壞了,即使使用Ntdsutil也是沒有辦法恢復(fù)所有的對象和屬性值。實際上,在某些情況下使用修復(fù)工具反而會造成更多的數(shù)據(jù)丟失,所以在嘗試使用這種修復(fù)工具之前,注意把這個服務(wù)器從網(wǎng)絡(luò)中隔離開來,以避免影響到其他域控制器的Active Directory復(fù)制。在確認(rèn)修復(fù)后的服務(wù)器一切正常以后再連接到網(wǎng)絡(luò)中來。
下面以Windows 2003為例來介紹如何使用Ntdsutil修復(fù)Active Directory數(shù)據(jù)庫。
要對數(shù)據(jù)庫進(jìn)行修理請按照以下步驟:
(1)打開命令行提示符窗口,輸入下面的命令:
Ntdsutil
(2)當(dāng)出現(xiàn)Ntdsutil的提示后,輸入下面的命令:
repair
當(dāng)其他一切的努力都失敗的時候,您可能才會發(fā)現(xiàn)從Active Directory的備份中恢復(fù)一個Windows 2000域控制器(甚至可以恢復(fù)整個Active Directory網(wǎng)絡(luò))才是最有效的。雖然要把Active Directory從一個備份恢復(fù)到一個域控制器上不是一件難事,但是在您進(jìn)行任何恢復(fù)之前,需要對網(wǎng)絡(luò)體系和邏輯關(guān)系仔細(xì)考慮。如果在一個網(wǎng)絡(luò)中存在一臺以上的Windows 2000 域控制器,Active Directory將不再只存放在一個地方,這是一個非常重要的問題,它直接決定了將來的恢復(fù)過程。試著問問自己以下的幾個問題:
是否本地的Active Directory數(shù)據(jù)庫損壞了,其他復(fù)制過的域控制器也損壞了嗎?當(dāng)一個域控制器從一個好的備份中恢復(fù)以后,是否應(yīng)該覆蓋其他Active Directory中的數(shù)據(jù),如果要覆蓋,那么是否會丟失所有修改過的數(shù)據(jù)(例如新建或刪除的組織單位、修改過的用戶和計算機(jī))?能否只恢復(fù)本地的Active Directory從而讓它恢復(fù)正常(可能因為數(shù)據(jù)庫損壞、文件丟失或其他原因造成這臺服務(wù)器與其他不一致)?在恢復(fù)以后,這臺服務(wù)器應(yīng)該從哪些域控制器上接收更新數(shù)據(jù)?
回答以上的這些問題將有助于您決定使用哪一種恢復(fù)模式:非授權(quán)(Nonauthoritative)模式或者授權(quán)(Authoritative)模式。