我在 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
这里的文章描述了您感兴趣的所有内容。
我尝试了本文中的部分代码,效果很好。请注意,此处有一个拼写错误:
$wsus.GetUpdateStatue($updatescope,$False)
它应该是:
$wsus.GetUpdateStatus($updatescope,$False)