使用 Ntdsutil.exe 捕获 FSMO 角色或将其转移到域控制器
文章编号 : 255504
最后修改 : 2006年3月24日
修订 : 7.0

概要

本文介绍如何使用 Ntdsutil.exe 实用工具转移或捕获 Flexible Single Master Operations (FSMO) 角色。

更多信息

不适合多主机更新的某些域和企业范围的操作由 Active Directory 域或林中的一台域控制器完成。为执行这些特殊操作而指定的域控制器称为操作主机或 FSMO 角色担任者。

以下列表描述了 Active Directory 林中五种唯一的 FSMO 角色类型,以及这些角色执行的相关操作:
架构主机 (Schema master) - 架构主机角色是林范围的角色,每个林一个。此角色用于扩展 Active Directory 林的架构或运行 adprep /domainprep 命令。
域命名主机 (Domain naming master) - 域命名主机角色是林范围的角色,每个林一个。此角色用于向林中添加或从林中删除域或应用程序分区。
RID 主机 (RID master) - RID 主机角色是域范围的角色,每个域一个。此角色用于分配 RID 池,以便新的或现有的域控制器能够创建用户帐户、计算机帐户或安全组。
PDC 模拟器 (PDC emulator) - PDC 模拟器角色是域范围的角色,每个域一个。将数据库更新发送到 Windows NT 备份域控制器的域控制器需要具备这个角色。此外,拥有此角色的域控制器也是某些管理工具的目标,它还可以更新用户帐户密码和计算机帐户密码。
结构主机 (Infrastructure master) - 结构主机角色是域范围的角色,每个域一个。此角色供域控制器使用,用于成功运行 adprep /forestprep 命令,以及更新跨域引用的对象的 SID 属性和可分辨名称属性。
Active Directory 安装向导 (Dcpromo.exe) 将这五种 FSMO 角色全部分配给林根域中的第一台域控制器。每个新子域或树域中的第一台域控制器将获得三个域范围的角色。在使用以下某种方法重新分配 FSMO 角色之前,域控制器将一直担任 FSMO 角色:
管理员使用 GUI 管理工具重新分配角色。
管理员使用 ntdsutil /roles 命令重新分配角色。
管理员使用 Active Directory 安装向导正常降级担任某个角色的域控制器。该向导将任何本地担任的角色重新分配给林中的现有域控制器。使用 dcpromo /forceremoval 命令执行降级会使 FSMO 角色处于无效状态,直到管理员重新分配为止。
我们建议您在以下情况下转移 FSMO 角色:
当前角色担任者可以运行,并且新的 FSMO 所有者可以通过网络访问它。
您正在正常降级一台域控制器,它目前担任着您要分配给 Active Directory 林中某个特定域控制器的 FSMO 角色。
由于要进行定期维护,您需要使目前担任 FSMO 角色的域控制器脱机,并且您需要将特定的 FSMO 角色分配给一台“活动的”域控制器。这可能是执行连接到 FSMO 所有者执行操作所必需的。对于 PDC 模拟器角色来说,尤其如此,但对于 RID 主机角色、域命名主机角色和架构主机角色来说,则不尽然。
我们建议您在遇到以下情况时捕获 FSMO 角色:
当前角色担任者遇到一个操作错误,导致 FSMO 相关操作无法成功完成,并且无法转移该角色。
使用 dcpromo /forceremoval 命令强制降级担任 FSMO 角色的域控制器。
原来担任某个特定角色的计算机上的操作系统不再存在或者已被重新安装。
在进行复制时,域或林中的非 FSMO 域控制器可完全了解担任 FSMO 角色的域控制器所做的更改。如果必须转移角色,则最佳的候选域控制器应该是以下域中的域控制器:该域最后一次或最近从现有角色担任者入站复制了“FSMO 分区”的可写副本。例如,架构主机角色担任者具有可分辨名称路径 CN=schema,CN=configuration,dc=<林根域>,这意味着角色位于 CN=schema 分区中并且作为该分区的一部分被复制。如果担任架构主机角色的域控制器遇到硬件或软件故障,则较合适的候选角色担任者应当是根域中的域控制器,并且与当前所有者位于同一 Active Directory 站点中。同一 Active Directory 站点中的域控制器每隔 5 分钟或 15 秒执行一次入站复制。

每个 FSMO 角色的分区如列表所示:

FSMO 角色 分区
架构 CN=Schema,CN=configuration,DC=<林根域>
域命名主机 CN=configuration,DC=<林根域>
PDC DC=<域>
RID DC=<域>
结构 DC=<域>


应禁止其 FSMO 角色已被捕获的域控制器与林中的现有域控制器通信。在这个情况下,您应格式化这类域控制器上的硬盘并重新安装操作系统,或者强制降级专用网络上的这类域控制器,然后使用 ntdsutil /metadata cleanup 命令删除它们在林中剩余域控制器上的元数据。将其角色已被捕获的前任 FSMO 角色担任者引入林中的风险在于,原来的角色担任者可能会像以前那样继续运行,直到它通过入站复制了解到角色捕获信息。两个域控制器担任相同 FSMO 角色的已知风险在于,这样会创建具有重叠 RID 池的安全主体,同时还会引发其他问题。

转移 FSMO 角色

