在迁移 Windows Active Directory FSMO(Flexible Single Master Operation)五大角色时,通常有两种情况:一种是域控制器正常迁移并下线(transfer),另一种是强制夺取这些角色(seize)。接下来,木子将基于 PowerShell 和 CMD 两种命令行方式详细说明如何进行迁移。
五大角色
当您准备将主域控制器(简称主域控,PDC)退域时,需要先确保域内的 FSMO(Flexible Single Master Operations)五大角色已经转移到其他域控制器。这五个角色是:
- Schema Master(架构主控):负责域架构的更新和修改。
- Domain Naming Master(域命名主控):管理域的添加和删除。
- RID Master(相对标识符主控):负责为域内的所有域控制器分配唯一的安全标识符(SID)。
- PDC Emulator(主域控仿真器):处理旧版客户端的认证请求和一些密码相关任务。
- Infrastructure Master(基础结构主控):负责跨域对象引用的更新。
迁移步骤
- 全局编录(GC):
- 确保辅助域控具有全局编录(GC)。
- 转移 FSMO 角色:
- 使用 Active Directory 用户和计算机、Active Directory 架构管理、Active Directory 域和信任关系等界面工具,或者通过 PowerShell 等将五大角色转移到另外一个或者多个域控。
- 验证角色转移成功:
- 确认五大 FSMO 角色已经转移并在新的域控制器上工作。可以通过命令
netdom query fsmo
或者相应的管理工具进行确认。
- 确认五大 FSMO 角色已经转移并在新的域控制器上工作。可以通过命令
- 降级并退域:
- 使用
dcpromo
命令或者服务器管理器中的降级 AD 角色向导将 PDC 降级,这将使得它退出 Active Directory 服务角色。 - 最终,确认它已经成功从域中移除。
- 使用
注意事项
- 数据备份:在执行上述操作之前,强烈建议备份关键数据和系统状态,以防任何意外情况。
- 服务稳定性:确保域内其他域控制器都正常运行,且能顺利接替 PDC 的角色和任务。
- 适当通知:提前通知所有相关人员或部门,以便在操作过程中得到必要的配合,避免对业务造成影响。
开始迁移
环境说明:Windows Server 2012 R2
为了快速操作,这里使用命令行执行迁移,相关图形界面操作参考官方文档链接。
启用全局编录(GC): 打开 AD 站点和服务管理器 — Sites — Default-First-Site-Name — Servers — 指定域控 — NTDS Settings 右键单击【属性】,在弹出的属性页面勾选“全局编录”,然后点击【确定】,等待 5-10 分钟确保整个域同步完成。
使用 PowerShell 命令行迁移:
# 确保已经安装 Active Directory 模块 PS C:\Users\administrator.RL> Import-Module ActiveDirectory # 获取指定域控制器的对象 PS C:\Users\administrator.RL> $dc = Get-ADDomainController -Identity "ad-002" # 启用全局编录 PS C:\Users\administrator.RL> Set-ADObject -Identity $dc -Replace @{options=$($dc.options -bor 1)} # 禁用全局编录 # Set-ADObject -Identity $dc -Replace @{options=$($dc.options -band -2)} # 确保启用全局编录成功 PS C:\Users\administrator.RL> Get-ADDomainController -Filter {IsGlobalCatalog -eq $true} | Select-Object -Property HostName, IsGlobalCatalog HostName IsGlobalCatalog -------- --------------- ad-001.RL.com True ad-002.RL.com True ad-003.RL.com True # 获取域范围内的 FSMO 角色持有者 PS C:\Users\administrator.RL> $domain = Get-ADDomain PS C:\Users\administrator.RL> $forest = Get-ADForest # 输出 FSMO 角色持有者信息 PS C:\Users\administrator.RL> $fsmoRoles = @{ "RID Master" = $domain.RIDMaster; "PDC Emulator" = $domain.PDCEmulator; "Infrastructure Master" = $domain.InfrastructureMaster; "Schema Master" = $forest.SchemaMaster; "Domain Naming Master" = $forest.DomainNamingMaster } PS C:\Users\administrator.RL> $fsmoRoles Name Value ---- ----- RID Master ad-001.RL.com PDC Emulator ad-001.RL.com Infrastructure Master ad-001.RL.com Schema Master ad-001.RL.com Domain Naming Master ad-001.RL.com # 转移 Schema Master PS C:\Users\administrator.RL> Move-ADDirectoryServerOperationMasterRole -Identity ad-002 -OperationMasterRole SchemaMaster # 转移 Domain Naming Master PS C:\Users\administrator.RL> Move-ADDirectoryServerOperationMasterRole -Identity ad-002 -OperationMasterRole DomainNamingMaster # 转移 RID Master PS C:\Users\administrator.RL> Move-ADDirectoryServerOperationMasterRole -Identity ad-002 -OperationMasterRole RIDMaster # 转移 PDC Emulator PS C:\Users\administrator.RL> Move-ADDirectoryServerOperationMasterRole -Identity ad-002 -OperationMasterRole PDCEmulator # 转移 Infrastructure Master PS C:\Users\administrator.RL> Move-ADDirectoryServerOperationMasterRole -Identity ad-002 -OperationMasterRole InfrastructureMaster # 确保迁移成功 PS C:\Users\administrator.RL> $fsmoRoles = @{ "RID Master" = $domain.RIDMaster; "PDC Emulator" = $domain.PDCEmulator; "Infrastructure Master" = $domain.InfrastructureMaster; "Schema Master" = $forest.SchemaMaster; "Domain Naming Master" = $forest.DomainNamingMaster } PS C:\Users\administrator.RL> $fsmoRoles Name Value ---- ----- RID Master ad-002.RL.com PDC Emulator ad-002.RL.com Infrastructure Master ad-002.RL.com Schema Master ad-002.RL.com Domain Naming Master ad-002.RL.com
-Force
。使用 CMD 命令行迁移:
# 查看当前五大角色所有域控 PS C:\Users\administrator.RL> netdom query fsmo 架构主机 ad-001.RL.com 域命名主机 ad-001.RL.com PDC ad-001.RL.com RID 池管理器 ad-001.RL.com 结构主机 ad-001.RL.com 命令成功完成。 # 开始迁移 PS C:\Users\administrator.RL> ntdsutil C:\Windows\system32\ntdsutil.exe: roles fsmo maintenance: connections server connections: connect to server ad-002 绑定到 ad-002 ... 用本登录的用户的凭证连接 ad-002。 server connections: q fsmo maintenance: transfer infrastructure master 服务器 "ad-002" 知道有关 5 作用 架构 - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 命名主机 - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com PDC - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com RID - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 结构 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com fsmo maintenance: transfer naming master 服务器 "ad-002" 知道有关 5 作用 架构 - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 命名主机 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com PDC - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com RID - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 结构 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com fsmo maintenance: transfer PDC 服务器 "ad-002" 知道有关 5 作用 架构 - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 命名主机 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com PDC - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com RID - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 结构 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com fsmo maintenance: transfer RID master 服务器 "ad-002" 知道有关 5 作用 架构 - CN=NTDS Settings,CN=ad-001,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 命名主机 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com PDC - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com RID - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 结构 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com fsmo maintenance: transfer schema master 服务器 "ad-002" 知道有关 5 作用 架构 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 命名主机 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com PDC - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com RID - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com 结构 - CN=NTDS Settings,CN=ad-002,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=RL,DC=com fsmo maintenance: q C:\Windows\system32\ntdsutil.exe: q # 验证切换是否成功 PS C:\Users\administrator.RL> netdom query fsmo 架构主机 ad-002.RL.com 域命名主机 ad-002.RL.com PDC ad-002.RL.com RID 池管理器 ad-002.RL.com 结构主机 ad-002.RL.com 命令成功完成。
transfer
替换成 seize
即可,比如:seize schema master
。参考文献
[1] View and transfer FSMO roles – Windows Server | Microsoft Learn
[2] AD Forest Recovery – Seizing an Operations Master Role | Microsoft Learn
[3] Move-ADDirectoryServerOperationMasterRole (ActiveDirectory) | Microsoft Learn
