Как удалить обновление windows server 2016

Windows не загружается после установки обновлений

Для обеспечения стабильности и безопасности вашей Windows, вы должны регулярно устанавливать обновления безопасности (вручную с помощью msu / cab файлов или автоматически через службу Windows Update). Microsoft ежемесячно каждый второй вторник выпускает новые обновления Windows. В некоторых случаях новые обновления могут вызвать различные проблемы в системе (из-за плохого тестирования, ошибки инженеров, несовместимости с железом и т.д.), и установленное обновление нужно удалить (Способы удаления обновлений в Windows). Однако случается что операционная система Windows перестает загружаться (падает в BSOD с ошибками CRITICAL_PROCESS_DIED, INACCESSIBLE_BOOT_DEVICE, или автоматически перезагружается) и вы не можете штатно удалить проблемное обновление.

В этой статье мы рассмотрим, как корректно удалить обновления в Windows 10 и 11 (Windows Server 2019/2016/2012), если операционная система не загружается.

Использование среды восстановления Windows (WinRE) для удаления обновлений

Если Windows не загружается, вы можете попробовать использовать среду восстановления Windows (Windows Recovery Environment — WinRE) для исправления типовых ошибок и удаления последних обновлений.

Загрузчик Windows Boot Manager попытается автоматически загрузить компьютер в среде Windows Recover Environment, если три предыдущие попытки загрузки Windows были неудачными. Вы можете просто 3 раза подряд прервать загрузку системы кнопкой отключения питания.

На экране WinRE выберите Troubleshoot. Здесь будет представлено несколько опций, позволющих исправить типовые проблемы загрузки Windows:

  • Startup repair – попробуйте использовать эту опцию первой, чтобы Windows попыталась автоматически исправить типовые проблемы
  • SystemRestore – позволяет откатиться к одной из предыдущих точек восстановления
  • SystemImageRecovery – позволяет восстановить компьютер из созданной ранее резервной копии вашего образа Windows
  • UninstallUpdates – данный режим позволяет удалить последние обновления безопасности или обновления билда Windows 10.

Выберите Uninstall Updates. Выберите один из режимов:

  • Uninstalllatestqualityupdates – используется для удаления последнего ежемесячного обновления Windows;
  • Uninstall latest feature update – используется для удаления билда Windows 10.

Выберите нужную вам опцию, дождитесь удаления обновления, перезагрузите компьютер в обычном режиме.

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

В этом случае нужно вручную удалить файл pending.xml (описано в следующем разделе).

Как удалить обновления, если Windows не загружается?

Если Windows после установки обновлений не загружается в режиме восстановления, нужно загрузить компьютер с любого доступного диска или флешки. Это может быть как среда восстановления Windows (WinRE), установочный диск или флешка с Windows, ERD (он же MSDaRT 10) или другой загрузочный диск.

В этом примере, я загружу компьютер с установочной флешки с Windows 10 x64. При загрузке зайдите в BIOS/UEFI вашего компьютера и измените порядок загрузки, выбрав вашу USB флешку в качестве первичного загрузочного устройства.

На втором экране с приглашением начать установку Windows нужно нажать кнопку Repair Computer или нажать сочетание клавиш Shift+F10.

В первом случае выберите Troubleshoot -> Command Prompt (Командная строка).

В открывшемся окне командной строки среды Win PE нужно определить букву диска, которая назначена вашему системному разделу с Windows (это может быть не диск C:\).

Выполите команду: DISKPART

Выведите список разделов в системе: list volume

В моем примере среда WinPE не назначила букву диска моему разделу с Windows. На моем скриншоте это Volume 1 с файловой системой NTFS и разделом 39 Гб (100 Мб раздел это загрузочный EFI раздел).

Чтобы назначить ему букву диска V, выполните команды:

Select volume 1
Assign letter=v

Еще раз выполните команду list vol , чтобы убедится, что разделу с Windows назначена буква диска.

Завершите сеанс diskpart командой: exit

В нашем примере мы назначили системному разделу Windows букву V:\ (используйте свою букву диска в следующих командах).

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

DISM /Image:V:\ /Get-Packages /format:table

Если вы знаете какое конкретное обновление (KB) вызвало проблему, его номер можно использовать в качестве фильтра:

DISM /Image:V:\ /Get-Packages /format:table | find “4056887”

Или можно отфильтровать список по дате установке:

