好的,这是一个关于 Windows Server Active Directory 中 FSMO 五大角色转移的详细说明。
什么是 FSMO 角色?
FSMO,中文全称为“灵活单主机操作”,是 Active Directory 域服务中一些特殊的管理功能。为了保证数据的一致性,这些功能在某一时刻只能由一台域控制器来承担。这五个角色缺一不可,是 AD 正常运作的核心。
FSMO 五大角色简介
这五个角色分为两大类:
- 林级别角色(每个林唯一)
架构主机:控制对 Active Directory 架构的所有更新和修改。
域命名主机:控制林中域的添加或删除。
- 域级别角色(每个域唯一)
PDC 仿真主机:
模拟 Windows NT 的主域控制器,用于兼容旧客户端。
处理密码更改和账户锁定。
为域内所有计算机同步时间。
RID 主机:
向域内所有 DC 分配 RID 池。当 DC 创建安全主体时,会使用一个 SID = 域 SID + RID。
基础结构主机:
负责更新跨域对象引用的 SID 和可分辨名称。
为什么要进行角色转移?
角色转移通常在计划内的维护操作中进行,例如:
将域控制器降级(如运行 dcpromo 将其降为成员服务器)。
对承载角色的域控制器进行硬件升级或维护。
为了优化网络性能,将角色迁移到更强大的服务器上。
重要区别:转移 vs 抢占
转移:一种安全、有序的操作。源服务器和目标服务器都在线且能正常通信。它通过正常的 AD 复制来安全地移动角色所有权。这是推荐的做法。
抢占:一种紧急、有风险的操作。当承载角色的原始域控制器发生故障且无法恢复时,强制在另一台可用的域控制器上夺取角色。这会带来数据冲突的风险,应仅在必要时使用。
如何进行角色转移?(图形界面和命令行)
以下操作假设您要将角色从当前的持有 DC 转移到另一台目标 DC 上。
方法一:使用 Active Directory 用户和计算机(用于域级别角色)
此方法适用于转移 PDC 仿真主机、RID 主机 和 基础结构主机。
在目标域控制器上,打开 服务器管理器 > 工具 > Active Directory 用户和计算机。
在左侧窗格中,右键点击域名,选择 操作主机。
在弹出的窗口中,您会看到 RID、PDC 和 基础结构 三个选项卡。
切换到每个选项卡,点击 更改 按钮。
系统会提示您确认将角色转移到此服务器,点击 是。
(这是一个操作主机对话框的示意图)
方法二:使用 Active Directory 域和信任关系(用于域命名主机)
此方法用于转移 域命名主机 角色。
在目标域控制器上,打开 服务器管理器 > 工具 > Active Directory 域和信任关系。
在左侧窗格中,右键点击 Active Directory 域和信任关系,选择 操作主机。
点击 更改 按钮。
确认操作。
方法三:使用 Active Directory 架构(用于架构主机)
注意:默认情况下,Active Directory 架构管理单元是未注册的。
首先,以架构管理员组成员身份登录,并在目标 DC 上注册架构管理单元:
打开命令提示符或 PowerShell,输入:
powershell
regsvr32 schmmgmt.dll
打开 MMC 控制台(mmc.exe)。
点击 文件 > 添加/删除管理单元。
选择 Active Directory 架构,点击 添加,然后点击 确定。
在控制台中,右键点击 Active Directory 架构,选择 操作主机。
点击 更改 按钮。
方法四:使用 PowerShell(推荐,最全面高效)
使用 PowerShell 是最高效的方式,可以一次性查看和转移所有角色。
在目标域控制器上,以管理员身份打开 Windows PowerShell。
查看当前 FSMO 角色持有者:
powershell
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
或者使用 NetDom 命令:
powershell
netdom query fsmo
转移所有五个角色(从当前持有者到本机):
首先,需要导入 Active Directory 模块。
powershell
Import-Module ActiveDirectory
转移架构主机:
powershell
Move-ADDirectoryServerOperationMasterRole -Identity "目标DC的计算机名" -OperationMasterRole SchemaMaster
转移域命名主机:
powershell
Move-ADDirectoryServerOperationMasterRole -Identity "目标DC的计算机名" -OperationMasterRole DomainNamingMaster
转移域级别角色(PDC, RID, 基础结构):
powershell
Move-ADDirectoryServerOperationMasterRole -Identity "目标DC的计算机名" -OperationMasterRole PDCEmulator, RIDMaster, InfrastructureMaster
一次性转移所有五个角色:
powershell
Move-ADDirectoryServerOperationMasterRole -Identity "目标DC的计算机名" -OperationMasterRole 0,1,2,3,4
(其中 0,1,2,3,4 分别代表:PDC仿真主机, RID主机, 基础结构主机, 架构主机, 域命名主机)
在执行每个 PowerShell 命令时,系统会要求您确认。输入 Y 并回车即可。
总结与最佳实践
计划内操作:始终优先使用角色转移,确保过程平稳安全。
选择目标:将 FSMO 角色放置在性能良好、网络连接稳定、且全局编录通常已启用的域控制器上(尽管基础结构主机不应与 GC 放在同一台服务器上,除非林中只有一个域)。
验证结果:转移完成后,务必使用 netdom query fsmo 或相应的 PowerShell 命令验证角色是否已成功转移到目标服务器。
备份:在对 AD 结构进行任何重大更改(包括 FSMO 角色转移)之前,请确保拥有有效的系统状态备份。
谨慎抢占:只有在原始角色持有者确定永久离线且无法恢复时,才使用 ntdsutil 工具进行角色抢占。