Удаляем обновления в Windows с помощью PowerShell

Если после установки обновлений Windows на компьютере наблюдаются проблемы или ошибки, допустимо удалить конкретное обновление или все последние установленные обновления, чтобы попытаться устранить проблему. Рассмотрим, как удалить установленные обновления в Windows из командной строки или PowerShell.

Удалить обновление из командной строки Windows

Для вывода списка обновлений из командной строки можно использовать команду:

wmic qfe list brief /format:table

wmic qfe list brief вывести установленные обновления

Вывод команды содержит номера обновлений (KB, HotFixID) и дату установки. Для удаления определенного обновления, скопируйте его ID и выполните команду:

wusa /uninstall /kb:5048667

Подтвердите удаление обновления.

wusa /uninstall - удалить обновление

В случае успешного удаления обновления в журнале Setup в Event Viewer появится событие от WUSA с EventID 7 и описанием:

Windows update "Security Update for Microsoft Windows (KB5048667)" was successfully uninstalled. (Command line: ""C:\Windows\system32\wusa.exe" /uninstall /kb:5048667")

WUSA Event ID 7

Чтобы Windows не пыталась повторно установить удаленное обновление, можно поставить обновления на паузу на срок до 35 дней.

В предыдущих версиях Windows команду wusa можно было использовать для удаления обновлений в фоновом (тихом режиме) без подтверждения и с отложенной перезагрузкой. Использовалась такая команда:

wusa.exe /uninstall /KB:5048161 /norestart /quiet

Однако фоновый режим удаления обновлений был отключен начиная с Windows 10 1507. Теперь команда wusa.exe игнорирует параметр /quiet . При этом в журнале событий появляется ошибка Event ID 8:

Windows update could not be uninstalled because of error 2147942487 "The parameter is incorrect." (Command line: ""C:\Windows\system32\wusa.exe" /uninstall /KB:5048161 /norestart /quiet")

wusa /quiet - ошибка при тихом удалении обновления 2147942487 "The parameter is incorrect."

PowerShell: удаление установленных обновлений

Для более гибкого удаления обновлений можно использовать PowerShell. Следующие команды выведут список установленных обновлений Windows, отсортированных начиная с последних.

Get-CimInstance -ClassName Win32_QuickFixEngineering| select HotFixID, InstalledOn | sort InstalledOn -Descending

Или

Get-HotFix | Select-Object HotFixID, InstalledOn, Description| sort InstalledOn -Desc

Get-HotFix - вывести список установленных обновлений из PowerShell

С помощью следующих команд можно удалить все обновления Windows, установленные в определенную дату:

$Update_Date="12/13/2024"
Get-CimInstance -ClassName Win32_QuickFixEngineering | ? InstalledOn -Match $Update_Date | %{start "wusa.exe" @("/uninstall", "/kb:$($_.HotFixID.Substring(2))") -Wait}

PowerShell: удалить все обновления за указанную даты

Также для удаления обновлений можно исопльзовать PowerShell модуль PSWindowsUpdate. Установите модуль на компьютер:

Install-Module -Name PSWindowsUpdate

Выведите список 10 последних установленных обновлений:

Get-WUHistory | Select-Object -First 10| select KB,OperationName,Date,Result,title|ft

Get-WUHistory - список последних обновлений

Чтобы удалить обновление, укажите его номер в команде (в этом примере используется тихий режим с подавлением запроса на подтверждение удаления):

Remove-WindowsUpdate -KBArticleID KB5048667 -Confirm:$false -Verbose

Remove-WindowsUpdate

Если команда Remove-WindowsUpdate вернет код -2145124318 , это означает что такое обновление удалить нельзя.

ошибка удаленяи обновления Remove-WindowsUpdate HResult -2145124318

Чтобы предотвратить автоматическую установку этого обновления, нужно скрыть его от службы Windows Update:

Hide-WindowsUpdate -KBArticleID KB5048667

Если нужно удалить обновление с удаленного компьютера, можно использовать:

  • Утилиту PSExec:
    psexec \\192.168.158.100 -u root -s cmd.exe /c "dism /online /remove-package /packagename:Package_for_DotNetRollup_481~31bf3856ad364e35~amd64~~10.0.9290.1 /quiet /norestart"
  • Или PowerShell Remoting:
    Invoke-Command -ComputerName 192.168.158.100 -ScriptBlock { Remove-WindowsUpdate -UpdateID KB5048161 -Force -Confirm:$false }
На сайте есть отдельная статья, показывающая как удалить обновления, если Windows не загружается.

Удаление обновлений из образа Windows (DISM, Remove-WindowsPackage)

При удалении некоторых обновлений может появится ошибка:

Windows Update Standalone Installer
Servicing Stack 10.0.26100.2592 is required by your computer and cannot be uninstalled.

Servicing Stack is required by your computer and cannot be uninstalled

Дело в том, что это обновление служебного стека (Servicing Stack Update, SSU). Microsoft указывает, что обновления SSU нельзя удалить после установки, т.к. это критический компонент системы, без которого вы не сможете установить последующие кумулятивные обновления (Latest Cumulative Update, LCU)

Однако есть обходной способ, позволяющий удалить LCU после установки Servicing Stack Update.

Способ потенциально опасный, которые может привести вашу Windows в неработоспособное состояние. Поэтому используйте его на свой страх и риск, понимая последствия.

Выведите список установленных компонентов обновлений в образе Windows:

Get-WindowsPackage -Online | where ReleaseType -like "*Update*"|ft

Чтобы удалить пакет обновления из образа, скопируйте его имя и выполните команду:

Remove-WindowsPackage -Online -NoRestart -PackageName Package_for_RollupFix~31bf3856ad364e35~amd64~~26100.2314.1.10

Удаление обновлений с помощью Remove-WindowsPackage

Также рекомендуем познакомится со статьей об удалении программ с помощью PowerShell.

Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)