卸载更新的常见原因是它们有错误或在特定环境中导致问题。删除它们只是为了让 PC 不受限制地恢复和运行而采取的短期措施。但特别是对于安全更新,它不是一个永久的解决方案。
批准卸载更新
通常,您可以允许或拒绝安装更新,但也可以批准删除这些更新。
可以使用 WSUS 控制台的 GUI 完成此操作。最大的挑战是在过滤选项非常有限的情况下,在长列表中找到错误的更新。
实现此目标后,标记不需要的更新,并检查“可移动”下部分的详细信息,以查看它是否支持卸载。
检查是否可以删除更新
如果可以,请从其上下文菜单中选择“批准”命令。在出现的对话框中,打开相应计算机组的下拉菜单,然后选中“批准删除”选项。
批准要删除的更新
如果要设置客户端立即开始删除更新的日期,请打开用于再次批准更新的对话框,然后对同一计算机组运行“截止时间”命令。
指定客户端应删除相关更新的日期
如果未指定截止时间,则仅当新更新挂起安装时,PC 才会删除不需要的更新。
成功批准后,如果已将操作应用于所有计算机,则概述中的更新状态将更改为“删除”。但是,如果仅将卸载操作分配给一个组,控制台将在“审批”列中显示“混合”。
发布后用于卸载的更新的批准状态
使用 PowerShell 卸载更新
由于“批准-WSUSUpdate ”cmdlet 提供了所有审批选项,因此还可以使用该 cmdlet 配置要删除的更新。
像往常一样,第一步是连接到 WSUS 服务器:
$wsus = Get-WsusServer -Name wsus.contoso.com -PortNumber 8530
如果在服务器上本地运行命令,则可以省略参数“名称”和“端口号”。
接下来,按更新的 ID 引用更新。这是一个 GUID,很遗憾无法从$wsus获得。SearchUpdates() 如果你只知道 KB。在这种情况下,您必须在更新目录中查找 GUID 或使用此脚本:
$kb = Read-Host -Prompt "Search for which KB?"
$uc = Invoke-WebRequest -Uri "https://www.catalog.update.microsoft.com/Search.aspx?q=$kb"
$uc.Links | where onClick -Like "*goToDetails*"|
foreach {$_.innerText + ";" + $_.id -replace '_link',''} |
ConvertFrom-Csv -Delimiter ";" -Header "Description","ID"|
Out-GridView -PassThru | Format-List
找到 UpdateId 后,将其传递给以下命令:
$u = Get-WsusUpdate -UpdateServer $wsus -UpdateId "<GUID>"
然后,检查更新是否支持卸载:
$u.Removable
如果为真,下一步是输出所有计算机组的名称:
$wsus.GetComputerTargetGroups()
在批准删除的最后一个命令中,将 TargetGroupName 参数设置为所需的计算机组:
$u | Approve-WsusUpdate -Action Uninstall -TargetGroupName "IT"
PowerShell 中允许卸载更新的步骤
PowerShell 中允许卸载更新的步骤
如果现在再次调用以下内容:
Get-WsusUpdate -UpdateServer $wsus -UpdateId "<GUID>" | select Approved
结果应为“卸载”。
总结
WSUS 提供了删除大量计算机上不需要的更新的可能性。为此,您必须批准它们进行卸载。