Active Directory(AD)是一个提供集中认证和授权服务的目录服务。组织将AD托管在域控制器(DCs)上,它们之间在多主配置中复制信息。多主配置。柔性单主操作(FSMO)角色确保所有数据源中的数据一致可靠。
FSMO角色有助于AD复制平稳运行,并确保许多其他关键服务按预期运行。在本文中,您将了解什么是FSMO角色,它们如何影响AD以及如何在AD林中安全操纵它们。
通过本文,您将更好地了解FSMO角色以及如何管理它们以维护健康的AD环境。
什么是FSMO角色?
FSMO角色是每个托管在AD林中的DC上独立托管的服务。每个角色都有特定的目的,例如在设备之间同步时间,管理安全标识符(SIDs)等。
FSMO角色的范围可以是林级或域级,并且对于该范围是唯一的,如下所示。例如,具有两个域的林将在每个域中有一个DC(总共两个)托管RID主服务器角色,而只有一个DC托管架构主服务器角色。
FSMO Role | Scope |
Schema Master | Forest |
Domain Naming Master | Forest |
Primary Domain Controller Emulator | Domain |
RID Master | Domain |
Infrastructure Master | Domain |
A DC can hold multiple roles at one time.
架构主服务器
A critical component of AD is the database. The database, like all other databases, has a schema that dictates its structure with various partitions or naming contexts. The AD schema is a database partition that contains metadata about AD objects. For example, it contains classes like person
, group
, or msPKI-Key-RecoveryAgent
and attributes like phone number
, badPwdCount
, or dNS-HostName
.
AD架构是Active Directory数据库中最“精细”的分区。
AD 需要一个管理模式的服务,因此有了模式主控角色。模式主控角色的职责是控制对 AD 模式的更改。如果你曾经扩展过 AD 模式以安装诸如 Exchange 或提升森林功能级别等产品,那么你就是在与模式主控角色一起工作。
你应该仅在单个 DC 上的严格条件下通过模式主控角色执行对 AD 模式的任何更改。你不希望在两个 DC 上进行更改并等待复制来查看哪个更改通过复制“获胜”。
域命名主控
AD 数据库包含森林和域范围的多个分区。AD 偶尔对这些分区进行更改,因此需要一个服务来执行这些更改,因此有了域命名主控 FSMO 角色。
当对森林域空间进行更改(向森林添加分区)时,域命名主控将这些更改写入Configuration\\Partitions
。例如,当域控制器被提升或降级时会发生这种情况。
主域控制器仿真器(PDCe)
可以说,AD 中最重要的 FSMO 角色是 PDCe。PDCe 角色负责诸如密码更改同步、帐户锁定(和解锁)、时间同步等任务。
早期的活动目录(Windows NT)中,主域控制器(PDC)是AD域中唯一可写的DC。所有其他DC都是仅用于身份验证请求的备用域控制器(BDC)
从Windows 2000开始,所有DC都变成了可写的,除了只读域控制器(RODCs),它们是在Windows Server 2008中引入的。因为AD仍然需要PDC的功能,但技术上不再有PDC,微软引入了PDC模拟器(PDCe)角色。
重定向传统应用程序
PDCe角色最基本的功能之一是为传统应用程序提供支持,通知它们所托管的DC是AD可以写入更改的位置。例如,如果您仍在使用Windows NT服务,而该服务不知道在AD数据库中写入更改的位置,它将联系PDCe寻求帮助。
时间同步
对于加入域的所有设备保持一致的时间非常重要。Kerberos身份验证(默认身份验证模式)要求客户端与DC或DC复制伙伴之间的最大时间间隔不超过五分钟。
PDCe角色是AD森林中所有其他计算机的中央时间源。
- 所有客户端计算机都从其登录的DC同步时间。
- 所有DC都从其域中的PDCe同步时间。
- 在多域AD森林中,托管PDCe角色的DC会从父域中的PDCe同步时间。
- 然后,根域中的PDCe角色会使用可靠的外部时间源进行同步。
管理密码更改
当进行AD更改时,该更改不会立即复制到所有DC,而是遵循AD复制计划。但是,密码更改的复制方式略有不同。密码更改始终首先从发起更改的DC复制到持有PDCe角色的DC,然后再传播到拓扑中的其他DC。
例如,如果某个DC当前没有最新密码,并且用户尝试使用旧密码进行身份验证,则认证DC会首先联系持有PDCe角色的DC以检查是否有更新的密码,然后再拒绝认证。
当发现已更改密码的用户无法连接到尚未复制新密码的其他DC时,您会立即注意到PDCe存在问题。
处理帐户锁定
PDCe角色还处理帐户锁定。与更改密码不同,帐户锁定不遵循常规的复制间隔。帐户锁定会立即通过一种称为复制单个对象的机制复制到其他DC。这是一项安全措施,以确保被锁定的帐户不能登录尚未复制的另一个DC。
Group Policy Management Console(GPMC)的默认目标
使用Group Policy Management Console(GPMC)工具来管理Group Policy。要对AD进行更改,GPMC需要连接到DC。默认情况下,GPMC将始终连接到持有PDCe角色的DC,即使它位于不同的AD站点。如果无法访问PDCe,则将收到警告,指示PDCe角色无法访问,并且GPMC将提示您选择另一个DC。

