powershell 可导出 ad 域中 gpo 的元数据、链接、权限及详细设置报告:用 get-gpo 导出基本信息为 csv;get-gpinheritance 获取链接位置与顺序;get-gppermissions 提取安全筛选权限;get-gporeport 生成 xml/html 详细策略报告。
powershell 可以高效导出 active directory 域中的组策略对象(gpo)信息,但需注意:gpo 本身不存储在 ad 数据库中,而是保存在 sysvol 共享和 group policy container(gpc)中;因此“导出全局策略信息”实际是指导出域内所有 gpo 的元数据、链接状态、权限、设置摘要等,而非完整的策略配置(后者需用 get-gporeport 生成 xml/html 报告)。
获取所有 GPO 基本信息并导出为 CSV
使用 Get-GPO 获取域中全部 GPO 列表,并选取关键属性导出:
- 确保已安装 GroupPolicy 模块(Windows Server 默认自带,Windows 10/11 需先运行
Install-WindowsFeature -Name GPMC或启用“远程服务器管理工具”) - 以域管理员或具有 GPO 读取权限的账户运行 PowerShell(建议用
Run as Administrator) - 执行以下命令导出名称、ID、创建/修改时间、状态、WMI 筛选器等字段:
Get-GPO -All | Select-Object DisplayName, Id, CreationTime, ModificationTime, GpoStatus, WmiFilter | Export-Csv -Path "C:GPO_Overview.csv" -NoTypeInformation -Encoding UTF8
导出 GPO 链接位置(OU/站点/域)及链接顺序
GPO 的作用范围由其链接(GPLink)决定,需结合 Get-GPInheritance 或查询 AD 中的 gPLink 属性:
- 对特定容器(如根域)获取完整继承链(含强制、已启用/禁用状态):
Get-GPInheritance -Target "dc=contoso,dc=com" | Select-Object Target, InheritedGpo, Enabled, Enforced, LinkOrder | Export-Csv "C:GPO_Links.csv" -NoTypeInformation -Encoding UTF8
- 若需批量导出所有 OU 的链接情况,可先用
Get-ADOrganizationalUnit枚举 OU,再对每个 OU 执行Get-GPInheritance
导出 GPO 安全筛选与委派权限
默认情况下 Get-GPO 不返回权限信息,需调用 Get-GPPermissions 单独获取:
- 导出每个 GPO 对“Authenticated Users”或指定安全组的权限(如“读取”“应用组策略”):
Get-GPO -All | ForEach-Object {
$gpo = $_
Get-GPPermissions -Guid $gpo.Id -All |
Where-Object { $_.Permission -eq "GpoApply" -or $_.Permission -eq "GpoRead" } |
Select-Object @{n='GPOName';e={$gpo.DisplayName}}, Principal, Permission, Inherited
} | Export-Csv "C:GPO_Permissions.csv" -NoTypeInformation -Encoding UTF8
生成详细策略设置报告(XML/HTML)
若需审计具体策略项(如密码策略、软件安装、脚本配置),必须使用 Get-GPOReport:
- 导出全部 GPO 的 HTML 报告(便于人工查阅):
Get-GPO -All | ForEach-Object {
$name = $_.DisplayName -replace '[\/:*?"\|]', '_'
Get-GPOReport -Guid $_.Id -ReportType Html -Path "C:GPOReports$name.html"
}
- 导出为 XML(适合后续解析或比对):
Get-GPO -All | ForEach-Object {
Get-GPOReport -Guid $_.Id -ReportType Xml -Path "C:GPOReports$($_.DisplayName -replace '[\/:*?"\|]', '_').xml"
}











