如何验证远程组策略对象设置是否刷新成功

日期: 2014-09-18 作者:Nirmal Sharma翻译:杨旭 来源:TechTarget中国 英文

在客户端计算机上刷新组策略设置的最终目标是确保任何更改都能成功应用。我们在之前的文章中分别介绍了PSExec.exe和WMIC、组策略管理控制台和Invoke-GPUpdate PowerShell cmdlet刷新远程组策略对象(GPO)设置。但如果只是执行GPUpdate.exe,你不会知道是否应用了一个新的或变动过的策略设置。以上四种方式均不能产生GPO应用错误报告。

生成组策略对象设置更改报告 你无法知道有多少台计算机的组策略设置被成功刷新了,也无法知道有多少没有成功刷新。但是PowerShell命令可以产生CSV报告。 使用GPUpdate.exe手动刷新客户端计算机上的组策略设置时……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在客户端计算机上刷新组策略设置的最终目标是确保任何更改都能成功应用。我们在之前的文章中分别介绍了PSExec.exe和WMIC、组策略管理控制台和Invoke-GPUpdate PowerShell cmdlet刷新远程组策略对象(GPO)设置。但如果只是执行GPUpdate.exe,你不会知道是否应用了一个新的或变动过的策略设置。以上四种方式均不能产生GPO应用错误报告。

生成组策略对象设置更改报告

你无法知道有多少台计算机的组策略设置被成功刷新了,也无法知道有多少没有成功刷新。但是PowerShell命令可以产生CSV报告。

使用GPUpdate.exe手动刷新客户端计算机上的组策略设置时,客户端计算机的Event Viewer会生成两个Event消息。Event ID 4004记录为计算机配置,Event ID 4005记录为用户配置。这两个Event ID表明了组策略设置经过GPUpdate.exe命令手动刷新。

事实上这并不能分辨出GPO刷新是否成功。客户端计算机上生成的另外两个Event ID可以显示GPO刷新是否成功。Event ID 8004在计算机配置成功应用后生成,Event ID 8005在用户配置成功应用后生成。这就是你为什么需要检查客户端计算机。

注意:不管你使用什么方式刷新GPO设置,GPO设置成功应用后将产生这些Event ID。

在你使用下面的PowerShell命令之前,请确保使用上述四种中的一种方法在远程计算机上执行GPUpdate.exe。假设你已经创建了Computers.TXT,其中包含了需要执行的计算机的名称。一旦执行,开始运行该命令。

1. 通过执行下面这个命令将Computers.TXT的内容存储到一个变量中:

$ComputerList=Get-Content C:TempComputers.TXT

上面的命令将Computers.TXT中的内容存储在$ComputerList变量中。该变量将在步骤3中的命令使用。

2. 其次,将今天的日期存储在一个变量中。因为你可能需要查看看Event ID生成的日期。你需要创建一个变量存储今天的日期。

$ThisDate = (Date).AddDays(0)

“0”表明你想在当前日期检查远程计算机上的Event ID。你还可以指定–数字(如-2)。

3. 接下来,执行Get-WinEvent PowerShell cmdlet与ForEach cmdlet从远程计算机上收集Event ID 8004和8005,如下所示:

ForEach ($Computer in $ComputerList) {$Computer; $Result=Get-WinEvent -ComputerName $Computer -FilterHashtable @{ logname = "Microsoft-Windows-GroupPolicy/Operational" ; StartTime = $ThisDate; ID = 8004, 8005 } | Select-Object TimeCreated, Message, ID, MachineName}

上述命令处理C:TempComputers.TXT中指定的每个计算机上的Get-WinEvent cmdlet。命令只检查远程计算机上的Event ID 8004和8005,结果存储在名为$Result的变量中。

4. 最后,运行下面的命令将$Result变量中的结果输出到CSV文件中:

$Result | Export-CSV C:TempRefreshStatus.CSV -NoTypeInformation

Open C:TempRefreshStatus.CSV file, and the result should look like this screenshot (Figure 1):

如何验证远程组策略对象设置是否刷新成功
图1

如上述报告所示,步骤3中执行的PowerShell命令能够成功收集Event ID以及Event ID报告信息,这些信息来自两台计算机:ComputerName.DomainName.com和ComputerName2.DomainName.com。

这份报告并没有表现出步骤3运行时有任何故障。远程桌面管理员不仅应该熟悉这四个刷新多台远程计算机的组策略对象设置的方法,而且也应该知道如何验证这些刷新是否成功。

作者

Nirmal Sharma
Nirmal Sharma

TechTarget投稿作者

相关推荐