提供分布式文件系统(DFS)命名空间信息
为了完善PDCe FSMO角色的功能,PDCe角色提供DFS命名空间信息。定期,DFS根服务器将从PDCe请求更新的DFS命名空间信息,PDCe保存有权威的DFS信息。
通常情况下,对于PDCe FSMO角色来说并不是过多的负载,在具有大量DFS服务器的环境中,您更改了默认的DFS命名空间查找行为。
RID主控
AD域中的每个对象必须具有唯一的ID,以将其与所有其他类似的对象区分开。关键的是,AD始终为每个新对象分配一个称为安全标识符或SID的唯一ID。
每个SID由若干组成部分组成: S
(表示SID)、Revision
号、I
-标识符授权机构-、域ID和相对ID。域ID对于森林中的每个域都是唯一的。相对ID对于域中的每个对象都是唯一的。SID的格式如下,其中DomainId
表示域ID,RelativeId
表示相对ID。
相对ID(RID)主控角色确保为每个AD对象分配的SID是唯一的。
一些RID被保留用于特殊账户和众所周知的组。
域中的第一个DC会自动成为RID主控制器,以保持对RID的分配控制。
扮演RID主控制器角色的DC主要在三种不同的事件中发挥作用:
DC晋升/降级
每次新的DC晋升时,RID主控制器会为其分配一个包含500个RID的块。然后,在该DC上创建需要SID的新帐户时,这些RID将按增量顺序分配。
例如,如果上次分配的RIDS块是从5501到6000,下一个需要一个块的DC(可以是新晋升的DC或已耗尽当前块的DC)将接收…6001到…6500,依此类推。
当从AD数据库中移除DC时,RID主控制器会注意到并确保不分配该DC具有的任何RID,作为防止重复SID的安全措施。
RID耗尽
当DC达到50%的RID容量时,它将转到RID主控制器并请求新的RID块。DC在50%时请求新的RID,以防RID主控制器处于离线状态,这给它足够的缓冲时间来确保其RID分配不会耗尽。
RID主控制器角色夺取
管理员可以通过FSMO角色夺取或转移将角色从一个DC移动到另一个DC。当管理员将RID主控制器角色从一个DC移动到另一个DC时,其下一个可用的RID号会增加10000。
相关: 如何转移FSMO角色(GUI和PowerShell)
递增下一个可用的 RID(相对标识符)10,000 是一种安全机制,旨在避免重复的 SID(安全标识符)。例如,如果管理员夺取了 RID 主控角色,而旧的 RID 主控重新上线,它可能会开始分配与新 RID 主控一起的重复的 SID。
基础设施主控
每个 AD 对象都有一个由 RID 主控 FSMO 角色分配的 SID。当查看用户、组和其他 AD 信息时,我们人类希望看到的是名称而不是 SID;这就是基础设施主控角色的用武之地。
默认情况下,每个 DC 都配置为全局目录(GC)。GC 存储来自森林中所有域的信息。为了减少站点之间的复制流量,一种方法是将某些 DC 配置为非 GC。
如果您经过身份验证的 DC 不是 GC,则基础设施主控负责将来自其他域的 SID 转换为易于理解的名称。
例如,从加入域的计算机上,在 Windows Explorer 中检查具有为另一个域的帐户设置的权限的文件夹的“安全”或“共享”选项卡。您将看到用户、计算机和组的名称;而不是它们的 SID。如果您的计算机无法在域中找到基础设施主控角色,您将只能看到其他域中帐户的 SID。

如果启用了 Active Directory 回收站,所有 DC 在技术上都会像持有基础设施主控角色一样运行。AD 回收站使基础设施主控角色在 Microsoft 的说法中变得不重要。
相关: 如何使用Active Directory回收站拯救您的数据
结论
AD FSMO角色是确保AD继续按设计运行的关键组成部分。虽然大多数时候,您无需担心FSMO角色,但在必要时了解它们的功能仍然很重要!