- Create a script with filename as DisableWindowsXUpdates.ps1 containing the following.
# To Execute:
# powershell -ExecutionPolicy RemoteSigned -File DisableWindowsXUpdates.ps1
# Reference:
# http://www.ghacks.net/2015/04/17/how-to-remove-windows-10-upgrade-updates-in-windows-7-and-8/
$updates_to_hide = "KB3035583|KB2952664|KB2976978|KB3021917|KB3022345|KB3046480|KB3068708|KB3075249|KB3080149|KB3123862|KB3150513"
# Change update setting to "Download updates but let me choose whether to install them".
$objAutoUpdateSettings = (New-Object -ComObject "Microsoft.Update.AutoUpdate").Settings
$objAutoUpdateSettings.NotificationLevel = 3
$objAutoUpdateSettings.Save()
$update = new-object -com Microsoft.update.Session
$searcher = $update.CreateUpdateSearcher()
$pending = $searcher.Search("IsInstalled=0 and IsHidden=0")
foreach($entry in $pending.Updates)
{
if ($entry.Title -match ".*(" + $updates_to_hide + ").*") {
Write-host "*********************************** Hiding ************************************"
$entry.IsHidden = [bool]1
}
Write-host "Title: " $entry.Title
Write-host "Downloaded? " $entry.IsDownloaded
Write-host "Description: " $entry.Description
foreach($category in $entry.Categories)
{
Write-host "Category: " $category.Name
}
if ($entry.Title -match ".*(" + $updates_to_hide + ").*") {
Write-host "*******************************************************************************"
}
Write-host " "
Write-host " "
}
- You need to start a Command Prompt as an Administrator.
- Execute the script using powershell -ExecutionPolicy RemoteSigned -File DisableWindowsXUpdates.ps1.
- Under Control Panel\System and Security\Windows Update, you can update as per normal now.
Things to Note
- You need to execute the script every time before you update. Microsoft will sneakily enable the unwanted updates from time to time.
- You can add updates that you do not wish to install by modifying the $updates_to_hide variable. Do also check the reference link for new updates to disable.