如何使用GPResult工具验证已应用的GPO

您是否曾经将一个组策略对象(GPO)应用到活动目录组织单位(OU)并希望验证其是否已应用?如果是的话,您需要了解gpresult命令。

扫描您的AD,查找超过930万个已受损密码。下载Specops Password Auditor,这是一个免费的只读工具,用于识别与密码相关的漏洞。

在本教程中,您将学习如何使用gpresult命令验证本地和远程Windows计算机上的组策略设置。

让我们开始吧!

先决条件

如果您想跟着本教程的示例操作,请确保您具备以下条件:

  • 一个活动目录域。任何版本均可。本教程将使用一个名为HomeLab.Local的域。
  • A domain-joined Windows PC with at least one GPO applied to it. If you’d like to learn how to invoke gpresult remotely, you’ll need a second domain-joined PC. This tutorial will use two Windows 10 computers called Win10VM1 and Win10VM2.
  • 您的本地计算机和远程计算机上的本地管理员权限。

了解GPResult命令

GPResult是Windows内置的命令行工具,用于生成关于应用到域加入计算机的用户和计算机策略的报告。

当活动目录管理员将GPO分配给OU时,该OU中的计算机或用户会检查以应用这些设置。目标计算机接收GPO的时候就是gpresult发挥作用的时候。

每台计算机实际接收和应用这些设置的时间取决于组策略刷新间隔

gpresult 实用程序允许您在这些目标计算机上运行命令,以确认应用的 GPO 是否符合您的预期。

获取 GPResult 的帮助

像许多其他命令行实用程序一样,gpresult 具有一个简单的内置帮助系统。该帮助系统可让您轻松查找所有难以记住的开关。

您可以通过简单地运行不带开关的 gpresult 来找到所有 gpresult 提供的开关,如下所示。与其在想知道参数的含义时再回到本帖,不如记住内置帮助存在!

Help information for gpresult command

检索结果集的策略(RSOP)数据

不带参数运行 gpresult 仅会显示帮助信息。您需要它来检索一些信息!首先,让我们先了解一下 /r 开关或结果集的策略的工作原理。

策略集结果(RSOP)是一个组策略附加组件,允许您查询各种组策略方面。RSOP是发现分配给计算机的策略的结果的绝佳方式。

GPResult日志模式显示RSOP数据,其中包括用户和计算机OU路径、域名、AD组成员资格、安全设置以及用户和计算机的应用GPO。

要使用gpresult查询RSOP数据,请打开cmd.exe或PowerShell,并以管理员身份运行。使用下面所示的/r开关调用gpresult

Gpresult /R

如下所示,您可以看到gpresult返回的内容包括特定计算机的所有GPO(计算机设置)和针对将登录到计算机的所有用户的GPO(用户设置)等。

您可以在非管理员命令提示符上运行gpresult /R,但它只会显示应用于运行命令的用户的策略。

Displaying output for Gpresult /R command

获取详细应用组策略信息:找到精细的应用组策略信息

如果你只是需要发现应用于特定计算机或用户(在该计算机上)的GPO,那么你从/r开关获得的RSOP数据就够了。但RSOP数据只能做到这么多。RSOP数据不提供诸如登录脚本最后执行时间、GPO创建位置的注册表键等信息。

要获取尽可能多的信息,可以使用如下所示的/vverbose(详细)开关。

Gpresult /V

看看/v提供的所有信息。这是很多信息啊!

Verifying GPOs applied on the computer
Password policies applied on the computer
Services disabled on the computer
Verifying Logon Scripts configured for user
Wallpaper set via user policy in GPO
Full registry key path for the policies
Verifying GPOs applied for user

以下是/r/v之间的差异。你会发现/r只提供GPO名称,而/v则提供登录脚本文件名以及脚本在计算机上上次执行的时间。

Differences in /r and /v

将GPresult限制为用户或基于计算机的设置

如前所述,默认情况下,gpresult返回用户和基于计算机的设置。有时,特别是在管理具有数百个设置的GPO时,输出量可能会令人不堪重负。

如果你只需要查找应用于计算机或用户的设置,gpresult允许你使用/scope参数限制查询的范围。通过将/scope参数参数指定为computerusergpresult将只返回应用于所有用户或计算机的设置。

要查看在computer范围内所有策略的RSOP数据,请运行以下命令。

Gpresult /R /Scope computer

如何仅以详细模式查找所有用户的所有策略?

Gpresult /V /Scope user

可以使用/scope参数,除其他开关外,如/r/v,以限制任一命令的范围。

如果您以管理员身份运行cmd.exe或PowerShell并调用GPResult,则会返回所有用户的组策略设置。如果使用/scope user开关,则会删除基于计算机的设置,但仍会返回所有用户的设置。

如果需要将设置限制为同时登录的单个用户,请使用/user参数,后跟所需用户名作为参数。

Gpresult /R /user user01

如果尝试查询不存在的用户的RSOP数据,GPResult将返回消息用户"<user>"没有RSOP数据

导出GPresult输出

有时仅返回信息到命令行控制台是不够的。也许您需要构建报告或与其他人分享结果。在这种情况下,您需要将结果导出到其他格式。

您可以以几种不同的方式导出GPResult输出。

将结果导出为文本文件

以下是将结果导出到文件的一种简便方法,即使用命令提示符或PowerShell的输出重定向功能。通过使用重定向操作符>后跟文本文件名将命令行结果“管道化”到文件中,文本将包含与控制台中看到的内容完全相同。

以下命令将返回所有RSOP数据并创建一个名为C:\Temp\RsopReport.txt的文件,其中包含GPResult命令的全部结果。

Gpresult /R > c:\Temp\RsopReport.txt

将结果导出到HTML或XML文件

与从命令提示符到文本文件的本机重定向不同,您还可以将应用的策略信息生成并保存到HTML或XML文件中。使用/H开关(用于HTML)或/X开关(用于XML)后跟请求的HTML文件的路径,GPResult将创建一个格式良好的HTML文件与输出。

Gpresult /H c:\Temp\RsopData.html
Gpresult /X c:\Temp\RsopXMLRreport.xml

如果文件已经存在,GPResult将返回错误。通过使用/F开关,强制GPResult覆盖现有文件。

远程运行GPResult

在整个教程中,您一直在本地运行GPResult。使用/s参数,GPResult也可以远程运行检索所有相同的组策略设置。

例如,要查找已经登录至远程计算机 win10vm1 的用户 user01 的 RSOP 数据,您可以运行以下命令:

gpresult /R /S win10vm1 /user user01
Finding RSOP data

也许您登录的计算机没有权限查询远程计算机上的组策略信息。在这种情况下,除非您指定备用凭据,否则 GPResult 将失败。

通过使用如下所示的 /U(用户名)和 /P(密码)参数指定备用凭据。

gpresult /R /S win10vm1 /scope user /U homelab\MyLabAdmin /P password
Specify alternate credentials

您的 Active Directory 中是否存在被 compromise 的密码?下载 Specops Password Auditor 并免费 扫描密码漏洞!

结论

您现在应该知道如何使用 GPResult 命令查询本地和远程计算机上应用的组策略设置。这个方便的命令是任何 Active Directory 管理员发现和故障排除工具中的利器。

下一次当您想知道,“我如何确认加入域的计算机已经应用了我期望的 GPO?”时,您会使用什么工具呢?

Source:
https://adamtheautomator.com/gpresult/