Windows 中的 Active Directory FSMO 角色

本文主要帮助你了解 Active Directory 中的灵活单主机操作 (FSMO) 角色。

适用于 Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server 2022
原始 KB 编号: 197132

摘要

Active Directory 是中央存储库,其中存储企业中的所有对象及其各自的属性。 它是一个分层多主数据库,可以存储数百万个对象。 无论 DC 联网与否,都可以在企业中的任何给定域控制器 (DC) 处理对数据库的更改。

多主数据库模型

通过多主数据库(如 Active Directory),可灵活地对企业中的任何 DC 进行更改。 但它也可能造成冲突,一旦将数据复制到企业的其他部分,可能会导致问题。 Windows 处理更新冲突的一种方法是让冲突解决算法处理值中的差异。 这通过解析到最后写入更改的 DC 来实现,也即“最后写入有效”。 所有其他 DC 中的更改将被丢弃。 尽管此方法在某些情况下可以接受,但有时使用“最后写入有效”方法也不能解决太过困难的冲突。 在这种情况下,最好是防止冲突的发生,而不是在事后试图解决冲突。

Windows 包含了防止发生 Active Directory 更新冲突的方法,用于应对某些类型的更改。

单主模型

为了防止 Windows 中出现更新冲突,Active Directory 以单主方式对某些对象执行更新。 在单主模型中,整个目录中只有一个 DC 可以处理更新。 它类似于在早期版本的 Windows(例如 Microsoft Windows NT 3.51 和 4.0)中分配给主域控制器 (PDC) 的角色。 在早期版本的 Windows 中,PDC 负责处理给定域中的所有更新。

Active Directory 扩展了早期版本 Windows 中的单主模型,以包含多个角色,并能够将角色传输到企业中的任何 DC。 由于 Active Directory 角色未绑定到单个 DC,因此它称为 FSMO 角色。 目前 Windows 中有五个 FSMO 角色:

  • 架构主机
  • 域命名主机
  • RID 主机
  • PDC 仿真器
  • 基础结构主机

通常,仅当域控制器复制了自目录服务启动以来存储所有权的命名上下文 (NC) 时,才会执行 FSMO 角色所有权。 请确保 FSMO 角色扣押在角色被使用之前到达前一个所有者。

架构主机 FSMO 角色

