刘锐欢迎你的到来!

ms_masthead_10x7a_ltr.jpg          mcse.gif              mcp.gif           huawei.gif              logo.gif

多域控制器环境下Active Directory灾难恢复

 


摘要

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

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

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(coolnetboy@hotmail.com)"

WScript.Echo text

posted on 2006-04-15 16:10 www.liserui.cnitblog.com 阅读(131) 评论(0)  编辑 收藏 引用 所属分类: 微软技术

只有注册用户登录后才能发表评论。