GPO 备份与还原是什么
组策略一旦配错,影响面常常是一个 OU 甚至全公司——而且它不像文件那样有明显的新旧版本,改坏了很难凭记忆复原。Backup-GPO 把 GPO 的设置导出一份到指定目录,Restore-GPO 可以整份换回旧版本,Import-GPO 还能把一个 GPO 的设置导入到另一个 GPO 或另一片环境。把「改前备份、改后留报表」固定成流程,组策略管理才算可控。
基本信息
| 适用平台 | Windows Server(域控或管理机)与安装 RSAT 的客户端 |
|---|---|
| 前置模块 | GroupPolicy 模块(随 GPMC 提供),需先 Import-Module GroupPolicy |
| 备份 | Backup-GPO -Name 'GPO名' -Path D:\GPOBackup -Comment '说明';-All 备份全部 |
| 还原 | Restore-GPO -Name 'GPO名' -Path D:\GPOBackup;-All 整域还原(谨慎) |
| 导入 | Import-GPO -BackupGpoName '源名' -Path 路径 -TargetName '目标 GPO' |
| 报表 | Get-GPOReport -Name 'GPO名' -ReportType Html/Xml -Path 报告文件 |
| 权限要求 | 需要域管理员或具备读取/编辑 GPO 的委派权限 |
典型使用场景
- 变更前留底:修改安全基线类 GPO 前先备份,出问题立即回退
- 季度归档:按周期备份全部 GPO 备份目录归档,作为基线证据
- 环境复制:把测试环境验证过的 GPO 设置导入到生产
- 迁移重建:域重构或新林搭建时导入历史策略
- 差异取证:用报表与备份对比出「到底哪次改动引入了问题」
常用示例
常用示例
Import-Module GroupPolicy # 加载模块(RSAT 已安装时)
Backup-GPO -All -Path D:\GPOBackup -Comment '季度基线备份' # 备份全部 GPO
Backup-GPO -Name 'Corp Baseline' -Path D:\GPOBackup -Comment '改前留底' # 备份单个 GPO
Get-GPO -All | Select-Object DisplayName, Id, GpoStatus, ModificationTime | Sort-Object ModificationTime # 盘点与核对
Get-GPOReport -Name 'Corp Baseline' -ReportType Html -Path D:\GPOBackup\report_baseline.html # 导出可读报表
Restore-GPO -Name 'Corp Baseline' -Path D:\GPOBackup # 整份还原(覆盖当前设置)
# 跨 GPO 复用设置
Import-GPO -BackupGpoName 'Corp Baseline' -Path D:\GPOBackup -TargetName 'Branch Baseline' -CreateIfNeeded命令职责对照
| 命令 | 作用 | 注意 |
|---|---|---|
| Backup-GPO | 导出 GPO 设置到目录 | 每个 GPO 生成独立文件夹,建议按日期组织 |
| Restore-GPO | 把备份整份还原到同名 GPO | 是覆盖而非合并,当前设置会丢失 |
| Import-GPO | 把一个 GPO 的设置导入另一个 | 跨域时需迁移表映射账户 |
| Get-GPOReport | 导出 HTML/XML 报表 | 含设置明细,适合留档与评审 |
| Get-GPO | 列出与核对 GPO 元数据 | 看修改时间可快速定位近期变更 |
备份以 GPO 的设置内容为主,链接关系(挂在哪些站点、域、OU 上)与安全筛选需要另行记录:导出报表留档是最省事的做法,重建环境时按报表把链接补回去。
跨域或跨林导入时,原 GPO 里的账户与组在目标域可能不存在,需要准备迁移表映射账户,否则权限与首选项类设置会指向无效对象。
变更到留档的完整流程
变更到留档的完整流程
# 1. 改前备份并留说明
Backup-GPO -Name 'Corp Baseline' -Path D:\GPOBackup -Comment '2026-10-13 调整锁屏策略前'
# 2. 记录当前状态报表
Get-GPOReport -Name 'Corp Baseline' -ReportType Html -Path D:\GPOBackup\before.html
# 3. 实施修改(在测试 OU 验证后再全量)
# 4. 生成修改后报表并对比
Get-GPOReport -Name 'Corp Baseline' -ReportType Html -Path D:\GPOBackup\after.html
# 5. 客户端刷新并取样验证
# gpupdate /force ; gpresult /h D:\report\gpo.htmlRestore-GPO -All 会把域内全部 GPO 恢复为备份时的状态,任何在备份之后的正常调整都会一并丢失。批量还原前先确认备份时间点,并逐条核对将受影响的 GPO 清单。