有时,安装Windows更新后,您可能会发现操作系统,特定程序或驱动程序会停止工作或引起冲突。在这种情况下,您必须卸载引起问题的更新并阻止其重新安装。在本文中,我们说明了如何暂时暂停Windows中的更新安装,以及如何通过将其隐藏在Windows Update Service中来完全阻止不需要的更新。
内容:
使用Microsoft Show和隐藏更新工具
如果您已经安装了导致问题的不需要的更新,则可以通过去将其删除设置- >Windows更新- >查看更新历史记录- >卸载更新。单击列表中的更新,然后选择卸载。
您还可以使用命令提示符删除更新。使用PowerShell命令列出按安装日期排序的更新:
Get-HotFix | Sort-Object -Property InstalledOn -Descending
查找列表中的更新号码(KBXXXXX),然后通过KB ID删除它:
wusa /uninstall /kb:5048161
但是,一段时间后,Windows Update将自动尝试重新安装您删除的更新(Windows Update组策略可以覆盖自动安装设置)。
要完全阻止Windows Update服务中的特定更新,您可以使用Microsoft官方的“显示或隐藏更新”工具(wushowhide.diagcab
)。
- 下载显示或隐藏实用程序从Microsoft网站
- 运行wushowhide.diagcab
- 选择隐藏更新
- 在列表中,选择要隐藏的更新。
- Windows Update Service在使其可见之前不会尝试安装隐藏的更新。
要使更新可用于安装,您需要选择显示隐藏的更新在wushowhide.diagcab实用程序中,并解开更新。
如果已安装了WSUS Update服务器,则可以使用被批准去除选项可以阻止特定更新的安装,甚至可以自动从已安装的计算机中卸载它。有关更多详细信息,请参见批准WSU的更新文章。
Windows中的暂时暂停更新
在Windows 10和11中,用户可以暂停最多35天的Windows更新安装。通常在发布的更新中发现错误时通常使用此方法,并且您想等待修复程序。
要暂停安装更新7天,请单击暂停更新7天在设置- >Windows更新。您可以暂停更新7天(总计35天)5次。这应该为Microsoft工程师提供足够的时间来确认更新存在广泛的问题并解决或召回。
要找出更新安装的日期,您可以使用PowerShell:
Get-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsUpdateUXSettings'| Select-Object PauseUpdatesExpiryTime
或使用简单的脚本暂停更新安装:
$pause = (Get-Date).AddDays(35)
$pause = $pause.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsUpdateUXSettings' -Name 'PauseUpdatesExpiryTime' -Value $pause
这将更新暂停扩展到最多35天。
使用PowerShell阻止某些Windows更新的安装
要阻止在Windows中安装的特定更新,请使用PSWindowSupDate模块提供的PowerShell CMDLET。如果尚未安装该模块,请在计算机上安装:
Install-Module -Name PSWindowsUpdate
重新启动PowerShell控制台,然后允许模块CMDLET在当前会话中运行(以避免更改全局PowerShell执行策略设置):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
列出可安装的更新:
参见:如何在Windows 10中隐藏或阻止特定的WiFi网络
Get-WindowsUpdate
要隐藏特定的更新,请在以下命令中指定其编号(KB):
Hide-WindowsUpdate -KBArticleID KB5048652 -Verbose
使用Get-WindowSupDate命令扫描时,隐藏的更新将不会显示在可用更新的列表中。要查看隐藏的更新,请运行:
Get-WindowsUpdate -IsHidden
状态列中的隐藏更新具有h(隐藏)属性。
要解开更新并允许安装它们,请运行
Show-WindowsUpdate -KBArticleID KB5048652
用户通常需要阻止某些设备驱动程序更新的安装(并防止Windows自动更新此设备驱动程序)。但是,如果您使用Get-WindowsUpdate
要列出可用的更新,您将看到驱动程序更新缺少KB号码。在这种情况下,您可以阻止驾驶员通过其ID更新:
$Updates = Get-WindowsUpdate -WindowsUpdate -UpdateType Driver
$Updates | Select Title,Description -Expand Identity
从结果中复制更新ID,并通过其ID隐藏驱动程序更新:
Hide-WindowsUpdate -UpdateID "3f6ba9a7-b031-4990-808f-69a9e1ef6a91"