DISM /Image:V:\ /Get-Packages /format:table | find “10/25/2021”

(формат даты зависит от настроек локализации Windows, в моем примере используется американский формат даты)

DISM /Image:V:\ /Get-Packages /format:table > d:\updates.txt
Notepad V:\updates.txt

Теперь нужно скопировать идентификатор проблемного пакета в буфер (выделить название пакета в командной строке и нажать Enter; чтобы вставить текст – просто щёлкните правой кнопкой мыши).

С помощью следующей команды можно удалить обновление:

DISM /Image:V:\ /Remove-Package /PackageName:Package_for_KB4056887

Если вы точно не знаете, какое конкретное обновление вызвало проблему, п удалите все недавно установленные пакеты о очереди.

После удаления обновления попробуйте загрузить Windows в обычном режиме.

Если вам нужно удалить обновления, ожидающие установки (со статусом Pending), нужно удалить файл pending.xml.

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

del V:\Windows\WinSxS\pending.xml
del V:\Windows\WinSxS\cleanup.xml (файл может отсутствовать)
del V:\Windows\SoftwareDistribution\Download\*.*

dism /image:v:\ /ScratchDir:v: /cleanup-image /RevertPendingActions

Эта операция отменяет все отложенные действия предыдущих операций обслуживания, так как эти действия могут быть причиной сбоя при загрузке.
Затем вы можете воспользоваться DISM, чтобы проверить и исправить хранилище компонентов Windows в офлайн режиме (понадобится установочный диск Windows):

Dism /image:V:\ /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim

Если у вас есть диск восстановления MSDaRT, то удалить проблемные обновления можно еще проще. Достаточно загрузится с диска MSDaRT (разрядность должна совпадать), выбрать Диагностика -> Microsoft Diagnostics and Recovery Toolset. В списке утилит выберите Hotfix Uninstall (Удаление исправлений).

Выделите какие обновления нужно удалить, и нажимаете Далее.

Источник

Удаление старых обновлений на Windows Server Update Services (WSUS)

За время работы службы Windows Server Update Services (WSUS), она съедает все доступное дисковое пространство. Обусловлено это тем, что WSUS хранит все версии обновлений, которые он скачал с узла Microsoft Update.

Периодически рекомендуется запускать из консоли WSUS утилиту Мастер очистки диска (wsusutil.exe) для удаления старых версий обновлений. При помощи Мастер очистки диска (wsusutil.exe), можно удалить только обновлений WSUS, которые не были развернуты в течении последнего месяца.

Нормального способа удалить старые файлы обновлений WSUS нет. Оптимальный вариант выход из положения это полностью очистить все файлы обновлений и выкачать заново только нужные. Сделать это можно разными способами, рассмотрим наиболее изящный способ.

Выделяем все утвержденные обновления и переводим их в состояние «Отклонено».

Переходим в ПараметрыФайлы и языки обновлений. Выбираем пункт «Не хранить файлы обновлений локально«. Нажимаем ОК. Процесс применения настроек (занимает несколько минут). Необходимо дождаться завершения операции применения. Если зайти повторно в настройки, то можно увидеть сообщение: «Невозможно сохранить конфигурация, так как сервер еще обрабатывает предыдущее изменение конфигурации«. Периодически открывая окно дождаться когда процесс закончится (исчезнет сообщение, а кнопки станут доступны).

Переходим в ПараметрыМастер очистки сервера (он полностью очистит папку WSUSContent от файлов обновлений).

Переходим в ПараметрыФайлы и языки обновлений. Выбираем пункт «Хранить файлы обновлений локально на этом сервере«, отмечаем галочкой пункт «Скачивать файлы обновлений на сервер только после утверждения обновлений«. Переходим во вкладку «Языки обновлений» и выбираем только нужные языки обновлений.

Теперь можно утверждать необходимые обновления.

Источник

Модуль PSWindowsUpdate: управление обновлениями Windows из PowerShell

Вы можете использовать PowerShell модуль PSWindowsUpdate для управления обновлениями Windows из командной строки. Модуль PSWindowsUpdate не встроен в Windows и доступен для установки из репозитория PowerShell Gallery. PSWindowsUpdate позволяет администраторам удаленно проверять, устанавливать, удалять и скрывать обновления на рабочих станциях и серверах Windows. Модуль PSWindowsUpdate особо ценен при использовании для управления обновлениями в Core редакциях Windows Server (в которых отсутствуют графический интерфейс), а также при настройке образа Windows в режиме аудита.

