在迁移 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