Windows Active Directory FSMO 五大角色迁移

在迁移 Windows Active Directory FSMO(Flexible Single Master Operation)五大角色时,通常有两种情况:一种是域控制器正常迁移并下线(transfer),另一种是强制夺取这些角色(seize)。接下来,木子将基于 PowerShell 和 CMD 两种命令行方式详细说明如何进行迁移。

五大角色

当您准备将主域控制器(简称主域控,PDC)退域时,需要先确保域内的 FSMO(Flexible Single Master Operations)五大角色已经转移到其他域控制器。这五个角色是:

  1. Schema Master(架构主控):负责域架构的更新和修改。
  2. Domain Naming Master(域命名主控):管理域的添加和删除。
  3. RID Master(相对标识符主控):负责为域内的所有域控制器分配唯一的安全标识符(SID)。
  4. PDC Emulator(主域控仿真器):处理旧版客户端的认证请求和一些密码相关任务。
  5. Infrastructure Master(基础结构主控):负责跨域对象引用的更新。

迁移步骤

  1. 全局编录(GC)
    • 确保辅助域控具有全局编录(GC)。
  2. 转移 FSMO 角色
    • 使用 Active Directory 用户和计算机、Active Directory 架构管理、Active Directory 域和信任关系等界面工具,或者通过 PowerShell 等将五大角色转移到另外一个或者多个域控。
  3. 验证角色转移成功
    • 确认五大 FSMO 角色已经转移并在新的域控制器上工作。可以通过命令 netdom query fsmo 或者相应的管理工具进行确认。
  4. 降级并退域
    • 使用 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
温馨提醒
在 PowerShell 命令行,如果需要强制进行角色夺取,可以添加参数 -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
命令成功完成。
温馨提醒
在 CMD 命令行,如果需要强制进行角色夺取,只需要将命令行中的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

Avatar photo

关于 木子

Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