Установка модуля управления обновлениями PSWindowsUpdate

Если вы используете Windows 10/11 или Windows Server 2022/2019/2016, вы можете установить (обновить) модуль PSWindowsUpdate из онлайн репозитория через менеджер пакетов PackageManagement всего одной командой:

Install-Module -Name PSWindowsUpdate

После окончания установки нужно проверить наличие пакета:

Get-Package -Name PSWindowsUpdate

Для установки модуля нужно использовать для подключения протокол TLS 1.2. Включите его:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Если у вас установлена более старая версия Windows (Windows 7/8.1/ Windows Server 2008 R2/ 2012 R2) или отсутствует прямой доступ в Интернет, вы можете установить модуль PSWindowsUpdate вручную (см. полную инструкцию по офлайн установке модулей PowerShell).

  1. Скачайте модуль PSWindowsUpdate на любой онлайн компьютер: Save-Module –Name PSWindowsUpdate –Path C:\ps\ ;
  2. Скопируйте модуль на целевой компьютер, и поместите его в каталог %WINDIR%\System32\WindowsPowerShell\v1.0\Modules (при постоянном использовании модуля это лучший вариант);
  3. Разрешите выполнение PowerShell скриптов: Set-ExecutionPolicy –ExecutionPolicy RemoteSigned -force
  4. Теперь вы можете импортировать модуль в свою сессию PowerShell: Import-Module PSWindowsUpdate

После установки модуля PSWindowsUpdate на своем компьютере вы можете удаленно установить его на другие компьютеры или сервера с помощью командлета Update-WUModule. Например, чтобы скопировать PSWindowsUpdate модуль с вашего компьютера на два удаленных сервера, выполните команды (нужен доступ к удаленным серверам по протоколу WinRM):

$Targets = «Server1», «Server2»
Update-WUModule -ComputerName $Targets -local

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

Save-Module -Name PSWindowsUpdate –Path \\fs01\ps\

Обзор команд модуля PSWindowsUpdate

Список доступных командлетов модуля можно вывести так:

get-command -module PSWindowsUpdate

Вкратце опишем назначение команд модуля:

  • Clear-WUJob – использовать Get-WUJob для вызова задания WUJob в планировщике;
  • Download-WindowsUpdate (алиас для Get-WindowsUpdate –Download) — получить список обновлений и скачать их;
  • Get-WUInstall, Install-WindowsUpdate (алиас для Get-WindowsUpdate –Install) – установить обвновления;
  • Hide-WindowsUpdate (алиас для Get-WindowsUpdate -Hide:$false) – скрыть обновление;
  • Uninstall-WindowsUpdate -удалить обновление с помощью Remove-WindowsUpdate;
  • Add-WUServiceManager – регистрация сервера обновления (Windows Update Service Manager) на компьютере;
  • Enable-WURemoting — включить правила Windows Defender файервола, разрешающие удаленное использование командлета PSWindowsUpdate;
  • Get-WindowsUpdate (Get-WUList) — выводит список обновлений, соответствующим указанным критериям, позволяет найти и установить нужное обновление. Это основной командлет модуля PSWindowsUpdate. Позволяет скачать и установить обновления с сервера WSUS или Microsoft Update. Позволяет выбрать категории обновлений, конкретные обновления и указать правила перезагрузки компьютера при установке обновлений;
  • Get-WUApiVersion – получить версию агента Windows Update Agent на компьютере;
  • Get-WUHistory – вывести список установленных обновлений (история обновлений);
  • Get-WUInstallerStatus — проверка состояния службы Windows Installer;
  • Get-WUJob – запуска заданий обновления WUJob в Task Scheduler;
  • Get-WULastResults — даты последнего поиска и установки обновлений (LastSearchSuccessDate и LastInstallationSuccessDate);
  • Get-WURebootStatus — позволяет проверить, нужна ли перезагрузка для применения конкретного обновления;
  • Get-WUServiceManager – вывод источников обновлений;
  • Get-WUSettings – получить настройки клиента Windows Update;
  • Invoke-WUJob – удаленное вызов заданий WUJobs в Task Schduler для немедленного выполнения заданий PSWindowsUpdate.
  • Remove-WindowsUpdate – удалить обновление;
  • Remove-WUServiceManager – отключить Windows Update Service Manager;
  • Set-PSWUSettings – сохранить настройки модуля PSWindowsUpdate в XML файл;
  • Set-WUSettings – настройка параметров клиента Windows Update;
  • Update-WUModule – обновить модуль PSWindowsUpdate (можно обновить модуль на удаленном компьютере, скопировав его с текущего, или обновить из PSGallery);
  • Reset-WUComponents – позволяет сбросить настройка агента Windows Update на компьютере к настройкам по-умолчанию.