架构主 FSMO 角色持有者是负责对目录架构(即架构命名上下文或 LDAP://cn=schema,cn=configuration,dc=<domain>)执行更新的 DC。 此 DC 是唯一可以处理目录架构更新的 DC。 架构更新完成后,它将从架构主机复制到目录中的所有其他 DC。 每个林只有一个架构主机。

初始复制和连接要求

  • 仅当 FSMO 角色持有者自目录服务启动以来已成功入站复制架构 NC 时,此角色持有者才处于活动状态。
  • DC 和林成员仅在更新架构才与 FSMO 角色联系。

域命名主机 FSMO 角色

域命名主 FSMO 角色持有者是负责更改目录的林范围的域名空间的 DC,即 Partitions\Configuration 命名上下文或 LDAP://CN=Partitions,CN=Configuration,DC=<domain>。 此 DC 是唯一可以从目录中添加或删除域的 DC。 它还可以添加或删除对外部目录中的域的交叉引用。

初始复制和连接要求

  • 仅当 FSMO 角色持有者自目录服务启动以来已成功入站复制配置 NC 时,此角色持有者才处于活动状态。

  • 林的域成员仅在更新交叉引用时才与 FSMO 角色持有者联系。 在以下情况下,DC 会与 FSMO 角色持有者联系:

    • 在林中添加或删除域。
    • 在 DC 上添加了应用程序目录分区的新实例。 例如,已为默认 DNS 应用程序目录分区登记 DNS 服务器。

RID 主机 FSMO 角色

RID 主机 FSMO 角色持有者是负责处理来自给定域内所有 DC 的 RID 池请求的单个 DC。 它还负责在对象移动期间从其域中删除一个对象并将其放入另一个域中。

当 DC 创建安全主体对象(例如用户或组)时,它将唯一的安全 ID (SID) 附加到对象。 此 SID 包括:

  • 域 SID,对于在域中创建的所有 SID 都是相同的。
  • 相对 ID (RID),对于在域中创建的每个安全主体 SID 都是唯一的。

域中的每个 Windows DC 都分配有一个 RID 池,允许将其分配给它创建的安全主体。 当 DC 分配的 RID 池低于阈值时,该 DC 会向域的 RID 主机发出额外 RID 请求。 域 RID 主机通过从域的未分配 RID 池中检索 RID 来响应请求,并将它们分配给请求 DC 的池。 目录中每个域都有一个 RID 主机。

初始复制和连接要求

  • 仅当角色所有者自目录服务启动后成功入站复制域 NC 时,此 FSMO 角色所有者才处于活动状态。
  • 当 DC 检索新的 RID 池时,它们会与 FSMO 角色持有者联系。 新的 RID 池通过 AD 复制传递给 DC。

PDC 模拟器 FSMO 角色

PDC 模拟器是企业同步时间所必需的。 Windows 包括 Kerberos 身份验证协议所需的 W32Time(Windows 时间)时间服务。 企业中所有基于 Windows 的计算机均使用公共时间。 时间服务的目的是确保 Windows 时间服务使用控制权限的分层关系。 它不允许循环以确保使用适当的公共时间。

域的 PDC 模拟器对域具有权威性。 位于林根目录的 PDC 模拟器对企业具有权威性,应配置为从外部源收集时间。 所有 PDC FSMO 角色持有者在选择其入站时间合作伙伴时都遵循域的层次结构。

在 Windows 域中,PDC 模拟器角色持有者保留以下功能:

  • 域中其他 DC 所做的密码更改将优先复制到 PDC 模拟器。
  • 当由于密码不正确而在给定 DC 上发生身份验证失败时,故障会转发到 PDC 模拟器,然后再向用户报告错误的密码失败消息。
  • 在 PDC 模拟器上处理帐户锁定。
  • PDC 模拟器执行基于 Windows NT 4.0 服务器的 PDC 或更早版本的 PDC 为基于 Windows NT 4.0 或更早版本客户端执行的所有功能。

在以下情况下,这一部分 PDC 模拟器角色变得没有必要:
运行 Windows NT 4.0 或更早版本的所有工作站、成员服务器和域控制器 (DC) 都已升级到 Windows 2000。

PDC 模拟器仍执行 Windows 2000 环境中所述的其他功能。

以下信息介绍了升级过程中发生的更改:

  • 已安装分布式服务客户端包的 Windows 客户端(工作站和成员服务器)和下层客户端不会优先在已将自己播发为 PDC 的 DC 上执行目录写入(例如更改密码)。 它们对域使用任何 DC。
  • 一旦下层域中的备份域控制器 (BDC) 升级到 Windows 2000,PDC 模拟器就不会收到下层副本请求。
  • Windows 客户端(工作站和成员服务器)和已安装分布式服务客户端包的下层客户端使用 Active Directory 来定位网络资源。 它们不需要 Windows NT 浏览器服务。

初始复制和连接要求

  • 当 PDC 模拟器发现域 NC 头的 fSMORoleOwner 属性指向自身时,此 FSMO 角色持有者将始终处于活动状态。 没有入站复制要求。

  • DC 会在有新密码或本地密码验证失败时会联系 FSMO 角色持有者。 无法访问 PDC 模拟器或 AvoidPdcOnWan 注册表值设置为 1 时不会发生错误。

  • 可以使用以下 cmdlet 运行降级 DC 的先决条件。

    PS C:\Users\Capecodadmin> Test-ADDSDomainControllerUninstallation -DemoteOperationMasterRole |fl
    

    下面是无法访问 PDC 模拟器时的输出示例。

    消息:域控制器升级的先决条件验证失败。 你指出此 Active Directory 域控制器不是域“contoso.com”的最后一个域控制器。 但是,无法联系该域的其他域控制器。 继续操作将导致此域控制器上所做的任何 Active Directory 域服务更改丢失。 如果仍继续操作,请指定“IgnoreLastDCInDomainMismatch”选项。
    上下文:Test.VerifyDcPromoCore.DCPromo.General.50
    RebootRequired : False
    状态:错误

基础结构主机 FSMO 角色

当一个域中的对象引用另一个域中的另一个对象时,它通过以下方式表示该引用:

  • GUID
  • SID(用于安全主体引用)
  • 所引用对象的 DN

基础结构 FSMO 角色持有者是负责在跨域对象引用中更新对象的 SID 和可分辨名称的 DC。

注意

基础结构主机 (IM) 角色应由不是全局编录服务器 (GC) 的 DC 来承担。 如果基础结构主机在全局编录服务器上运行,它将会停止更新对象信息,因为它不包含对它不保存的对象的任何引用。 这是因为全局编录服务器持有林中每个对象的部分副本。 因此,该域中的跨域对象引用并不会更新,并且该 DC 的事件日志会记录对该效果的警告。

如果域中的所有 DC 也托管全局编录,则所有 DC 都拥有最新数据。 哪个 DC 担任基础结构主机角色并不重要。

启用“回收站”可选功能后,每个 DC 都有责任在移动、重命名或删除引用对象时更新其跨域对象引用。 在这种情况下,没有与基础结构 FSMO 角色关联的任务。 哪个域控制器拥有基础结构主机角色并不重要。 有关详细信息,请参阅 6.1.5.5 基础结构 FSMO 角色

初始复制和连接要求

  • 仅当角色所有者自目录服务启动后成功入站复制域 NC 时,此 FSMO 角色所有者才处于活动状态。
  • 此 FSMO 角色持有者没有连接要求。 它是一种林内部清理功能。