■ 河南 劉進(jìn)京
編者按:在企業(yè)網(wǎng)絡(luò)環(huán)境中,活動(dòng)目錄的作用是非常重要的。在實(shí)際的網(wǎng)絡(luò)運(yùn)行中,可能會(huì)出現(xiàn)和活動(dòng)目錄有關(guān)的各種故障,這無(wú)疑會(huì)給網(wǎng)絡(luò)管理造成不利影響。因此,及時(shí)發(fā)現(xiàn)并排除這些問(wèn)題,對(duì)活動(dòng)目錄進(jìn)行災(zāi)難恢復(fù),是網(wǎng)絡(luò)管理員必須掌握的技術(shù)。
以Windows Server 2016為操作環(huán)境,利用系統(tǒng)提供的多種活動(dòng)目錄恢復(fù)功能,包括回收站,服務(wù)器元數(shù)據(jù)清除和目錄還原等方法,可以快速有效的排除與活動(dòng)目錄有關(guān)的故障。
對(duì)于活動(dòng)目錄域服務(wù)來(lái)說(shuō),可以依據(jù)企業(yè)的實(shí)際應(yīng)用環(huán)境,來(lái)添加對(duì)應(yīng)的OU和用戶。對(duì)于用戶的屬性,可以進(jìn)行更新和修改。對(duì)于無(wú)關(guān)的用戶,可以將其刪除。例如在PowerShell中執(zhí) 行“Get-Aduser -filter*”命令,可以查看所有的賬戶信息。執(zhí)行“Get-Aduser -filter | select distinguishedname”命令,顯示賬戶匯總信息。
實(shí)際上,當(dāng)刪除的某個(gè)賬戶后,其實(shí)執(zhí)行的Soft Delete軟刪除操作。即被刪除的對(duì)象依然保存在活動(dòng)目錄數(shù)據(jù)庫(kù)中,經(jīng)過(guò)180天后才會(huì)被徹底清除。
對(duì)于活動(dòng)目錄中的Delete Object對(duì)象來(lái)說(shuō),是可以根據(jù)需要對(duì)其進(jìn)行恢復(fù)的。如果要恢復(fù)誤刪除的對(duì)象,在Windows Server 2008 R2之前,需要使用LDP.EXE這款工具,執(zhí)行一系列復(fù)雜的操作來(lái)實(shí)現(xiàn)。
對(duì)于之后的系統(tǒng),系統(tǒng)提供了對(duì)象回收站這一邏輯管理單元,可以使用活動(dòng)目錄管理中心這一工具輕松進(jìn)行恢復(fù)。
打開(kāi)Active Directory管理中心,在左側(cè)對(duì)應(yīng)域的根目錄,在右側(cè)點(diǎn)擊“啟用回收站”項(xiàng)啟動(dòng)該功能。
注意:該功能一旦啟用則不能撤銷。
這樣,在活動(dòng)目錄中就會(huì)增加名為“Delete Objects”的容器,在其中存儲(chǔ)所有被刪除的對(duì)象。選擇某個(gè)刪除的對(duì)象,點(diǎn)擊右側(cè)“還原”項(xiàng),即可將其恢復(fù)過(guò)來(lái)。
此外,從Windows Server 2008開(kāi)始,系統(tǒng)針對(duì)活動(dòng)目錄對(duì)象提供了防意外刪除功能。
在Active Directory用戶的計(jì)算機(jī)窗口中點(diǎn)擊菜單“查看”-“高級(jí)功能”項(xiàng),喧選擇某個(gè)賬戶,在其屬性窗口中的“對(duì)象”面板中選擇“防止對(duì)象被意外刪除”項(xiàng)。這樣當(dāng)刪除該對(duì)象時(shí),系統(tǒng)就會(huì)其對(duì)其進(jìn)行攔截。
對(duì)于容器來(lái)說(shuō),默認(rèn)已經(jīng)開(kāi)啟了防意外刪除包谷功能。
對(duì)于之前的系統(tǒng),也可以使用“l(fā)dp.exe”程序,執(zhí)行恢復(fù)操作。
以管理員身份登錄域控制器,點(diǎn)擊“Win+R”鍵,執(zhí)行“l(fā)dp.exe”程序,在彈出窗口中點(diǎn)擊菜單“連接”-“連接”項(xiàng),在連接窗口中輸入林根域內(nèi)的域控制器主機(jī)名稱(例如“DCServer”),點(diǎn)擊確定按鈕。
點(diǎn)擊菜單“連接”-“綁定”項(xiàng),在彈出窗口中點(diǎn)擊確定按鈕。
點(diǎn)擊菜單“查看”-“樹(shù)”項(xiàng),在樹(shù)視圖窗口中輸入林根域域名(例如“xxx.com”)。
點(diǎn)擊確定按鈕。點(diǎn)擊菜單“選項(xiàng)”-“控制”項(xiàng),在控制窗口右下角的“預(yù)定義加載”列表中選擇“Return deleted objects”項(xiàng)。
點(diǎn)擊確定按鈕,在窗口左側(cè)的分析列表中 的 打 開(kāi)“CN=Deleted Objects,DC=xxx,DC=com”節(jié)點(diǎn),在下面可以看到誤刪除的賬戶名信息。
在該誤刪除項(xiàng)的右鍵菜單上點(diǎn)擊“修改”項(xiàng),在彈出窗口中的“屬性”欄中輸入“isDeletd”,在“操作”欄中選擇“刪除”項(xiàng)。
點(diǎn)擊“輸入”按鈕,完成輸入操作后,在“屬性”欄中輸入“distinguishedName”,在“值” 欄 中 輸 入“cn=zhanghu,ou=市 場(chǎng)部 ,dc=xxx,dc=com”,這里采用的是假設(shè)的賬戶名,組織單元名和域名,您可以根據(jù)實(shí)際情況加以更改。
在窗口左下角選擇“擴(kuò)展”和“同步”項(xiàng),在“操作”欄中選擇“替換”項(xiàng),點(diǎn)擊“輸入”按鈕,完成恢復(fù)信息的輸入操作。最后點(diǎn)擊“運(yùn)行”按鈕,就可以恢復(fù)誤刪除的賬戶了。
活動(dòng)目錄元數(shù)據(jù)清除功能,適用于DC損壞的情況。
例如,在網(wǎng)絡(luò)中存在多個(gè)域控,當(dāng)添加新的域控時(shí),可能因?yàn)槠溆脖P/主板/電源受損等原因,導(dǎo)致其安裝失敗。但是該DC已經(jīng)將一些數(shù)據(jù)寫入到了“NTDS.DIT”數(shù)據(jù)庫(kù)文件中的配置分區(qū)中,這就需要將該DC從配置分區(qū)中清除。
對(duì)于這種情況,可以在其他的DC上打開(kāi)Active Directory活動(dòng)目錄和計(jì)算機(jī)窗口,在左側(cè)選擇“Domain Controllers”項(xiàng),在右側(cè)可以看到該已經(jīng)損壞的DC。僅僅在其名稱的右鍵菜單上點(diǎn)擊“刪除”項(xiàng)將其清除,是不能解決問(wèn)題的。
在CMD窗 口 中 執(zhí)行“ntdsutil” 命 令,在“ntdsutil:”提示符下執(zhí)行“activate instance ntds”命令,激活NTDS實(shí)例名稱。
執(zhí) 行“metadata cleanup”命令,在元數(shù)據(jù)清除模式下執(zhí)行“select operation target”命 令,選擇站點(diǎn)/服務(wù)器/域/角色和命名上下文,執(zhí)行“connect to server dc1.xxx.com”命令,連接到指定的正常的DC服務(wù)器。
當(dāng)使用本登錄的用戶憑證綁定之后,執(zhí)行“q”命令返回上級(jí)菜單。
執(zhí)行“l(fā)ist domains”命令,顯示找的域名。
執(zhí)行“select domain 0”命令,選擇指定的域,一般來(lái)說(shuō),0表示一個(gè)森林的根域。
執(zhí)行“List sytes”命令,顯示站點(diǎn)信息。執(zhí)行“select site 0”命令,選擇目標(biāo)站點(diǎn)。
執(zhí) 行“l(fā)ist naming contexts”命令,顯示命名上下文信息,即活動(dòng)目錄數(shù)據(jù)庫(kù)中的所有分區(qū),一般包括 Configuration,Schema,Domain等分區(qū)。
執(zhí) 行“select naming context 1”命 令,選 擇Domain分 區(qū)。 執(zhí) 行“l(fā)ist servers in site”命令,顯示該站點(diǎn)中的所有DC服務(wù)器。
例 如 執(zhí) 行“select server 3”命令,選擇目標(biāo)DC服務(wù)器,這里的“3”為具體的編號(hào),可以根據(jù)實(shí)際情況修改。執(zhí)行“q”命令,返回元數(shù)據(jù)清除模式。執(zhí)行“remove selected server”命令,在彈出的警告窗口中點(diǎn)擊“是”按鈕,才徹底清除了該DC在活動(dòng)目錄中的元數(shù)據(jù)信息。
此外,在卸載對(duì)應(yīng)DC的過(guò)程中如果出錯(cuò),或者正在運(yùn)行的某臺(tái)DC損壞而無(wú)法修復(fù),都會(huì)導(dǎo)致活動(dòng)目錄數(shù)據(jù)庫(kù)中保存錯(cuò)誤信息的情況,都可以使用上述方法對(duì)其進(jìn)行清除。
為了保證活動(dòng)目錄域服務(wù)順暢運(yùn)行,除了需要準(zhǔn)備多臺(tái)DC外,還需要對(duì)其進(jìn)行及時(shí)的備份。這樣,即使某臺(tái)DC出現(xiàn)啟動(dòng)失敗等情況,也可以從容加以應(yīng)對(duì)。
可以使用備份數(shù)據(jù)進(jìn)行恢復(fù),在恢復(fù)的過(guò)程中,可能在其他的DC上添加了新的賬戶信息,當(dāng)其恢復(fù)完成后,其他的DC會(huì)通過(guò)復(fù)制的方式,將變動(dòng)信息同步到該DC上,這稱為非授權(quán)的還原。
此外,如果這些DC服務(wù)器感染了惡意程序,惡意程序?qū)顒?dòng)目錄的信息進(jìn)行了破壞操作(例如隨意修改賬戶屬性等),因?yàn)檫@可能涉及到大量的配置信息,手工逐個(gè)恢復(fù)比較繁瑣。
如果在之前及時(shí)進(jìn)行了備份,就可以在其中一臺(tái)DC上執(zhí)行恢復(fù)操作,將活動(dòng)目錄數(shù)據(jù)恢復(fù)到正常狀態(tài)。但是,如果該DC重新啟動(dòng)后,其他DC上的混亂數(shù)據(jù)也會(huì)同步到該DC中。解決的方法是,只允許該DC將數(shù)據(jù)同步復(fù)制到其他的DC上,這稱為授權(quán)還原。要實(shí)現(xiàn)這種反向復(fù)制,需要在還原后的活動(dòng)目錄對(duì)象的USN值進(jìn)行適當(dāng)調(diào)整。
例如在DCsrv2上打開(kāi)Windows Server Backup程序,在右側(cè)點(diǎn)擊“一次性備份”項(xiàng),在向?qū)Ы缑嬷羞x擇“自定義”項(xiàng),再打開(kāi)窗口中可以選擇裸機(jī)恢復(fù),系統(tǒng)狀態(tài)等項(xiàng)目。之后選擇備份路徑,執(zhí)行具體的備份操作。
當(dāng)出現(xiàn)以上故障時(shí),可以在按下Shift鍵的同時(shí)重啟該DC,在重啟過(guò)程中會(huì)自動(dòng)進(jìn)入修復(fù)模式(如圖1)。選擇“疑難解答”和“啟動(dòng)設(shè)置”項(xiàng),點(diǎn)擊“重啟”按鈕,在之后出現(xiàn)的高級(jí)啟動(dòng)選項(xiàng)界面中選擇“目錄服務(wù)修復(fù)”項(xiàng),輸入目錄還原模式密碼。
圖1 修復(fù)模式界面
圖2 選擇還原的類型
進(jìn)入系統(tǒng)后打開(kāi)Windows Server Backup程序,在右側(cè)選擇“恢復(fù)”項(xiàng),在向?qū)Ы缑嬷羞x擇“系統(tǒng)狀態(tài)”項(xiàng),在下一步窗口(如圖2)中選擇“原始位置”項(xiàng),如果執(zhí)行的是授權(quán)還原模式,需要選擇“對(duì)Active Directory文件執(zhí)行授權(quán)還原”項(xiàng)。之后點(diǎn)擊“恢復(fù)”按鈕,執(zhí)行恢復(fù)操作接口。
注意:對(duì)于授權(quán)還原來(lái)說(shuō),不能選擇“自動(dòng)重新引導(dǎo)服務(wù)器以完成恢復(fù)過(guò)程”項(xiàng)。
這里以授權(quán)還原為例進(jìn)行說(shuō)明,當(dāng)恢復(fù)后,在重新啟動(dòng)前,需要在CMD
窗 口 中 執(zhí) 行“ntdsutil”命令,在提示符下執(zhí)行“activate instance ntds”,“authoritative restore”命令,在授權(quán)還原提示符下執(zhí)行“restore object "cn=user1,ou=dapart,dc=xxx,d c=com"”命令,針對(duì)目標(biāo)賬戶進(jìn)行授權(quán)還原,這里僅僅使用名為“user1”的用戶為例進(jìn)行說(shuō)明,實(shí)際上就是對(duì)其屬性版本號(hào)增加10000的值,這樣該DC重啟后,指定的對(duì)象的屬性會(huì)同步到其他的DC上。