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