最近有人问我是否可以阻止我的老板自动应用他的代理设置。我们的代理设置是通过组策略设置的,所以我认为应该很容易确定它是哪个 GPO,然后只需将他从 GPO 范围用于应用它的组中移除即可。
我们的组策略非常复杂,有相当多的不同的 GPO 应用于各种用户和计算机。
问题是,我如何才能找到应用该设置的 GPO,而不必逐一检查并确定它是否适用于他的用户/计算机帐户?
我已经针对他的用户帐户和计算机运行了组策略建模向导(以防万一),但我找不到任何特定于他的信息。唯一与代理设置有关的 GPO 位于他的帐户不在其中的用户 OU 中。即 GPO 适用于域用户\用户,而他的帐户位于域用户\IT 中。
有什么想法吗?有没有一种工具可以更好地告诉我他的帐户上设置了哪些设置?可以通过 powershell 进行查询吗?
答案1
您可以gpresult /h c:\temp\policy.htm
在目标计算机上运行以获取结果策略。您也可以使用远程运行它执行(使用 cmd 命令)或电源外壳。
另一个选择是运行rsop命令在目标计算机上。
注意:gpresult 和 rsop 都应在受影响的用户下完成,以收集应用于其帐户的策略。
在 Powershell 中,你需要使用命令行获取 GPResultantSetOfPolicy带有参数 -电脑和-用户
Get-GPResultantSetOfPolicy -user someuser -computer contoso.com\computer-08 -reporttype html -path c:\reports\UserAndComputerReport.html
注意:要运行 Get-GPResultantSetOfPolicy cmdlet,您必须使用提升的权限启动 Windows PowerShell
或者使用以下利用 COM 对象的 Powershell 代码:
$OutputFile = “C:\Temp\GPOExport.html”
$ComputerName = “test.contoso.com”
$UserName = “john”
$gpm = New-Object -ComObject GPMgmt.GPM
$constants = $gpm.GetConstants()
$gpmRSOP = $GPM.GetRSOP($Constants.RSOPModeLogging,$null,0)
$gpmRSOP.LoggingComputer = $ComputerName
$gpmRSOP.LoggingUser = $UserName
$gpmRSOP.CreateQueryResults()
$gpmRSOP.GenerateReportToFile($constants.ReportHTML,$outputfile)