Sometimes, after installing a Windows update, users may face issues such as the operating system, specific programs, or drivers malfunctioning. In such cases, it is necessary to uninstall the troublesome update and prevent its reinstallation. This guide outlines how to temporarily pause updates and block unwanted updates from the Windows Update service.
Using the Microsoft Show and Hide Updates Tool
If an unwanted update has already been installed, it can be uninstalled by navigating to Settings → Windows Update → View Update History → Uninstall updates. Simply click on the update in the list and select Uninstall.
For users who prefer using the command line, the PowerShell command can be employed to remove the update sorted by installation date:
Get-HotFix | Sort-Object -Property InstalledOn -Descending
Identify the update number (KBxxxxx) and uninstall it using:
wusa /uninstall /kb:5048161
However, Windows Update may automatically try to reinstall the update you’ve just removed, depending on the settings overridden by the Windows Update Group Policy.
To completely block a specific update, utilize the Microsoft ‘Show or Hide Updates’ tool (wushowhide.diagcab
):
- Download the Show or hide utility from the Microsoft website.
- Run wushowhide.diagcab.
- Select Hide updates.
- Choose the update(s) you wish to hide.
After hiding updates, they will not reappear for installation unless you unhide them using the same tool.
If you have a WSUS Update Server installed, you can leverage the Approved for Removal option to block and even automatically uninstall certain updates across connected systems. Check the article Approving Updates on WSUS for further instructions.
Temporarily Pause Updates in Windows
Windows 10 and 11 permit users to pause updates for up to 35 days, a useful option when known bugs are identified in released updates.
To pause updates for 7 days, choose the Pause updates for 7 more days option in Settings → Windows Updates. This function can be utilized five times, extending the total pause period to 35 days.
To check when the update pauses will expire, the following PowerShell command can be utilized:
Get-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsUpdateUXSettings'| Select-Object PauseUpdatesExpiryTime
To set the maximum pause duration via a PowerShell script:
$pause = (Get-Date).AddDays(35)$pause = $pause.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsUpdateUXSettings' -Name 'PauseUpdatesExpiryTime' -Value $pause
Block Installation of Specific Windows Updates Using PowerShell
To effectively block a specific update, the PowerShell cmdlets available through the PSWindowsUpdate module should be utilized.
If not already installed, execute the following command to install the module:
Install-Module -Name PSWindowsUpdate
After restarting PowerShell, allow the module cmdlets to execute in the current session:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
To see available updates for installation, use:
Get-WindowsUpdate
To block a specific update, run:
Hide-WindowsUpdate -KBArticleID KB5048652 -Verbose
Hidden updates won’t appear in the list of available updates. To view hidden updates, execute:
Get-WindowsUpdate -IsHidden
To unhide updates and enable their installation, run:
Show-WindowsUpdate -KBArticleID KB5048652
Users often seek to block particular driver updates as well. If Get-WindowsUpdate
shows that driver updates are missing a KB number, the driver can be blocked based on its ID:
$Updates = Get-WindowsUpdate -WindowsUpdate -UpdateType Driver$Updates | Select Title, Description -Expand IdentityHide-WindowsUpdate -UpdateID "3f6ba9a7-b031-4990-808f-69a9e1ef6a91"