多域控制器環境下Active Directory災難恢復

目錄
Active Directory操作主機角色概述
環境分析
從AD中清除主域控制器DC-01.test.com 對象
在額外域控制器上通過ntdsutil.exe工具執行奪取五種FMSO操作
設置額外域控制器爲GC(全局編錄)
重新安裝並恢復損壞主域控制器
附:用於檢測AD中五種操作主機角色的腳本
參考信息
作者介紹

一、Active Directory操作主機角色概述
Active Directory 定義了五種操作主機角色(又稱FSMO):
架構主機 schema master、
域命名主機 domain naming master
相對標識號 (RID) 主機 RID master
主域控制器模擬器 (PDCE)
基礎結構主機 infrastructure master
而每種操作主機角色負擔不同的工作,具有不同的功能:
架構主機
具有架構主機角色的 DC 是可以更新目錄架構的唯一 DC。這些架構更新會從架構主機複製到目錄林中的所有其它域控制器中。 架構主機是基於目錄林的,整個目錄林中只有一個架構主機。
域命名主機
具有域命名主機角色的 DC 是可以執行以下任務的唯一 DC:
向目錄林中添加新域。
從目錄林中刪除現有的域。
添加或刪除描述外部目錄的交叉引用對象。
相對標識號 (RID) 主機
此操作主機負責向其它 DC 分配 RID 池。只有一個服務器執行此任務。在創建安全主體(例如用戶、
組或計算機)時,需要將 RID 與域範圍內的標識符相結合,以創建唯一的安全標識符 (SID)。 每一個
Windows 2000 DC 都會收到用於創建對象的 RID 池(默認爲 512)。RID 主機通過分配不同的池來確保這
些 ID 在每一個 DC 上都是唯一的。通過 RID 主機,還可以在同一目錄林中的不同域之間移動所有對象。
域命名主機是基於目錄林的,整個目錄林中只有一個域命名主機。相對標識號(RID)主機是基於域的,目錄林中的每個域都有自己的相對標識號(RID)主機
PDCE
主域控制器模擬器提供以下主要功能:
向後兼容低級客戶端和服務器,允許 Windows NT4.0 備份域控制器 (BDC) 加入到新的 Windows 2000 環境。 本機 Windows 2000 環境將密碼更改轉發到 PDCE。每當 DC 驗證密碼失敗後,它會與 PDCE 取得聯繫,以查看該密碼是否可以在那裏得到驗證,也許其原因在於密碼更改還沒有被複制到驗證 DC 中。
時間同步 — 目錄林中各個域的 PDCE 都會與目錄林的根域中的 PDCE 進行同步。
PDCE是基於域的,目錄林中的每個域都有自己的PDCE。
基礎結構主機
基礎結構主機確保所有域間操作對象的一致性。當引用另一個域中的對象時,此引用包含該對象的
全局唯一標識符 (GUID)、安全標識符 (SID) 和可分辨的名稱 (DN)。如果被引用的對象移動,則在域中擔
當結構主機角色的 DC 會負責更新該域中跨域對象引用中的 SID 和 DN。
基礎結構主機是基於域的,目錄林中的每個域都有自己的基礎結構主機
默認,這五種FMSO存在於目錄林根域的第一臺DC(主域控制器)上,而子域中的相對標識號 (RID) 主機、PDCE 、基礎結構主機存在於子域中的第一臺DC。

二、環境分析
公司Test.com(虛擬)有一臺主域控制器DC-01.test.com,還有一臺額外域控制器DC-02.test.com。現主域控制器(DC-01.test.com)由於硬件故障突然損壞,事先又沒有DC-01.test.com的系統狀態備份,沒辦法通過備份修復主域控制器(DC-01.test.com),我們怎麼讓額外域控制器(DC-02.test.com)替代主域控制器,使Acitvie Directory繼續正常運行,並在損壞的主域控制器硬件修理好之後,如何使損壞的主域控制器恢復。
如果你的第一臺DC壞了,還有額外域控制器正常,需要在一臺額外域控制器上奪取這五種FMSO,並需要把額外域控制器設置爲GC。

三、從AD中清除主域控制器DC-01.test.com對象
3.1在額外域控制器(DC-02.test.com)上通過ntdsutil.exe工具把主域控制器(DC-01.test.com)從AD中刪除;
c:>ntdsutil
ntdsutil: metadata cleanup
metadata cleanup: select operation target
select operation target: connections
server connections: connect to domain test.com
select operation target: list sites
Found 1 site(s)
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com
select operation target: select site 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com
No current domain
No current server
No current Naming Context
select operation target: List domains in site
Found 1 domain(s)
0 - DC=test,DC=com
Found 1 domain(s)
0 - DC=test,DC=com
select operation target: select domain 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com
Domain - DC=test,DC=com
No current server
No current Naming Context
select operation target: List servers for domain in site
Found 2 server(s)
0 - CN=DC-01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te
st,DC=com
1 - CN=DC-02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te
st,DC=com
select operation target: select server 0
select operation target: quit
metadata cleanup:Remove selected server

出現對話框,按“確定“刪除DC-01主控服務器。
metadata cleanup:quit
ntdsutil: quit
3.2使用ADSI EDIT工具刪除Active Directory users and computers中的Domain controllers中DC-01服務器對象,
ADSI EDIT是Windows 2000 support tools中的工具,你需要安裝Windows 2000 support tool,安裝程序在windows 2000光盤中的support/tools目錄下。打開ADSI EDIT工具,展開Domain NC[DC-02.test.com],展開OU=Domain controllers,右擊CN=DC-01,然後選擇Delete,把DC-01服務器對象刪除,如圖1:
3.3 在Active Directory Sites and Service中刪除DC-01服務器對象
打開Administrative tools中的Active Directory Sites and Service,展開Sites,展開Default-First-Site-Name,展開Servers,右擊DC-01,選擇Delete,單擊Yes按鈕,如圖2:

