Windows Server 2025 / 如何检查 AD 复制和 FSMO 角色所有者

检查 Active Directory 域服务(AD DS)时,应先用 Repadmin 查看复制,再单独查询五个灵活单主操作(FSMO,Flexible Single Master Operations)角色的持有者。复制负责传播目录更改,FSMO 角色则让特定操作由指定的域控制器承担。新增 DC2 或关闭 DC1 都不会自动转移这些角色。

确定复制问题的范围

本实验要求 DC1 和 DC2 已提升为 ad.example.test 的域控制器,并使用正常工作的内部 DNS。它们复制域、配置、架构等目录分区,以及各自复制范围内的 DNS 应用分区;不同分区的参与服务器和传播时间可能不同。FS1 上的文件和 DHCP 租约不会因为服务器成为域控制器而自动复制。

发现对象值不一致时,先记录查询实际连接的控制器、属性、值及修改时间。可以重复添加第二个域控制器一课中的描述属性试验,明确选择 DC1、DC2,并在试验后恢复原值。结合 Microsoft 的复制失败诊断判断;修改后立即进行的一次查询,不能单独区分尚未传播完成与持续故障。

使用只读查询检查复制

在 DC1 或 DC2 上,以管理员身份打开 Windows PowerShell,使用有权查询目录的账户。如果从管理电脑操作,需要安装 AD DS 的远程服务器管理工具(RSAT),包括 Repadmin 和 ActiveDirectory 模块,并具备正确的域连接及 DNS 配置。先运行下面的只读查询,不要一开始就强制同步或更改复制连接。

repadmin /replsummary
repadmin /showrepl DC1
repadmin /showrepl DC2
Get-ADReplicationFailure -Target 'ad.example.test' -Scope Domain

在 repadmin /replsummary 中,查看失败次数与总尝试次数,以及距上次成功复制的最长间隔。没有近期尝试和时间背景的零值,并不能完整证明服务正常。/showrepl DC1 与 /showrepl DC2 分别显示目标控制器的入站复制;逐分区检查源伙伴、最近尝试、最近成功时间及错误代码,才能观察实验环境中的两个方向。Get-ADReplicationFailure 收集指定域中控制器的相关失败信息;查询成功且没有返回失败对象,也不能单独证明所有目录数据已经一致。

如果 DC2 是因维护而主动关闭,应记录该情况,并在恢复运行后重新确认复制成功;服务器能够启动并不等于目录已经收敛。持续失败时,将错误代码和时间与伙伴 DNS、网络及远程过程调用(RPC)、系统时间、身份验证、服务和 Directory Service 事件关联检查。不要通过全面关闭防火墙排错。对于长期隔离的控制器,重新连接前需要制定考虑目录数据年龄与一致性的恢复计划。

理解五个 FSMO 角色

两个角色作用于整个林,另三个角色分别作用于每个域。同一个控制器可以持有多个角色,但这不表示只有它能处理用户登录。FSMO 角色官方说明区分了这些职责:

角色 作用范围和目的
架构主机(Schema Master) 林级:管理定义目录结构的类与属性更改。
域命名主机(Domain Naming Master) 林级:管理命名空间,包括添加或删除域及应用分区。
RID 主机(RID Master) 域级:分配相对标识符(RID)池,用于生成唯一的安全标识符(SID)。
PDC 模拟器(PDC Emulator) 域级:承担密码及账户锁定等特定任务。林根域的此角色处于 Windows 时间层次结构的顶端。
基础结构主机(Infrastructure Master) 域级:维护对其他域中对象的引用;其实际职责受全局编录和 Active Directory 回收站等配置影响。

角色持有者不可用,并不一定立即中断所有功能。例如,域控制器仍可使用已分配的 RID 池创建账户,但获取新的 RID 池需要联系 RID 主机;修改架构则需要架构主机。部分用户仍能登录,既不能证明所有角色均可用,也不是忽略故障的理由。

比较实际角色持有者

查询角色持有者同样需要相应工具和正确域上下文。Netdom query 未指定域时使用计算机所属域;Get-ADForest 与 Get-ADDomain 支持指定被查询的服务器。这些命令读取角色分配,不执行角色转移。

netdom query fsmo
Get-ADForest | Select-Object SchemaMaster,DomainNamingMaster
Get-ADDomain | Select-Object PDCEmulator,RIDMaster,InfrastructureMaster

在实验域的正确上下文中执行这三条查询。netdom query fsmo 列出五个角色持有者;Get-ADForest 选择两个林级角色,Get-ADDomain 选择三个域级角色。如果新林最初由 DC1 创建,且之后未重新分配角色,它们通常仍由 DC1 持有。记录真实输出,不要假设 DC2 提升后会自动分担角色。需要比较两个控制器的视图时,在 Get-ADForest 和 Get-ADDomain 的管道符前分别添加 -Server DC1、-Server DC2 后重复查询。Netdom 则在 fsmo 前指定 /domain:ad.example.test 和 /server:DC1,再用 /server:DC2 重复,记录时间与查询错误。结果不同应结合复制状态和查询上下文调查;显示持有者名称不等于确认该服务器可达或已经正常承担角色。

区分正常转移与强制夺取

计划维护时,如果当前持有者正常且能够与目标通信,应采用正常转移。强制夺取(seizure)属于恢复决策:正常转移不可行,而且原持有者不能未经适当恢复处理便重新接入。实施真实更改前,应阅读 FSMO 转移和夺取流程以及各角色的管理前提。

  • 转移前,确认角色、作用范围、当前持有者和目标服务器正确,并检查两台控制器、复制及备份。查询权限不等于转移权限:域级角色需要 Domain Admins,域命名主机需要 Enterprise Admins;架构角色应按官方指南核对 Schema Admins 和 Enterprise Admins 要求。
  • 转移后,从相关控制器重新查询持有者,确认对应分区复制成功,并检查依赖功能。列表中的名称变化本身不能证明新持有者已正常工作。
  • 移动林根域的 PDC 模拟器时,要检查获授权的外部时间源由谁使用,以及其后的域时间层次结构。不要未经规划便将所有控制器配置为互相独立的时间参考。
  • 强制夺取需要安排原持有者的处理和元数据清理。RID 主机还有避免重复标识符的额外注意事项;不要未经适用恢复流程就重新连接原服务器或恢复其备份。

本练习的结果是按控制器和分区记录的复制状态,以及五个实际角色持有者及其作用范围。发现错误时,保留代码、时间与上下文,先调查再决定是否改变角色。上述查询不会修改配置,无需撤销;完成检查不需要关闭控制器、强制复制或夺取角色。