部署只读域控制器(RODC)可提升分支机构物理安全性,防止被盗时泄露完整AD数据库或篡改权限;须满足林/域功能级别≥2008、WDC复制正常、目标服务器已加域且DNS指向WDC、本地管理员属Domain Admins组;推荐预创建账户并配置PRP后安装,命令需指定-ReadOnlyReplica:$true,验证用nltest /dsgetdc:/rodc,密码缓存须严格限制允许组并清理残留哈希。
部署只读域控制器(rodc)是提升分支机构物理安全性的有效手段。它的核心价值在于:即使设备被盗或被未授权访问,攻击者也无法获取完整的 active directory 数据库,也不能直接修改用户权限、组策略或架构配置。
部署前必须满足的硬性条件
RODC 不能独立存在,必须依托已有可写域控制器(WDC),且整个环境需满足以下四项基础要求:
- 林功能级别和域功能级别均 ≥ Windows Server 2008(2003 仅支持基础 RODC 功能,不推荐)
- 已有 WDC 运行正常,repadmin /replsummary 显示所有复制状态为 SUCCESS,无 RPC 或拒绝访问错误
- 目标服务器已加入域,DNS 设置指向该 WDC(不能指向自身、127.0.0.1 或公网 DNS)
- 本地管理员账户属于 Domain Admins 组(部署完成后可移出)
推荐采用分阶段部署方式
先预创建 RODC 计算机账户并配置密码复制策略,再执行提升操作。这种方式更可控、可复用、便于审计。
- 在主 DC 上用 PowerShell 执行:
Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName RODC-Branch01 -SiteName "Branch-Site" -AllowPasswordReplicationAccountName "Branch-Users" - 其中 Branch-Users 是一个安全组,包含该分支机构需本地登录的普通用户;严禁将 Domain Admins 或高权限组加入允许列表
- 该命令自动创建 RODC 计算机对象,并绑定密码复制策略(PRP),避免后续手动配置遗漏
执行安装并验证只读角色
在目标服务器上使用 PowerShell 安装(Windows Server 2012+ 不再支持 dcpromo):
- 运行:
Install-ADDSDomainController -ReadOnlyReplica:$true -Credential (Get-Credential) -Force:$true - 务必指定 -ReadOnlyReplica:$true,否则会建成普通可写 DC
- 所用凭据必须属于 Enterprise Admins(非 Domain Admins 即可完成,但需有企业管理员权限)
- 安装完成后,用 nltest /dsgetdc:contoso.com /rodc 确认返回结果含 “Read-only” 字样
- 检查 ADUC 中 Domain Controllers 容器,对应计算机属性中“DC 类型”应显示为“只读, GC”
启用并管控凭据缓存行为
默认情况下 RODC 不缓存任何用户密码,网络中断时无法登录。需主动配置,但必须严格限制范围:
- 打开“Active Directory 用户和计算机”,右键 RODC → 属性 → “密码复制策略”选项卡
- 将分支日常用户加入 Allowed RODC Password Replication Group
- 确保 Domain Admins、Enterprise Admins、Server Operators 等全部在 Denied RODC Password Replication Group 中(系统默认已加入)
- 策略变更后,手动触发同步:repadmin /rodcpwdrepl RODC-Branch01 DC-Main01
- 注意:已缓存的密码哈希不会因用户被移出允许组而自动清除,需单独执行 repadmin /prp 清理

















