對於公司網絡管理員來說,最怕的就是域控服務器出故障。一般都是採用備份系統狀態和添加額外域控。添加其他域控制器有助於提供容錯,平衡現有域控制器的負載,提高網絡服務的可用性和可靠性。
再將額外域控制器DC2本身設爲“全局編錄”
打開“Active Directory站點和服務”,點選如圖所示屬性
將“全局編錄”打勾,點確定退出。
網絡就已經具備了AD的負載均衡。這個時候,就算是主域DC1出現故障損壞,客戶端(客戶端首選和備用DNS各填寫DC1和DC2的IP)依然可以正常登陸域和使用網絡資源。
但是不能在額外域上對AD進行操作(比如進行Exchange和SMS2003的安裝時壙展Schema)。在做此實驗前,我們先查看FSMO角色的分佈情況,這裏我轉用別人(也是從網上找來的,誰寫的不知道)寫的腳本來查看,具體代碼如下:
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
WScript.Echo text
將其存爲VBS文件,運行後。如下圖:
二.FSMO角色的轉移。
須要在主域控制器DC1正常工作和在線的情況下才能執行轉移在此我給出在圖形方式下的轉移方法,以下操作都是在額外域控制器DC2上進行。
1.Schema Maste
在進行SCHEMA MASTE的圖形下轉移前,要先對schmmgmt註冊。點擊“開始-運行”,輸入:“regsvr32 schmmgmt”,回車:
註冊成功。
運行MMC,“添加/刪除管理單元”,將“Active Directory架構”添加進去。
在控制檯上選中“Active Directory架構”點擊“右鍵”,選擇“操作主機”
如下圖所示,當前的架構主機是DC1。
點擊“更改”出現提示“您確實要更改架構主機?”,點確定,出面成功傳送了操作主機,且當前架構主機已經變爲DC2了,如下圖:
2.RID Master、Infrastructure Master、PDC Emulator
打開“Active Directory用戶和計算機”,選中“TEST.CN”域,右鍵選“操作主機”
在這裏依次更改RID Master、Infrastructure Master、PDC Emulator
3.Domain Naming Master
打開“Active Directory域和信任關係”管理器,在“Active Directory域和信任關係”上點右鍵,選操作主機
在出現的新窗口上,點擊更改。
三.FSMO角色的奪取。
當在主域控制器DC1出現故障損壞的情況下,對於FSMO的角色就不能進行轉移了,這時就只能強行奪取了,需要用到ntdsutil命令行工具。以下是命令行的步驟
打紅線的地方,是要注意的地方,“connect to server test.cn“這裏是連接到test.cn域,實際中,將其改爲公司的域名就可以了。
在此由於DC1主域損壞不在線,所以只能用奪取(seize)而不能轉移(transfer)。
這樣就進入了正式奪取FSMO角色的關鍵步驟了,打入“?”號,查看幫助,以Seize開頭的FSMO五個角色命令都顯示出來了,接下來我們只須在“fsmo maintenance:”依次輸入這五個命令就可以完成FSMO的五個角色的奪取。
1.Seize domain naming master
在出現的對話框點“是”
2.Seize infrastrurcture master
呵呵,出錯了!不過沒關係,這是正常的,因爲主域DC1不在線,所以在奪取時會有這個出錯信息。紅線部份給出了索取繼續,所以結構角色會奪取到DC2上,接下來的各個角色的奪取也會有這個出錯信息。
3.Seize PDC
4.Seize RID master
5.Seize schema master
OK,至此,FSMO的五個角色就全部奪取完成。
再次運行腳本程序或在圖形方式下查看,五個角色都已在DC2服務器上。
四.刪除損壞DC的信息
對於網絡中DC1損壞,雖然經過以上的FSMO角色奪取到DC2上後,整個域已可以正常使用。但在日誌中,還是會有AD數據庫複製信息出錯的提示。
對於DC1由於損壞已不存在了,所以我們可以將DC1這臺域控制器的一些想關信息從域中刪除。
1.ntdsutil命令行工具。
在DC2域控制器上運行ntdsutil
以下是ntdsutil工具執行的步驟:
C:\Documents and Settings\Administrator.TEST>ntdsutil
ntdsutil: ?
? - 顯示這個幫助信息
Authoritative restore - 授權還原 DIT 數據庫
Configurable Settings - 管理可配置的設置
Domain management - 準備新域創建
Files - 管理 NTDS 數據庫文件
Help - 顯示這個幫助信息
LDAP policies - 管理 LDAP 協議策略
Metadata cleanup - 清理不使用的服務器的對象
Popups %s - 用“on”或“off”啓用或禁用彈出
Quit - 退出實用工具
Roles - 管理 NTDS 角色所有者令牌
Security account management - 管理安全帳戶數據庫 - 複製 SID 清理
Semantic database analysis - 語法檢查器
Set DSRM Password - 重置目錄服務還原模式管理員帳戶密碼
ntdsutil: metadata cleanup
metadata cleanup: ?
? - 顯示這個幫助信息
Connections - 連接到一個特定域控制器
Help - 顯示這個幫助信息
Quit - 返回到上一個菜單
Remove selected domain - 刪除所選域的 DS 對象
Remove selected Naming Context - 爲定的命名上下文刪除 DS 對象
Remove selected server - 從所選服務器上刪除 DS 對象
Remove selected server %s - 從所選服務器上刪除 DS 對象
Remove selected server %s on %s - 從所選服務器上刪除 DS 對象
Select operation target - 選擇的站點,服務器,域,角色和命名上下文
metadata cleanup: select operation target
select operation target: connect
server connections: connect to domain test.cn
綁定到 \\DC2.test.cn ...
用本登錄的用戶的憑證連接 \\DC2.test.cn。
server connections: q
select operation target: ?
? - 顯示這個幫助信息
Connections - 連接到一個特定域控制器
Help - 顯示這個幫助信息
List current selections - 列出當前的站點/域/務?命名上下文
List domains - 列出所有包含交叉引用的域
List domains in site - 列出所選站點中的域
List Naming Contexts - 列出已知命名上下文
List roles for connected server - 列出已連接的服務器已知的角色
List servers for domain in site - 列出所選域和站點中的服務器
List servers in site - 列出所選站點中的服務器
List sites - 在企業中列出站點
Quit - 返回到上一個菜單
Select domain %d - 將 %d 域定爲所選域
Select Naming Context %d - 使命名上下文 %d 爲選定的命名上下文
Select server %d - 將 %d 服務器定爲所選服務器
Select site %d - 將 %d 站點定爲所選站點
select operation target: list sites
找到 1 站點
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=cn
select operation target: select site 0
站點 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=cn
沒有當前域
沒有當前服務器
當前的命名上下文
select operation target: list domains in site
找到 1 域
0 - DC=test,DC=cn
select operation target: select domain 0
站點 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=cn
域 - DC=test,DC=cn
沒有當前服務器
當前的命名上下文
select operation target: list servers for domain in site
找到 2 服務器
0 - CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te
st,DC=cn
1 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=te
st,DC=cn
select operation target: select server 0
站點 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=cn
域 - DC=test,DC=cn
服務器 - CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,
DC=test,DC=cn
DSA 對象 - CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name
,CN=Sites,CN=Configuration,DC=test,DC=cn
DNS 主機名稱 - DC1.test.cn
計算機對象 - CN=DC1,OU=Domain Controllers,DC=test,DC=cn
當前的命名上下文
select operation target: q
metadata cleanup: ?
? - 顯示這個幫助信息
Connections - 連接到一個特定域控制器
Help - 顯示這個幫助信息
Quit - 返回到上一個菜單
Remove selected domain - 刪除所選域的 DS 對象
Remove selected Naming Context - 爲定的命名上下文刪除 DS 對象
Remove selected server - 從所選服務器上刪除 DS 對象
Remove selected server %s - 從所選服務器上刪除 DS 對象
Remove selected server %s on %s - 從所選服務器上刪除 DS 對象
Select operation target - 選擇的站點,服務器,域,角色和命名上下文
metadata cleanup: remove selected server
點“是”後如下圖所示:
2.ADSI EDIT
先安裝SUPPORT TOOLS工具包,再運行adsiedit.msc打開後,找到如下圖所示的位置:
在右邊窗口查看是否有CN=DC1,有就將其刪除。
2.ADSI EDIT
先安裝SUPPORT TOOLS工具包,再運行adsiedit.msc打開後,找到如下圖所示的位置:
在右邊窗口查看是否有CN=DC1,有就將其刪除。
3.Active directory站點和服務中刪除DC1
至此,實驗完成!