要使用 Ntdsutil 实用工具转移 FSMO 角色,请按照下列步骤操作:
1. 登录到基于 Windows 2000 Server 或基于 Windows Server 2003 的成员服务器,或登录到转移 FSMO 角色时所在林中的域控制器。我们建议您登录到要为其分配 FSMO 角色的域控制器。登录用户应该是企业管理员组的成员,才能转移架构主机角色或域命名主机角色,或者是转移 PDC 模拟器、RID 主机和结构主机角色时所在域中的域管理员组的成员。
2. 单击“开始”,单击“运行”,在“打开”框中键入 ntdsutil,然后单击“确定”。
3. 键入 roles,然后按 Enter。

注意:要在 Ntdsutil 实用工具中的任一提示符处查看可用命令的列表,请键入 ?,然后按 Enter。
4. 键入 connections,然后按 Enter。
5. 键入 connect to server servername,然后按 Enter,其中 servername 是要赋予其 FSMO 角色的域控制器的名称。
6. 在“server connections”提示符处,键入 q,然后按 Enter。
7. 键入 transfer role,其中 role 是要转移的角色。要查看可转移角色的列表,请在“fsmo maintenance”提示符处键入 ?,然后按 Enter,或者查看本文开头的角色列表。例如,要转移 RID 主机角色,键入 transfer rid master。PDC 模拟器角色的转移是一个例外,其语法是 transfer pdc 而非 transfer pdc emulator
8. 在“fsmo maintenance”提示符处,键入 q,然后按 Enter,以进入“ntdsutil”提示符。键入 q,然后按 Enter,退出 Ntdsutil 实用工具。

捕获 FSMO 角色

要使用 Ntdsutil 实用工具捕获 FSMO 角色,请按照下列步骤操作:
1. 登录到基于 Windows 2000 Server 或 Windows Server 2003 的成员计算机,或者登录到捕获 FSMO 角色时所在林中的域控制器。我们建议您登录要赋予其 FSMO 角色的域控制器。登录的用户应当是企业管理员组的成员(以便转移架构主机角色或域命名主机角色),或登录到转移 PDC 模拟器角色、RID 主机角色和结构主机角色时所在域中的域管理员组成员。
2. 单击“开始”,单击“运行”,在“打开”框中键入 ntdsutil,然后单击“确定”。
3. 键入 roles,然后按 Enter。
4. 键入 connections,然后按 Enter。
5. 键入 connect to server servername,然后按 Enter,其中 servername 是要为其分配 FSMO 角色的域控制器的名称。
6. 在“server connections”提示符处,键入 q,然后按 Enter。
7. 键入 seize role,其中 role 是您要捕获的角色。要查看可捕获角色的列表,请在“fsmo maintenance”提示符处键入 ?,然后按 Enter,或者查看本文开头的角色列表。例如,要捕获 RID 主机角色,可键入 seize rid master。PDC 模拟器角色的捕获是一个例外,它的语法是 seize pdc 而非 seize pdc emulator
8. 在“fsmo maintenance”提示符处,键入 q,然后按 Enter,以进入“ntdsutil”提示符。键入 q,然后按 Enter,退出 Ntdsutil 实用工具。

注意:
通常情况下,必须将这五个角色全部分配给林中“活动的”域控制器。如果担任 FSMO 角色的域控制器在其角色转移之前被停止服务,则您必须捕获所有角色并将之分配给一个合适的、状态良好的域控制器。我们建议您只有在其他域控制器没有返回到域时才捕获所有角色。如有可能,请修复分配了 FSMO 角色的停止工作的 域控制器。应确定日后会将各种角色赋予哪些其余的域控制器,以便将五个角色全部分配给一台域控制器。 有关 FSMO 角色放置的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
223346 ([url]http://support.microsoft.com/kb/223346/[/url]) 在 Active Directory 域控制器上放置和优化 FSMO
如果原来拥有任何 FSMO 角色的域控制器已不在域中,并且您已经按照本文所述的步骤捕获了它的角色,请按照以下 Microsoft 知识库文章中概括的步骤将其从 Active Directory 中删除:
216498 ([url]http://support.microsoft.com/kb/216498/[/url]) 域控制器降级失败后如何删除 Active Directory 中的数据
使用 Windows 2000 或 Windows Server 2003 内部版本 3790 的 ntdsutil /metadata cleanup 命令删除域控制器元数据时,不会重定位已分配给活动域控制器的 FSMO 角色。Windows Server 2003 Service Pack 1 (SP1) 的 Ntdsutil 实用工具会自动完成此任务,删除域控制器元数据的其他元素。
由于备份后 FSMO 角色可能曾被重新分配过,有些客户不愿恢复 FSMO 角色担任者的系统状态备份。
不要将结构主机角色放置在同时也是全局编录服务器的域控制器上。如果结构主机在全局编录服务器上运行,它将会停止更新对象信息,因为它不包含对它不保存的对象的任何引用。而全局编录服务器持有林中每个对象的部分副本。
要测试域控制器是否也是全局编录服务器,请按照下列步骤操作:
1. 单击“开始”,指向“程序”,指向“管理工具”,然后单击“Active Directory 站点和服务”。
2. 双击左侧窗格中的“站点”,然后找到合适的站点,如果没有其他站点可用,则单击“Default-first-site-name”。
3. 打开“服务器”文件夹,然后单击域控制器。
4. 在域控制器的文件夹中,双击“NTDS 设置”。
5. 在“操作”菜单上,单击“属性”。
6. 在“常规”选项卡上,查看“全局编录”复选框是否选中。
有关 FSMO 角色的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
197132 ([url]http://support.microsoft.com/kb/197132/[/url]) Windows 2000 Active Directory FSMO 角色
223787 ([url]http://support.microsoft.com/kb/223787/[/url]) Flexible Single Master Operation 转移和捕获过程