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

圖1 修復模式界面

圖2 選擇還原的類型
進入系統后打開Windows Server Backup程序,在右側選擇“恢復”項,在向導界面中選擇“系統狀態”項,在下一步窗口(如圖2)中選擇“原始位置”項,如果執行的是授權還原模式,需要選擇“對Active Directory文件執行授權還原”項。之后點擊“恢復”按鈕,執行恢復操作接口。
注意:對于授權還原來說,不能選擇“自動重新引導服務器以完成恢復過程”項。
這里以授權還原為例進行說明,當恢復后,在重新啟動前,需要在CMD
窗 口 中 執 行“ntdsutil”命令,在提示符下執行“activate instance ntds”,“authoritative restore”命令,在授權還原提示符下執行“restore object "cn=user1,ou=dapart,dc=xxx,d c=com"”命令,針對目標賬戶進行授權還原,這里僅僅使用名為“user1”的用戶為例進行說明,實際上就是對其屬性版本號增加10000的值,這樣該DC重啟后,指定的對象的屬性會同步到其他的DC上。