Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5470049
  • 博文数量: 890
  • 博客积分: 12876
  • 博客等级: 上将
  • 技术积分: 10760
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-04 14:18
个人简介

猝然临之而不惊,无故加之而不怒。

文章分类

全部博文(890)

文章存档

2016年(1)

2014年(18)

2013年(41)

2012年(48)

2011年(65)

2010年(84)

2009年(121)

2008年(101)

2007年(129)

2006年(95)

2005年(118)

2004年(69)

分类: WINDOWS

2010-11-02 14:03:17

多域控制器环境下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 controllersDC-01服务器对象,

ADSI EDITWindows 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.comGC,取消DC-02.test.comGC功能。

建议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


参考信息

Microsoft Windows 2000 Server Resource Kit


作者介绍

黄义辉(coolnetboy@hotmail.com),持有MCSEMCDBA证书,擅长Windows 2000ADExchange 2000 ServerISA 2000 ServerSQL Server等系统规划、部署及管理.


版权声明

凡在本网站发表的文章,作者必须保证是原创文章;如果不是原创文章,由此带来的版权纠纷由作者自己承担。微软有义务对本站点发表的文章进行审核,但您需要考虑这些文章的使用风险。本站点仅提供一个用户相互交换技术信息和学习的园地,并不对来自社区用户的技术文章承担任何风险。

阅读(1130) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~