Чтобы проверить текущие настройки клиента Windows Update, выполните команду:

В данном примере клиент Windows Update на компьютере настроен с помощью GPO на получение обновлений с локального сервера WSUS.

Команда Reset-WUComponents –Verbose позволяет сбросить все настройки агента Windows Update, перерегистрировать библиотеки и восстановить исходное состояние службы wususerv.

Управление обновлениями Windows на удаленных компьютерах через PowerShell

Практически все командлеты модуля PSWindowsUpdate позволяют управлять установкой обновлений на удаленных компьютерах. Для этого используется атрибут -Computername Host1, Host2, Host3 . На удаленных компьютерах должен быть включен и настроен WinRM (вручную или через GPO).

Установите модуль PSWindowsUpdate на удаленных компьютерах и разрешите в файерволе доступ по динамическим RPC портам к процессу dllhost.exe. Можно использовать Invoke-Command для настройки модуля PSWindowsUpdate на удаленных компьютерах:

Invoke-Command -ComputerName $computer -ScriptBlock
Invoke-Command -ComputerName $computer -ScriptBlock

Модуль PSWindowsUpdate можно использовать для удаленного управлений обновлениями Windows как на компьютерах в домене AD, так и в рабочей группе (потребует определенной настройки PowerShell Remoting)

Для удаленного управления обновлениями компьютерах, нужно добавить имена компьютеров доверенных хостов winrm, или настроить удаленное управление PSRemoting через WinRM HTTPS:

Или с помощью PowerShell:
Set-Item wsman:\localhost\client\TrustedHosts -Value wsk-w10BO1 -Force

Получить список доступных обновлений Windows из PowerShell

Вывести список обновлений, доступных для данного компьютера на сервере обновлений можно с помощью команд Get-WindowsUpdate или Get-WUList.

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

Get-WUList –ComputerName server2

Вы можете проверить, откуда должна получать обновления ваша ОС Windows. Выполните команду:

Как вы видите, компьютер настроен на получение обновлений с локального сервера WSUS (Windows Server Update Service = True). В этом случае вы должны увидеть список обновлений, одобренных для вашего компьютера на WSUS.

Если вы хотите просканировать ваш компьютер на серверах Microsoft Update (кроме обновлений Windows на этих серверах содержатся обновления Office и других продуктов) в Интернете, выполните команду:

Вы получаете предупреждение:

Чтобы разрешить сканирование на Microsoft Update, выполните команду:

Add-WUServiceManager -ServiceID «7971f918-a847-4430-9279-4a52d1efe18d» -AddServiceFlag 7

Теперь можете выполнить сканирование на Microsoft Update. Как вы видите, в данном случае были найдены дополнительные обновления для Microsoft Visual C++ 2008 и Microsoft Silverlight.

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

Чтобы убрать определенные продукты или конкретные KB из списка обновлений, которые получает ваш компьютер, вы их можете исключить по:

  • Категории (-NotCategory);
  • Названию (-NotTitle);
  • Номеру обновления (-NotKBArticleID).

Например, исключим из списка обновления драйверов, OneDrive и одну конкретную KB:

Get-WUlist -NotCategory «Drivers» -NotTitle OneDrive -NotKBArticleID KB4533002

Установка обновлений Windows с помощью Install-WindowsUpdate

Чтобы автоматически загрузить и установить все доступные обновления для вашей версии Windows с серверов Windows Update (вместо локального WSUS), выполните:

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Ключ AcceptAll включает одобрение установки для всех пакетов, а AutoReboot разрешает автоматическую перезагрузку Windows после установки обновлений.

Также можно использовать следующе параметры:

  • IgnoreReboot – запретить автоматическую перезагрузку;
  • ScheduleReboot – задать точное время перезагрузки компьютера.

Можете сохранить историю установки обновлений в лог файл (можно использовать вместо WindowsUpdate.log).

