如何查找 GPO 注册表设置
对于大型 GPO 结构,跟踪所有设置可能具有挑战性。
此外,如果您是顾问或面临未知基础设施的新员工,那么了解 GPO 的概述可能非常耗时。
除非你从你的袖子里拿出一点 PowerShell 魔法!
在其他文章中我们已经介绍过:
- 如何查找 GPO 文件夹重定向
- 如何查找GPO软件安装文件夹
- 如何查找 GPO 驱动器映射
- 如何查找 GPO 登录脚本
本文将使您能够通过注册表设置识别 GPO。
(有关如何创建自己的 GPO 分析脚本的详细说明,请阅读此内容)
使用 PowerShell 通过注册表设置识别 GPO
人们很容易使用 GPO 名称并尝试猜测它们处理哪些设置。
但如果您有超过 5 个 GPO,则单击所有 GPO 来验证实际设置将非常耗时。
如果您想 100% 知道哪个 GPO 保存了注册表设置的设置 - 请查看此脚本:
Function Get-GPOReg ($ExtData, $Gpo, $Scope) {
$ArrResult = @()
ForEach ($ExtensionData In $ExtData) {
If ($ExtensionData.Name -eq "Registry") {
$RegSettings = $ExtensionData.Extension.Policy
ForEach ($RegSetting In $RegSettings) {
$GPORegConfig = New-Object PSObject -Property @{
GPO = $GPO.Name
LinkCount = $LinkCount
Enabled = $Enabled
Name = $RegSetting.Name
Type = $Scope
}
$ArrResult += $GPORegConfig
}
}
}
Write-Output $ArrResult
}
$Reports = Get-GPO -All | Get-GPOReport -ReportType Xml
$Scripts = @()
ForEach ($Report In $Reports) {
$GPO = ([xml]$Report).GPO
$LinkCount = ([string[]]([xml]$Report).GPO.LinksTo).Count
$Enabled = $GPO.Computer.Enabled
$ExtData = $GPO.Computer.ExtensionData
$Scripts += Get-GPOReg $ExtData $GPO "Computer"
$Enabled = $GPO.User.Enabled
$ExtData = $GPO.User.ExtensionData
$Scripts += Get-GPOReg $ExtData $GPO "User"
}
Write-Output $Scripts | ft GPO, LinkCount, Enabled, Name, Type该脚本的输出将类似于以下内容:
GPO LinkCount Enabled Name Type
--- --------- ------- --- ----
G.C.WaitForNetwork 1 true Always wait for the network at computer startup and logon Computer
G.C.DisableWindowsUpdate 2 true Configure Automatic Updates Computer
G.C.OfflineTemplates 5 true Personal templates path for Word User掌握了此概述后,您就有了进一步检查 GPO 脚本的良好起点。
例如,如果您正在查找配置 Windows 更新的 GPO,则可以在“名称”列中搜索“自动更新”。
这使您可以快速识别具有特定设置的任何和所有 GPO。
请参阅这篇文章,了解有关 GPO、应用程序顺序、过滤等的全面入门知识。
整合 AD 和 Office 365 管理
嘿,现在请您注意:
查看我们适用于 AD 用户和计算机的出色 Office 365 管理管理单元:
Easy365Manager 将允许您在 AD 用户和计算机的用户属性中执行所有日常 Office 365 管理。
Easy365Manager 甚至消除了对复杂 PowerShell 脚本的需求,例如,在委派日历访问时:
在您自己的环境中测试所有功能是完全免费的。
在此下载功能齐全的 30 天试用版。
您可以将其安装到任何具有 AD 用户和计算机的 PC 或服务器上,它不会更改 AD 或您的基础设施,并且可以轻松卸载。
