有时候,任何活动目录(AD)管理员的职业生涯都会到达一个时刻,他或她必须转移FSMO角色(或者夺取它们)。域控制器(DC)会来会去,托管在这些DC上的FSMO角色必须移动。
在本教程中,您将逐步学习如何转移和夺取所有AD FSMO角色。您将看到如何通过各种GUI工具和PowerShell移动FSMO角色。
让我们开始吧!
先决条件
如果您想跟着做,请确保您具备以下条件:
- 至少有两个DC – 本教程将使用Windows Server 2019,林功能级别为Windows Server 2016,尽管没有太多改变。
- A domain-joined computer with RBAC installed or you’re on a DC’s desktop directly
相关:如何安装和导入Active Directory PowerShell模块
- Windows PowerShell v5.1
- 使用连接到域的计算机上的AD帐户登录。查询角色不需要特殊权限。但是,转移或夺取角色需要进一步的权限。
使用GUI转移FSMO角色
转移FSMO角色有两种方法:GUI和PowerShell。让我们首先通过几个不同的MMC快照进行FSMO角色转移。
RID主、PDCe和基础结构主
让我们先解决域特定的FSMO角色。
- 打开ADUC(dsa.msc),右键单击域,然后选择操作主服务器。在这里,您将找到域内唯一的所有FSMO角色(RID主服务器、PDCe和基础架构主服务器),通过RID、PDC和基础架构选项卡表示。

2. 点击每个选项卡。您将注意到当前的FSMO角色持有者(操作主服务器)和一个更改按钮。
3. 在每个选项卡下点击更改按钮,然后选择执行RID主服务器、PDCe和基础架构主服务器FSMO角色转移的新DC。
域命名主服务器
接下来,让我们转到域命名主服务器角色。您可以在Active Directory域和信任关系控制台中查看和更改此FSMO角色。
- 打开Active Directory域和信任关系控制台(domain.msc)。
2. 右键单击Active Directory域和信任关系父节点,然后单击操作主服务器。在这里,您将看到当前持有此角色的DC被描述为域命名操作主服务器。
3. 单击更改按钮,然后选择要转移到的DC。

架构主服务器
接下来,最后是架构主服务器角色。要更改此角色,您需要Active Directory架构MMC插件。
开始之前,请确保您已登录到Schema Administrators AD组的帐户中。
- 打开提升权限的命令提示符或PowerShell控制台,并运行
regsvr32.exe "schmmgmt.dll"
。默认情况下,Active Directory Schema管理单元不可用。此命令会注册必要的DLL以进行架构管理。
2. 打开mmc.exe工具。
3. 点击文件—>添加/删除管理单元。
4. 从可用管理单元中选择Active Directory 架构,点击添加>和确定。

5. 进入管理单元后,右击Active Directory 架构[<你的域名>],选择操作主服务器以在弹出窗口中查看当前的架构主服务器。
6. 点击更改,并选择新的DC来转移架构主服务器角色。

使用PowerShell转移FSMO角色
如果你更倾向于使用命令行,PowerShell能帮到你。
查看当前FSMO角色持有者
在使用PowerShell转移之前,首先学习如何查看当前FSMO角色持有者。为此,打开提升权限的Windows PowerShell控制台,并运行Get-ADDomain
和Get-ADForest
来找到下面显示的当前FSMO角色持有者。

Get-ADDomain

Get-ADForest
转移FSMO角色
一旦您知道哪些DC持有当前的FSMO角色,您也可以将它们转移。要在Windows PowerShell中执行此操作,请使用Move-ADDirectoryServerOperationMasterRole
命令,并使用Identity
参数指定要将FSMO角色转移的DC(在本例中为ChildDC1
),然后是FSMO角色的名称。以下示例是将RID Master角色转移。
对于FSMO角色名称,您可以使用
PDCEmulator
、RIDMaster
、InfrastructureMaster
、SchemaMaster
和DomainNamingMaster
。

您还可以一次转移多个角色,方法是用逗号分隔每个角色名称,例如
Move-ADDirectoryServerOperationMasterRole -Identity "ChildDC1" PDCEmulator,InfrastructureMaster
。
也许您非常懒,不想输入这些长长的名称。在这种情况下,您也可以只使用每个FSMO角色对应的特定编号。
Role Name | Number |
PDCEmulator | 0 |
RIDMaster | 1 |
InfrastructureMaster | 2 |
SchemaMaster | 3 |
DomainNamingMaster | 4 |
使用标识符而不是角色名称,转移PDCE角色的命令就像Move-ADDirectoryServerOperationMasterRole ChildDc2 0
一样简短。
在转移FSMO角色名称时,您将收到提示,以确保您知道自己在做什么。由于这不是一个频繁的任务,您可能希望考虑使用您要转移的角色的完整名称。特别是如果您在一个其他人会使用的脚本中使用该命令;这样更容易理解。

使用GUI抢占FSMO角色
如果您需要将FSMO角色从一个DC移动到另一个DC,转移角色始终是最佳选择。转移确保FSMO角色完全从旧DC中删除并转移到新DC。但事情并不总是按计划进行。
如果DC不再在线或以某种方式发生故障,您可以夺取FSMO角色,这实质上是在新DC上构建一个新的FSMO角色,而不删除旧的角色。
只有在确信无法使当前角色持有者重新上线时,才夺取FSMO角色。一旦夺取了角色,请确保旧的FSMO角色持有者永远不会再次上线。
使用GUI夺取角色是通过在Active Directory用户和计算机(ADUC)控制台中删除DC计算机帐户来完成的。操作步骤如下:
- 首先,在ADUC中连接到要将FSMO角色转移到的DC。为此,在ADUC中,右键单击根Active Directory用户和计算机节点,然后单击更改域控制器。
2. 搜索要连接的DC并连接到它。
3. 单击域控制器 OU。
4. 右键单击要夺取FSMO角色的DC,然后单击删除。

5. 接下来,通过前两个提示点击是。


6. 最后,您将收到一个提示,通知您DC是FSMO角色持有者,角色将被移动到另一个DC。这将是您的ADUC控制台连接的DC。单击确定,离线DC的计算机帐户将被删除,角色将被夺取并移动到新的DC。

使用PowerShell夺取FSMO角色
要使用PowerShell夺取FSMO角色,请确保您已经打开Windows PowerShell并运行Move-ADDirectoryServerOperationMasterRole
,提供新DC的名称作为Identity
参数值,以及Force
参数。
下面的示例是夺取RID主角色并将其分配给NewDC3
DC。
用于转移的相同FSMO角色名称也适用于
Move-ADDirectoryServerOperationMasterRole
cmdlet。
结论
移动FSMO角色不是每天的任务,但当您升级新DC、降级旧DC和 decommission 服务器时,您需要了解FSMO角色的相关信息。
按照本教程中的步骤,帮助您完成这项任务!