只有林根域域控制器上、由Schema Admins和Enterprise Admins双重组成员以提升权限执行的架构扩展才合法,且不可逆、须提前验证林功能级别、复制状态及测试备份。

在域控制器中管理 Active Directory 架构扩展,不是日常运维操作,而是影响整个林的底层变更,必须由具备特定权限的管理员在严格受控环境下执行。核心原则是:只在必要时扩展、只在根域 DC 上操作、不可逆、必须提前验证。
谁有权操作?权限要求很明确
架构扩展需要同时满足两个组成员身份:
- Schema Admins 组(唯一能写入 cn=schema 容器的权限)
- Enterprise Admins 组(确保跨域操作权限)
仅域管理员(Domain Admins)权限不够。执行账号必须是这两个组的显式成员,且登录会话需以提升权限运行 PowerShell。
在哪台服务器上做?位置不能错
必须在林根域(forest root domain)的任意一台域控制器上执行,不能在子域 DC 或普通成员服务器上操作。这是因为架构容器(schemaNamingContext)位于林级别,只有根域 DC 才能安全触发全林复制。即使你当前管理的是子域,也要远程连接到根域 DC 才能运行 Update-LapsADSchema 或其他架构更新命令。
操作前必须验证的几件事
跳过验证可能引发林级中断。务必确认:
- 林功能级别 ≥ Windows Server 2008 R2(LAPS 等官方扩展的最低要求)
- 所有域控制器在线且复制正常:运行
repadmin /replsum /bysrc /bydest /sort:delta,Fail 列全为 0,Delta 值远小于复制间隔(如默认 180 分钟) - 已在隔离测试林中完整验证:包括属性写入、GPO 应用、委派设置、备份恢复全流程
- 已备份系统状态(尤其是 schema 容器),并验证可恢复
典型扩展操作流程(以 LAPS 为例)
微软官方工具已封装关键步骤,但仍需人工把控时机:
- 在根域 DC 上,以管理员身份打开 PowerShell
- 导入模块:
Import-Module AdmPwd.PS - 执行扩展:
Update-LapsADSchema(自动添加 msLAPS-Password 和 msLAPS-PasswordExpirationTime 属性,并更新计算机类的 mayContain) - 等待架构复制完成(通常 15–30 分钟),可用命令验证:
Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -Filter {name -eq "ms-LAPS-Password"}
扩展后不是结束,而是开始维护
架构本身不会过期,但依赖它的功能需要持续看护:
- 禁用而非删除:若某属性停用,用
Set-ADObject将其isDefunct设为$true - 权限必须收紧:如 msLAPS-Password 默认带 confidential 标志(searchFlags = 904),确保只有 HelpDesk 等授权组可读,普通用户完全不可见
- 每年审计一次 cn=schema 容器,检查是否有未授权或遗忘的类/属性


















