使用 get-wsuscomputer 和 -ComputerUpdateStatus

使用 get-wsuscomputer 和 -ComputerUpdateStatus

我在 Server 2012R2 机器上安装了 WSUS。我尝试使用获取 WsusComputerpowershell 命令获取待处理或失败更新的计算机列表。该命令的文档似乎表明这-ComputerUpdateStatus是正确的选项。

-ComputerUpdateStatus 指定 WSUS 控制台用户界面中显示的计算机更新状态。此参数可接受的值为:...

我遇到的问题是使用此选项似乎没有任何区别。当我在 GUI 中查看控制台时,大约 75% 的系统处于正常状态,少数系统已离线一段时间,少数系统出现故障,其余系统在所需列中显示 1-2 个更新。

PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations | Measure-Object

Count    : 264

PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations `
>>                  -ComputerUpdateStatus Failed  | Measure-Object

Count    : 264

PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations `
>>                  -ComputerUpdateStatus FailedOrNeeded | Measure-Object

Count    : 264

这个选项是不是坏了?还是我遗漏了关于如何使用它的一些明显信息?

答案1

WSUS PowerShell 模块中有一个错误。我反编译了模块,GetWSUSComputer 命令看起来好像有人将变量默认为所有状态,如果为空,即使该变量直到下一行才定义值。模块的设计不会在 Get-WSUSComputer 公开的对象中公开计算机更新状态,因此您也无法事后对其进行过滤。

答案2

这里的文章描述了您感兴趣的所有内容。

https://blogs.technet.microsoft.com/heyscriptingguy/2012/01/20/get-windows-update-status-information-by-using-powershell/

我尝试了本文中的部分代码,效果很好。请注意,此处有一个拼写错误:

$wsus.GetUpdateStatue($updatescope,$False)

它应该是:

$wsus.GetUpdateStatus($updatescope,$False)

相关内容