主域无法开机,备份域升级成主域操作

        在多域控制器环境下,主域控制器由于硬件故障突然损坏,而又事先又没有做好备份,如何使额外域控制器接替它的工作,使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操作)

(注:备份域上必须设置了与主域的DNS的复制,才能顺利的完成上面的操作)
________________________________________
五、设置额外控制(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

 

五种角色查找定位

⑴、Schema Maste

  点击“开始-运行”,输入:“regsvr32 schmmgmt”,回车:

  然后点击“确定”。

  再点击“开始-运行”,输入:“MMC”,回车,进入控制台,.

  点击“文件-添加删除管理单元”

  出来下面的介面:

  再点击“添加”:

  选中上图所示中有“Active Directory架构”,点击“添加”,然后点“关闭”:

  然后点击“确定”,在控制台上选中“Active Directory架构”击“右键”,选择“操作主机”

  出现下图:

  就可以看到当前的架构主控了。

  ⑵、RID Master、Infrastructure Master、PDC Emulator

  点击“开始-设置-控制面板-管理工具-Active Directory用户和计算机”

  在域名上单击右键:

  在出来的菜单中选择“操作主机”:

  在出来的画面中可以看到RID Master、PDC Emulator、Infrastructure Master的分布情况。

  ⑶、Domain Naming Master

  点击“开始-设置-控制面板-管理工具-Active Directory域和信任关系”:

  在“Active Directory域和信任关系”上击右键:

  选择“操作主机”:

  这就是“Domain Naming Master”所在的域控制器。

  以上就是用GUI来查看FSMO五种角色的分布情况,用GUI介面不但可以查看,还可以随意的改变这五种角色的分布情况,但缺点是比较麻烦,需要较多的操作项目,如果仅仅是查看就比较的浪费时间。

  2、 命令行工具:

  首先你要安装Support Tools,在安装光盘中的Support文件夹下的Tools子文件下。默认安装在系统盘的Program Files文件下。安装成功后,点击“开始-程序-Windows Support Tools-Command Prompt”:

  然后运行“netdom”命令,在这里,运行的是:“netdom query fsmo”:

  看到了吧,马上把当前域里的FSMO五种角色所在的域控制器罗列了出来。

  3、 脚本。

  在这里,我给大家一段脚本:

  

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

 

  大家把以上内容复制到记事本,保存为fsmo.vbs,然后到域里的计算机上运行,就可以得到如下画面:

  也看到了吧!!!

  三、最后来看一下FSMO的规划,在规划时,请大家按以下原则进行:

  1、占有Domain Naming Master角色的域控制器必须同时也是GC;

  2、不能把Infrastructure Master和GC放在同一台DC上;

  3、建议将Schema Master和Domain Naming Master放在森林根域的GC服务器上;

  4、建议将Schema Master和Domain Naming Master放在同一台域控制器上;

  5、建议将PDC Emulator、RID Master及Infrastructure Master放在同一台性能较好的域控制器上;

  6、尽量不要把PDC Emulator、RID Master及Infrastructure Master放置在GC服务器上;

你可能感兴趣的:(职场,休闲,主域无法开机,备份域升级成主域操作)