gpmgmt.dll:组策略管理控制台的核心组件
gpmgmt.dll 位于 %SystemRoot%\System32\ 目录下,是 Windows 组策略管理控制台(Group Policy Management Console,GPMC)的核心 COM 组件。它实现了 GPMGMTLib 类型库定义的整套组策略管理对象模型(GPM Object Model),GPMC 的 MMC 管理单元、PowerShell 的 GroupPolicy 模块以及各类基于 COM 的自动化脚本,都依赖它读写 Active Directory 中的组策略数据。
一、核心功能
- 对象模型宿主:导出 GPM、GPMDomain、GPMSOM、GPMGPO、GPMBackup、GPMSecurityInfo 等自动化接口,供脚本或第三方程序以 COM 方式调用。
- 容器级链接管理:在站点、域、OU 上枚举、创建、删除 GPO 链接,并设置链接的启用/停用状态与强制(Enforced)属性。
- GPO 生命周期操作:支持 GPO 的新建、删除、备份、还原、导入、复制以及跨域迁移,是 GPO 备份与迁移工作流的基础。
- 策略内容与配置:读写注册表策略、脚本、文件夹重定向等由客户端扩展(CSE)承载的策略设置。
- 安全筛选与委派:配置 GPO 的 ACL 权限(GPOApply、GPOEdit 等),管理 WMI 筛选器及其链接。
- 报告与建模:生成 GPO 设置报告,并支撑“组策略建模”向导进行结果集(RSoP)预演。
二、缺失 gpmgmt.dll 的潜在影响
- 管理单元无法加载:打开“组策略管理”时提示 MMC 无法创建管理单元,或返回错误代码 0x8007007E。
- 自动化命令失效:PowerShell 的 GroupPolicy 模块(Get-GPO、New-GPO、Backup-GPO 等)全部报“找不到文件”或“类未注册”。
- COM 调用异常:脚本中
New-Object -ComObject GPMGMT.GPM 抛出 REGDB_E_CLASSNOTREG。
- 管理面工作流中断:域控或管理机上的 GPO 备份、还原、导入、复制、报告输出等操作不可用。
- 影响范围界定:客户端策略的实际应用由 gpsvc(组策略客户端服务)负责,与之无直接依赖,因此终端用户的策略生效与登录一般不受影响,受损的仅是管理控制面。
修复思路:依次执行 sfc /scannow 与 DISM /Online /Cleanup-Image /RestoreHealth;若文件本身损坏或丢失,可从同版本、同架构系统中复制对应文件回填,字段版本与语言需保持一致;也可重新安装 RSAT 中的组策略管理工具组件以覆盖还原。