Install-WindowsUpdate -AcceptAll -Install -AutoReboot | Out-File «c:\$(get-date -f yyyy-MM-dd)-WindowsUpdate.log» -force

Можно установить только конкретные обновления по номерам KB:

Get-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Install

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

Install-WindowsUpdate -NotCategory «Drivers» -NotTitle OneDrive -NotKBArticleID KB4011670 -AcceptAll -IgnoreReboot

Модуль позволяет удаленно запустить установку обновлений сразу на нескольких компьютерах или серверах (на компьютерах должен присутствовать модуль PSWindowsUpdate). Это особенно удобно, так как позволяет администратору не заходить вручную на все сервера во время плановой установки обновлений. Следующая команда установит все доступные обновление на трех удаленных серверах:

ServerNames = “server1, server2, server3”
Invoke-WUJob -ComputerName $ServerNames -Script -RunNow -Confirm:$false -Verbose -ErrorAction Ignore

Командлет Invoke-WUJob (ранее командлет назывался Invoke-WUInstall) создаст на удаленном компьютере задание планировщика, запускаемое от SYSTEM. Можно указать точное время для установки обновлений Windows:

Можно установить обновления на удаленном компьютере и отправить email отчет администратору:

Install-WindowsUpdate -ComputerName server1 -MicrosoftUpdate -AcceptAll — IgnoreReboot -SendReport –PSWUSettings @ -Verbose

Проверить статус задания установки обновления можно с помощью Get-WUJob:

Get-WUJob -ComputerName $ServerNames

Если команда вернет пустой список, значит задача установки на всех компьютерах выполнена.

Просмотр истории установленных обновлений Windows (Get-WUHistory)

С помощью команды Get-WUHistory вы можете получить список обновлений, установленных на компьютере ранее автоматически или вручную.

Можно получить информацию о дате установки конкретного обновления:

Get-WUHistory| Where-Object <$_.Title -match "KB4517389">| Select-Object *|ft

Чтобы получить информацию об наличии установленного обновления на нескольких удаленных компьютерах, можно воспользоваться таким кодом:

«server1″,»server2» | Get-WUHistory| Where-Object <$_.Title -match "KB4011634">| Select-Object *|ft

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

Get-WURebootStatus –ComputerName WKS80JT

Проверьте значение атрибутов RebootRequired и RebootScheduled .

Получить дату последней установки обновлений на всех компьютерах в домене можно с помощью командлета Get-ADComputer из модуля AD PowerShell:

$Computers=Get-ADComputer -Filter
Foreach ($Computer in $Computers)
<
Get-WULastResults -ComputerName $Computer.Name|select ComputerName, LastSearchSuccessDate, LastInstallationSuccessDate
>

По аналогии можно найти компьютеры, которые не устаналивали обновления более 40 дней и вывести результат в графическую таблицу Out-GridView:

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

Для корректного удаления обновлений используется командлет Remove-WindowsUpdate. Вам достаточно указать номер KB в качестве аргумента параметра KBArticleID. Чтобы отложить автоматическую перезагрузку компьютера можно добавить ключ –NoRestart :

Remove-WindowsUpdate -KBArticleID KB4011634 -NoRestart

Как скрыть ненужные обновления Windows с помощью PowerShell (Hide-WindowsUpdate)?

Вы можете скрыть определенные обновления, чтобы они никогда не устанавливались службой обновлений Windows Update на вашем компьютер (чаще всего скрывают обновления драйверов). Например, чтобы скрыть обновления KB2538243 и KB4524570, выполните такие команды:

$HideList = «KB2538243», «KB4524570»
Get-WindowsUpdate -KBArticleID $HideList -Hide

или используйте alias:

Hide-WindowsUpdate -KBArticleID $HideList -Verbose

Теперь при следующем сканировании обновлений с помощью команды Get-WUlist скрытые обновления не будут отображаться в списке доступных для установки патчей.

Вывести список обновлений, которые скрыты на данном компьютере можно так:

Обратите внимание, что в колонке Status у скрытых обновлений появился атрибут H (Hidden).

Отменить скрытие некоторых обновлений можно так:

Get-WindowsUpdate -KBArticleID $HideList -WithHidden -Hide:$false

Show-WindowsUpdate -KBArticleID $HideList

Для тех, кто себя некомфортно чувствует в консоли PowerShell, для управления обновлениями Windows 10 могу порекомендовать графическую утилиту Windows Update MiniTool.

Источник

Adblock
detector