对于公司网络管理员来说,最怕的就是域控服务器出故障。一般都是采用备份系统状态和添加额外域控。添加其他域控制器有助于提供容错,平衡现有域控制器的负载,提高网络服务的可用性和可靠性。
再将额外域控制器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
至此,实验完成!