技术,思考的艺术

ASP.net ,C#,VB.NET,SQL + B2B,SCM,CRM,ERP
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2004-09-30 21:48  1werwerfer  阅读(2405)  评论(1编辑  收藏  举报
来源:微软中国
2003-12-10 10:23:00

  一、Active Directory操作主机角色概述

  Active Directory 定义了五种操作主机角色(又称FSMO):   
  架构主机 schema master、                                        
  域命名主机 domain naming master                          
  相对标识号 (RID) 主机 RID master                            
  主域控制器模拟器 (PDCE)                                               
  基础结构主机 infrastructure master                      
  而每种操作主机角色负担不同的工作,具有不同的功能:                            
  架构主机                                                                      
  具有架构主机角色的 D
制到目录林中的所有其它域
构主机。
C 是可以更新目录架构的唯一 D
控制器中。 架构主机是基于目

C。这些架构更新会从架构主机复
录林的,整个目录林中只有一个架

  域命名主机                                                                   
  具有域命名主机角色的 DC 是可以执行以下任务的唯一 DC:                 
  向目录林中添加新域。                                                         
  从目录林中删除现有的域。                                                     
  添加或删除描述外部目录的交叉引用对象。                                       
  相对标识号 (RID) 主机                                                  
  此操作主机负责向其它
(例如用户、组或计算机)
标识符 (SID)。 每一个Win
。RID 主机通过分配不同的
还可以在同一目录林中的不
DC 分配 RID 池。只有一个服
时,需要将 RID 与域范围内的
dows 2000 DC 都会收到用于创
池来确保这些 ID 在每一个 DC
同域之间移动所有对象。
务器执行此任务。在创建安全主体
标识符相结合,以创建唯一的安全
建对象的 RID 池(默认为 512)
上都是唯一的。通过 RID 主机,

  域命名主机是基于目录
机是基于域的,目录林中的
林的,整个目录林中只有一个域
每个域都有自己的相对标识号(
命名主机。相对标识号(RID)主
RID)主机
  PDCE                                                                     
  主域控制器模拟器提供以下主要功能:                                           
  向后兼容低级客户端和服务器,允许
Windows 2000 环境。 本机 Windows 200
失败后,它会与 PDCE 取得联系,以查看
码更改还没有被复制到验证 DC 中。
Windows NT4.0 备份域控制器 (BDC) 加入到新的
0 环境将密码更改转发到 PDCE。每当 DC 验证密码
该密码是否可以在那里得到验证,也许其原因在于密

  时间同步 — 目录林中各个域的 PDC
E 都会与目录林的根域中的 PDCE 进行同步。
  PDCE是基于域的,目录林中的每个域都有自己的PDCE。                     
  基础结构主机                                                                  
  基础结构主机确保所有
该对象的全局唯一标识符 (
对象移动,则在域中担当结

域间操作对象的一致性。当引用
GUID)、安全标识符 (SID) 和可
构主机角色的 DC 会负责更新该

另一个域中的对象时,此引用包含
分辨的名称 (DN)。如果被引用的
域中跨域对象引用中的 SID 和 DN

  基础结构主机是基于域的,目录林中的每个域都有自己的基础结构主机                
  默认,这五种FMSO存在于目录林
标识号 (RID) 主机、PDCE 、基础结构主
根域的第一台DC(主域控制器)上,而子域中的相对
机存在于子域中的第一台DC。

  --------------------
----------------
----------------------------

----------------


  二、环境分析

  公司Test.com(虚拟)
DC-02.test.com。现主域控
DC-01.test.com的系统状态
怎么让额外域控制器(DC-0
行,并在损坏的主域控制器
有一台主域控制器DC-01.test.c
制器(DC-01.test.com)由于硬
备份,没办法通过备份修复主域
2.test.com)替代主域控制器,
硬件修理好之后,如何使损坏的
om,还有一台额外域控制器
件故障突然损坏,事先又没有
控制器(DC-01.test.com),我们
使Acitvie Directory继续正常运
主域控制器恢复。
  如果你的第一台DC坏
种FMSO,并需要把额外
了,还有额外域控制器正常,需
域控制器设置为GC。
要在一台额外域控制器上夺取这五


  --------------------------------
------------------------
------------------------


  三、从AD中清除主域控制器DC-01.test.com对象

  3.1在额外域控制器(DC-02.test.com
(DC-01.test.com)从AD中删除;
)上通过ntdsutil.exe工具把主域控制器

  c:>ntdsutil

  ntdsutil: metadata cleanup                          
<>
  metadata cleanup: se
lect 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,C
N=Sites,CN=Configuration,DC=test,DC=com
  select operation target: select site 0  
  Site - CN=Default-Fi
rst-Site-Name,CN=Sites,CN=Co
nfiguration,DC=test,DC=com
  No current domain                                            
  No current server                                            
  No current Naming Context                            
<>
  select operation tar
get: 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-Fi
rst-Site-Name,CN=Sites,CN=Co
nfiguration,DC=test,DC=com
  Domain - DC=test,DC=com                                
  No current server                                            
  No current Naming Context                            
  select operation target: List se
rvers for domain in site
  Found 2 server(s)                                            
  0 - CN=DC-01,CN=Serv
onfiguration,DC=te
ers,CN=Default-First-Site-Na

me,CN=Sites,CN=C

  st,DC=com                                                            
  1 - CN=DC-02,CN=Serv
onfiguration,DC=te
ers,CN=Default-First-Site-Na

me,CN=Sites,CN=C

  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工具
controllers中DC-01服务器
删除Active Directory users a
对象,
nd computers中的Domain

  ADSI EDIT是Windows 2000 support
tool,安装程序在windows 2000光盘中的
Domain NC[DC-02.test.com],展开OU=Do
,把DC-01服务器对象删除,如图1:
tools中的工具,你需要安装Windows 2000 support
support\tools目录下。打开ADSI EDIT工具,展开
main controllers,右击CN=DC-01,然后选择Delete

  3.3 在Active Directory Sites and
Service中删除DC-01服务器对象
  打开Administrative t
开Default-First-Site-Nam

ools中的Active Directory Sit
e,展开Servers,右击DC-01,

es and Service,展开Sites,展
选择Delete,单击Yes按钮,如图2


  --------------------
----------------
----------------------------

----------------


  四、在额外域控制器上通过ntdsutil.exe工具执行夺取五种FMSO操作

  c:>ntdsutil

  ntdsutil: roles                                                
  fsmo maintenance: Select operati
on target
  select operation target: connections      
  server connections: connect to d
omain test.com
  select operation target: list sites        
  Found 1 site(s)                                                
  0 - CN=Default-First
-Site-Name,CN=Sites,CN=Confi
guration,DC=test,DC=com
  select operation target: select site 0  
  Site - CN=Default-Fi
rst-Site-Name,CN=Sites,CN=Co
nfiguration,DC=test,DC=com
  No current domain                                            
  No current server                                            
  No current Naming Context                            
<>
  select operation tar
get: List domains in site
  Found 1 domain(s)                                            
  0 - DC=test,DC=com                                          
<>
  select operation tar
get: select domain 0
  Site - CN=Default-Fi
rst-Site-Name,CN=Sites,CN=Co
nfiguration,DC=test,DC=com
  Domain - DC=test,DC=com                                
  No current server                                            
  No current Naming Context                            
  select operation target: List se
rvers for domain in site
  Found 1 server(s)                                            
  0 - CN=DC-02,CN=Serv
onfiguration,DC=te
ers,CN=Default-First-Site-Na

me,CN=Sites,CN=C

  st,DC=com                                                            
<>
  select operation tar
get: select server 0
  select operation target: quit                    
  fsmo maintenance:Seize domain na
ming master
  出现对话框,按“确定“                                                        
<>
  fsmo maintenance:Sei
ze 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 T
开Default-First-Site-Nam
Settings选择Properties,
动服务器。
ools中的Active Directory Sit
e,展开Servers,展开DC-02.te
然后在"Global Catalog"前面打

es and Services,展开Sites,展
st.com(额外控制器),右击NTDS
勾,单击"确定"按钮,然后重新启


  --------------------------------
------------------------
------------------------


  六、重新安装并恢复损坏主域控制器

  修理好DC-01.test.com
2000 Server,安装好Windo
你需要使DC-01.test.com担
操作就行了(注意:不能用
DC-01.test.com为GC,取消
损坏的硬件之后,在DC-01.test
ws 2000 Server之后,再运行Dc
任五种FMSO角色,通过ntdsutil
Seize)。并通过Active Direct
DC-02.test.com的GC功能。
.com服务器重新安装Windows
promo升成额外的域控制器;如果
工具进行角色转换,进行Transfer
ory Sites and Services设置

  建议domain naming master不要和RI
必须为GC。
D master在一台DC上,而domain naming master同时


  --------------------------------
------------------------
------------------------


  附:用于检测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(objN
tds.Parent)
  text="Forest-wide Sc
hema Master FSMO: " & objCom
puter.Name & vbCrLf

  Set objNtds = Nothing                                    
  Set objComputer = Nothing                            

  ' Domain Naming Master                                  
  Set objPartitions =
GetObject("LDAP://CN=Partiti
ons," & _
  objRootDSE.Get("configurationNam
ingContext"))
  strDomainNamingMaster = objParti
tions.Get("fSMORoleOwner")
  Set objNtds = GetObject("LDAP://
" & strDomainNamingMaster)
  Set objComputer = GetObject(objN
tds.Parent)
  text=text&"Forest-wi
vbCrLf
de Domain Naming Master FSMO

: " & objComputer.Name &


  Set objNtds = Nothing                                    
  Set objComputer = Nothing                            

  ' PDC Emulator                                                  
  Set objDomain = GetObject("LDAP:
//" & objRootDSE.Get("defaultNamingContext"))
  strPdcEmulator = objDomain.Get("
fSMORoleOwner")
  Set objNtds = GetObj
ect("LDAP://" & strPdcEmulat
or)
  Set objComputer = GetObject(objN
tds.Parent)
  text=text&"Domain's
PDC Emulator FSMO: " & objCo
mputer.Name & vbCrLf

  Set objNtds = Nothing                                    
  Set objComputer = Nothing                            

  ' RID Master                                                      
  Set objRidManager = GetObject("L
DAP://CN=RID Manager$,CN=System," & _
  objRootDSE.Get("defaultNamingContext"))
  strRidMaster = objRidManager.Get
("fSMORoleOwner")
  Set objNtds = GetObj
ect("LDAP://" & strRidMaster
)
  Set objComputer = GetObject(objN
tds.Parent)
  text=text&"Domain's RID Master F
SMO: " & objComputer.Name & vbCrLf


  Set objNtds = Nothing                                    
  Set objComputer = Nothing                            

  ' Infrastructure Master                                
  Set objInfrastructur
e = GetObject("LDAP://CN=Inf
rastructure," & _
  objRootDSE.Get("defaultNamingContext"))
  strInfrastructureMaster = objInf
rastructure.Get("fSMORoleOwner")
  Set objNtds = GetObj
ect("LDAP://" & strInfrastru
ctureMaster)
  Set objComputer = GetObject(objN
tds.Parent)
  text=text&"Domain's Infrastructu
re Master FSMO: " & objComputer.Name & vbCrLf

  text=text & vbCrLf &
" Design by coolnetboy(cooln
etboy@hotmail.com)"
  WScript.Echo text