PowerShell WSUS查询不会使用所有分类

时间:2018-10-15 20:08:10

标签: powershell

我正在尝试使用Powershell自动化一些WSUS东西!

当我运行此命令时:

Get-WSUSClassification -WSUSserver MyServer

结果符合预期:我们具有所有这些分类:

Title              ID                                  
-----              --                                  
Applications       5c9376ab-8ce6-464a-b136-22113dd69801
Critical Updates   e6cf1350-c01b-414d-a61f-263d14d133b4
Definition Updates e0789628-ce08-4437-be74-2495b842f43b
Driver Sets        77835c8d-62a7-41f5-82ad-f28d1af1e3b1
Drivers            ebfc1fc5-71a4-4f7b-9aca-3b9a503104a0
Feature Packs      b54e7d24-7add-428f-8b75-90a396fa584f
Security Updates   0fa1201d-4330-4fa8-8ae9-b877473b6441
Service Packs      68c5b0a3-d1a6-4553-ae49-01d3a7827828
Tools              b4832bd8-e735-4761-8daf-37f882276dab
Update Rollups     28bc880e-0592-4cbf-8f95-c79b17911d5f
Updates            cd5ffd1e-e932-4e3a-bf74-18bf0b1bbd83
Upgrades           3689bdc8-b205-4af4-8d4a-a63924c5e9d5

但是:如果我尝试使用除“全部”,“关键”,“安全性”或“ WSUS”之外的任何其他内容,

 get-wsusUpdate -approval UnApproved -Classification "Drivers" -status Needed -updateserver MyWSUS

我收到以下错误:

Get-WsusUpdate : Cannot bind parameter 'Classification'. Cannot convert value "Feature Packs" to type "Microsoft.UpdateServices.Commands.WsusUpdateClassifications". Error: "Unable to match the identifier name Feature Packs to a valid enumerator name. Specify one of the following enumerator names and try again: All, Critical, Security, WSUS"

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是一个术语不佳的情况。有WSUS分类和WSUS更新分类,它们是不同的东西。您已经知道如何使用Get-WsusClassification查看第一个选项。您可以使用[enum]::GetNames(<EnumType>)查看后者的有效选项,例如:

PS C:\Windows\system32> [enum]::GetNames([Microsoft.UpdateServices.Commands.WsusUpdateClassifications])
All
Critical
Security
WSUS

那么,我们能否获得分类为功能包的更新?我们可以,但是我知道要做的唯一方法是花更多的时间。这是我的处理方式:

$WSUS = Get-WsusServer
$FPClass = $WSUS.GetUpdateClassifications()|Where{$_.Title -eq 'Feature Packs'}
$FPClass.GetUpdates()

现在,您确实知道所需分类的GUID,因此,如果要使用GUID,可以将其缩短:

$WSUS.GetUpdateClassification('b54e7d24-7add-428f-8b75-90a396fa584f').GetUpdates()

这将为您提供所有Feature Pack更新。在这里,您可以根据更新是否被取代来过滤掉它们。

我个人认为对象本身比WSUS的cmdlet有用得多,例如上面的$WSUS获取更新分类,您可以从中获取该分类的更新。