四、在額外域控制器上通過ntdsutil.exe工具執行奪取五種FMSO操作
c:>ntdsutil
ntdsutil: roles
fsmo maintenance: Select operation target
select operation target: connections
server connections: connect to domain test.com
select operation target: list sites
Found 1 site(s)
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com
select operation target: select site 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com
No current domain
No current server
No current Naming Context
select operation target: List domains in site
Found 1 domain(s)
0 - DC=test,DC=com
select operation target: select domain 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=com
Domain - DC=test,DC=com
No current server
No current Naming Context
select operation target: List servers for domain in site
Found 1 server(s)
0 - CN=DC-02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te
st,DC=com
select operation target: select server 0
select operation target: quit
fsmo maintenance:Seize domain naming master
出現對話框,按“確定“
fsmo maintenance:Seize infrastructure master
出現對話框,按“確定“
fsmo maintenance:Seize PDC
出現對話框,按“確定“
fsmo maintenance:Seize RID master
出現對話框,按“確定“
fsmo maintenance:Seize schema master
出現對話框,按“確定“
fsmo maintenance:quit
ntdsutil: quit
(注:Seize是在原FSMO不在線時進行操作,如果原FSMO在線,需要使用Transfer操作)

五、設置額外控制(DC-02.test.com)爲GC(全局編錄)
打開Administrative Tools中的Active Directory Sites and Services,展開Sites,展開Default-First-Site-Name,展開Servers,展開DC-02.test.com(額外控制器),右擊NTDS Settings選擇Properties,然後在"Global Catalog"前面打勾,單擊"確定"按鈕,然後重新啓動服務器。

六、重新安裝並恢復損壞主域控制器
修理好DC-01.test.com損壞的硬件之後,在DC-01.test.com服務器重新安裝Windows 2000 Server,安裝好Windows 2000 Server之後,再運行Dcpromo升成額外的域控制器;如果你需要使DC-01.test.com擔任五種FMSO角色,通過ntdsutil工具進行角色轉換,進行Transfer操作就行了(注意:不能用Seize)。並通過Active Directory Sites and Services設置DC-01.test.com爲GC,取消DC-02.test.com的GC功能。
建議domain naming master不要和RID master在一臺DC上,而domain naming master同時必須爲GC。

附:用於檢測AD中五種操作主機角色的腳本
給大家一個腳本,用於檢測AD中五種FSMO角色,把下面的代碼,保存爲FSMO.VBS,然後執行它.
Set objRootDSE = GetObject("LDAP://rootDSE")

Dim text

' Schema Master
Set objSchema = GetObject("LDAP://" & objRootDSE.Get("schemaNamingContext"))
strSchemaMaster = objSchema.Get("fSMORoleOwner")
Set objNtds = GetObject("LDAP://" & strSchemaMaster)
Set objComputer = GetObject(objNtds.Parent)
text="Forest-wide Schema Master FSMO: " & objComputer.Name & vbCrLf 

Set objNtds = Nothing
Set objComputer = Nothing

' Domain Naming Master
Set objPartitions = GetObject("LDAP://CN=Partitions," & _
objRootDSE.Get("configurationNamingContext"))
strDomainNamingMaster = objPartitions.Get("fSMORoleOwner")
Set objNtds = GetObject("LDAP://" & strDomainNamingMaster)
Set objComputer = GetObject(objNtds.Parent)
text=text&"Forest-wide Domain Naming Master FSMO: " & objComputer.Name & vbCrLf 

Set objNtds = Nothing
Set objComputer = Nothing

' PDC Emulator
Set objDomain = GetObject("LDAP://" & objRootDSE.Get("defaultNamingContext"))
strPdcEmulator = objDomain.Get("fSMORoleOwner")
Set objNtds = GetObject("LDAP://" & strPdcEmulator)
Set objComputer = GetObject(objNtds.Parent)
text=text&"Domain's PDC Emulator FSMO: " & objComputer.Name & vbCrLf 

Set objNtds = Nothing
Set objComputer = Nothing

' RID Master
Set objRidManager = GetObject("LDAP://CN=RID Manager$,CN=System," & _
objRootDSE.Get("defaultNamingContext"))
strRidMaster = objRidManager.Get("fSMORoleOwner")
Set objNtds = GetObject("LDAP://" & strRidMaster)
Set objComputer = GetObject(objNtds.Parent)
text=text&"Domain's RID Master FSMO: " & objComputer.Name & vbCrLf 


Set objNtds = Nothing
Set objComputer = Nothing

' Infrastructure Master
Set objInfrastructure = GetObject("LDAP://CN=Infrastructure," & _
objRootDSE.Get("defaultNamingContext"))
strInfrastructureMaster = objInfrastructure.Get("fSMORoleOwner")
Set objNtds = GetObject("LDAP://" & strInfrastructureMaster)
Set objComputer = GetObject(objNtds.Parent)
text=text&"Domain's Infrastructure Master FSMO: " & objComputer.Name & vbCrLf 

text=text & vbCrLf &" Design by coolnetboy([email protected])"
WScript.Echo text

參考信息
Microsoft Windows 2000 Server Resource Kit
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章