Блог
0 0 голоса
Рейтинг

Если после установки обновлений Windows возникают ошибки или проблемы, может потребоваться удаление конкретного обновления или всех недавно установленных обновлений. В этой статье мы рассмотрим, как удалить обновления Windows с помощью PowerShell и командной строки, включая использование модуля PSWindowsUpdate, удаление обновлений на удаленных компьютерах и обход ограничений для критических обновлений Servicing Stack.

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1690 ₽

Удаление обновлений через командную строку

Командная строка позволяет быстро просмотреть список установленных обновлений и удалить их с помощью утилиты wusa.

Просмотр списка обновлений

Чтобы вывести список установленных обновлений, выполните команду:


wmic qfe list brief /format:table

Команда отображает номера обновлений (HotFixID, например, KB5048667) и дату установки.

Удаление обновления

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


wusa /uninstall /kb:5048667

Подтвердите удаление в появившемся окне. После успешного удаления в Журнале событий (Просмотр событий, журнал Setup) появится событие с EventID 7 от источника WUSA, например:

Обновление Windows «Security Update for Microsoft Windows (KB5048667)» успешно удалено. (Командная строка: «C:\Windows\system32\wusa.exe» /uninstall /kb:5048667)

Ограничения тихого режима

Ранее в Windows можно было удалять обновления в тихом режиме (без подтверждения) с параметрами /quiet и /norestart:


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

Однако, начиная с Windows 10 1507, параметр /quiet игнорируется, и удаление в фоновом режиме невозможно. При попытке появляется ошибка в Журнале событий (EventID 8):

Не удалось удалить обновление Windows из-за ошибки 2147942487 «Неверный параметр». (Командная строка: «C:\Windows\system32\wusa.exe» /uninstall /kb:5048161 /norestart /quiet)

Удаление обновлений через PowerShell

PowerShell предоставляет более гибкие инструменты для управления обновлениями, включая просмотр списка обновлений и их удаление.

Просмотр списка обновлений

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

1. С помощью Get-CimInstance:


Get-CimInstance -ClassName Win32_QuickFixEngineering | Select HotFixID, InstalledOn | Sort-Object InstalledOn -Descending

2. С помощью Get-HotFix:


Get-HotFix | Select-Object HotFixID, InstalledOn, Description | Sort-Object InstalledOn -Descending

Обе команды показывают номера обновлений (HotFixID), даты установки и, в случае Get-HotFix, описание обновления.

Удаление обновлений за определенную дату

Для удаления всех обновлений, установленных в конкретную дату, выполните скрипт:


$Update_Date="12/13/2024"
Get-CimInstance -ClassName Win32_QuickFixEngineering | Where-Object { $_.InstalledOn -Match $Update_Date } | ForEach-Object { Start-Process "wusa.exe" -ArgumentList "/uninstall /kb:$($_.HotFixID.Substring(2))" -Wait }

Скрипт находит обновления за указанную дату и запускает wusa.exe для их удаления. Параметр -Wait обеспечивает последовательное выполнение.

Использование модуля PSWindowsUpdate

Модуль PSWindowsUpdate упрощает управление обновлениями, включая их удаление и скрытие.

Установка модуля

Установите модуль PSWindowsUpdate:


Install-Module -Name PSWindowsUpdate

Просмотр истории обновлений

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


Get-WUHistory | Select-Object -First 10 | Select-Object KB, OperationName, Date, Result, Title | Format-Table

Команда показывает номера KB, тип операции (установка/удаление), дату, результат и название обновления.

Удаление обновления

Удалите обновление, указав его номер KB, в тихом режиме:


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

Параметр -Confirm:$false подавляет запрос на подтверждение, а -Verbose выводит подробности операции.

Если команда возвращает ошибку с кодом -2145124318, это означает, что обновление нельзя удалить (например, оно является частью критического компонента).

Скрытие обновления

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


Hide-WindowsUpdate -KBArticleID KB5048667

Удаление обновлений на удаленных компьютерах

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

1. С помощью 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"

2. С помощью PowerShell Remoting:


Invoke-Command -ComputerName 192.168.158.100 -ScriptBlock { Remove-WindowsUpdate -UpdateID KB5048161 -Force -Confirm:$false }

Удаление обновлений Servicing Stack

Обновления Servicing Stack Update (SSU) являются критическими компонентами Windows и не могут быть удалены стандартными методами. Попытка удаления через wusa или Remove-WindowsUpdate приводит к ошибке:

Servicing Stack 10.0.26100.2592 требуется вашей системе и не может быть удален.

Однако существует обходной способ удаления кумулятивных обновлений (LCU), установленных после SSU, с помощью утилиты DISM. Этот метод потенциально опасен и может привести к нестабильности системы, поэтому используйте его с осторожностью.

Просмотр установленных пакетов

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


Get-WindowsPackage -Online | Where-Object { $_.ReleaseType -like "*Update*" } | Format-Table

Удаление пакета

Скопируйте имя пакета и удалите его:


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

Параметр -NoRestart предотвращает немедленную перезагрузку.

Рекомендации

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

– Перейдите в ПараметрыОбновление и безопасностьПриостановить обновления.

Резервное копирование: Перед удалением обновлений создайте точку восстановления системы:


Checkpoint-Computer -Description "Before removing updates" -RestorePointType MODIFY_SETTINGS

Проверка журналов: После удаления обновления проверьте Журнал событий (журнал Setup) для подтверждения успеха или диагностики ошибок.

Ограничения SSU: Избегайте удаления Servicing Stack Updates, так как это может нарушить возможность установки будущих обновлений.

Удаление обновлений Windows через PowerShell и командную строку позволяет устранить проблемы, вызванные проблемными обновлениями. Команды wusa, Get-HotFix и модуль PSWindowsUpdate обеспечивают гибкость в управлении обновлениями, включая удаление на локальных и удаленных компьютерах. Для критических обновлений Servicing Stack требуется осторожность и использование DISM. Правильное применение этих методов помогает поддерживать стабильность системы и минимизировать риски.

0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
0 отзывов
Межтекстовые Отзывы
Посмотреть все комментарии