GPO 比较工具

GPO 比较工具

有谁知道 GPO 比较工具吗,最好是免费的(或便宜的)。

我需要比较两个 GPO 的设置来查看目标 GPO 中缺少什么。

编辑:澄清一下,我需要一个可以帮我比较设置的工具。我可以手动操作,但很麻烦,而且也容易出错。

答案1

使用组策略管理控制台将 GPO 保存为 XML 文件,然后在记事本++并按 Alt-D 比较文件。

答案2

您可以使用两个组策略管理控制台实例,并在选择要比较的 GPO 时转到“设置”选项卡。单击“显示全部”以显示所有已应用的设置。

答案3

使用 SCM v2 GPO 导入功能将 GPO 导入为基线。然后,您可以使用比较工具来显示设置差异。V2 目前处于 CTP 阶段,但到目前为止似乎运行良好。以下是 链接到博客文章并下载

答案4

另一种选择(如果您只是尝试比较 GPO 中的注册表项)是使用 Powershell。下面显示的特定方法适用于我的环境,但可能能够利用/修改以在您的环境中工作

  • 这种方式假设您正在比较来自两个不同域的类似 GPO,并且您在两个域之间配置了信任,以便能够在其中一个域内执行备份。
  • 此方法还假设您没有将注册表项组织到 GPO 中的集合项中。您需要将所有注册表项移到根目录中才能实现此目的。
  • PowerShell 5.1
  1. 在您创建的目录结构中创建每个 GPO 的备份
$farms = 'AppFarm1','AppFarm2'

foreach ($farm in $farms) {

Backup-Gpo -Domain qa01domain -Name "$farm Settings" -Path "C:\GpoBackupsDiff\qa01\farms\$farm"
Backup-Gpo -Domain qa02domain -Name "$farm Settings" -Path "C:\GpoBackupsDiff\qa02\farms\$farm"

}
  1. 这也可以循环,但如果你只想逐个执行每个 gpo diff,那么请按原样使用逻辑
$farm = 'AppFarm1'

#Obtains the GUID of the qa01 backup by using the folder name (Must only have one backup in the folder)
[string]$qa01GUID = (Get-ChildItem C:\GpoBackupsDiff\qa01\farms\$farm).Name | Select-String -Pattern "{"

#Extracts the registry entries from the gpo backup into a powershell xml object
[xml]$qa01gpo = Get-Content -Path "C:\GpoBackupsDiff\qa01\farms\bridge\$qa01GUID\DomainSysvol\GPO\Machine\Preferences\Registry\registry.xml"

#Obtains an object of each registry entry
$qa01gpoCompare = $qa01gpo.RegistrySettings.Registry.Properties

#Obtains the GUID of the qa02 backup by using the folder name (Must only have one backup in the folder)
[string]$qa02GUID = (Get-ChildItem C:\GpoBackupsDiff\qa02\farms\$farm).Name | Select-String -Pattern "{"

#Extracts the registry entries from the gpo backup into a powershell xml object
[xml]$qa02gpo = Get-Content -Path "C:\GpoBackupsDiff\qa02\farms\bridge\$qa02GUID\DomainSysvol\GPO\Machine\Preferences\Registry\registry.xml"

#Obtains an object of each registry entry
$qa02gpoCompare = $qa02gpo.RegistrySettings.Registry.Properties

#Compares the registry entries against each other. Google the ms docs for Compare-Object for details on how it works if you're new to it.

Compare-Object -ReferenceObject $qa01gpoCompare -DifferenceObject $qa02gpoCompare


相关内容