全局编录服务器(GC)是域控制器的特殊角色,存储森林中所有域对象的部分属性只读副本,支撑UPN登录、通用组令牌生成和林级搜索;多域环境需避免与基础结构主机共存,单域建议全DC启用;GC不可用时可启用UGMC缓存通用组成员身份。
全局编录服务器(global catalog,gc)是 active directory 森林中不可或缺的组件,不是额外服务,而是域控制器(dc)的一种特殊角色。它不提供独立功能,但直接影响用户登录、跨域搜索和通用组验证等关键操作。配置是否合理,直接关系到多域环境下的可用性与单域环境下的冗余效率。
GC的核心作用:不只是“快查”,更是登录和权限的基础
GC 存储的是整个森林中所有域对象的部分属性只读副本(称为 Partial Attribute Set,PAS),而非完整数据库。这些属性是微软预设高频使用的字段,例如:
- 用户的 sAMAccountName、userPrincipalName(UPN)、displayName、mail
- 组的 name、distinguishedName、member(仅通用组)
- 计算机的 name、objectCategory
它的实际价值体现在三方面:
- 支持 UPN 登录验证:用户用 user@domain.com 形式登录时,DC 必须联系 GC 才能定位该 UPN 对应的账户——无论账户在哪个域
- 构建完整访问令牌:登录时若用户属于通用组(Universal Group),GC 是唯一存储该成员关系的位置;没有 GC 响应,令牌缺失权限,登录失败
- 实现林级快速搜索:如 Outlook 地址簿查找、ADUC 中按姓名/邮箱全局搜索,底层均查询 GC,避免逐个域控制器轮询
GC 的部署配置:图形界面操作与关键注意事项
在已加入域的服务器上启用 GC 角色,需通过“Active Directory 站点和服务”完成:
- 展开“站点” → 找到对应站点 → 展开“服务器” → 展开目标 DC 名称
- 右键“NTDS Settings” → 选择“属性” → 勾选“全局编录” → 点击“确定”
- 变更立即生效,无需重启服务;系统会自动启动 GC 复制流程(通常 15–30 分钟内完成同步)
注意两个硬性约束:
- 多域森林中,GC 不能与基础结构主机(Infrastructure Master)共存于同一台 DC。否则该主机无法正确更新跨域对象引用,导致组策略或对象移动异常
- 单域森林中无此限制,建议所有 DC 都启用 GC——不增加复制负载,反而提升高可用性:任一 DC 故障时,其他 GC 仍可支撑登录与搜索
GC 不可用时的应对机制:UGMC 是什么?怎么启用?
当 GC 临时不可达(如网络中断、服务崩溃),默认情况下用户将无法使用 UPN 登录,也无法解析通用组成员身份。Windows 提供了通用组成员身份缓存(UGMC)作为缓解方案:
- UGMC 是域控制器本地缓存行为,非独立角色;启用后,DC 在用户首次成功登录时,自动缓存其通用组列表
- 后续登录不再依赖 GC,直接使用本地缓存生成令牌,保障登录连续性
- 启用方式:在“组策略管理”中编辑域控制器 OU 的 GPO → 计算机配置 → 策略 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 → 启用“启用通用组成员身份缓存”
- 缓存默认保留 7 天,过期后需重新触发缓存(即用户再次登录该 DC)
验证 GC 是否正常工作:三步快速确认
配置完成后,建议通过以下方式交叉验证:
- 端口连通性:从客户端或其它 DC 使用 telnet 或 Test-NetConnection 测试目标 GC 的 TCP 3268 端口(GC 默认 LDAP 端口,区别于标准 LDAP 的 389)
-
命令行查询:运行
nltest /dsgetdc:forestname /gc,确认返回的 DC 名称与预期一致;或用dsquery * -gc -filter "(sAMAccountName=username)"直接测试 GC 查询能力 -
注册表检查:在目标 DC 上查看
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\DSA Functionality,值为 4 表示 GC 已激活(值为 3 为普通 DC)










