Windows 10/11 PSWindowsUpdate: установка и удаление обновлений Windows

Актуально для Windows 10 и 11

akok

Команда форума
Администратор
Ассоциация VN
Сообщения
25,496
Решения
10
Реакции
13,914
PSWindowsUpdate — это модуль PowerShell, который позволяет управлять обновлениями Windows через командную строку. С его помощью можно искать, загружать и устанавливать обновления, а также удалять ненужные обновления.

Для чего может понадобиться модуль:​

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

Системные требования​

Для работы модуля понадобится PowerShell минимальной версии 5.1.0.0, то есть, начиная с версии Windows 10 Anniversary Update (1607) и Windows Server 2016.

В рамках исследования удалось заставить работать PSWindowsUpdate на Windows 7 SP1, установив Windows Management Framework 5.1 и разобраться с несколькими ошибками, но это уже другая история.
Работа модуля на Windows 7


Установка​

1. Запустите PowerShell или Терминал от имени администратора.
2. Установите модуль PSWindowsUpdate.
PowerShell:
Install-Module -Name PSWindowsUpdate -Force
Согласитесь с условиями использования репозитория NuGet.
1729425427275.webp


3. Измените политику выполнения скриптов PowerShell, а именно разрешите запуск локально созданных скриптов без подписи, но требуйте цифровой подписи для скриптов, загруженных из Интернета или удалённых источников.
PowerShell:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force

4. Импортируйте модуль в сессию PowerShell, это позволит использовать модуль без перезагрузки PowerShell.
Код:
Import-Module PSWindowsUpdate

Работа с модулем PSWindowsUpdate.

Поиск обновлений​

Для проверки доступных обновлений используйте команду
PowerShell:
Get-WindowsUpdate

1729767362498.webp


Или запустить поиск обновлений по определенной категории обновлений
PowerShell:
Get-WindowsUpdate -Category "Security Update"
1730029731627.webp

Установка обновлений​

PowerShell:
Install-WindowsUpdate -AcceptAll -AutoReboot
-AcceptAll - параметр, который автоматически подтверждает установку всех найденных обновлений без запроса подтверждения у пользователя.
-AutoReboot - параметр, который позволяет автоматически перезапустить операционную систему (ОС).

Также можно задать следующие параметры:
-IgnoreReboot – запретить автоматическую перезагрузку.
-ScheduleReboot – задать точное время перезагрузки компьютера.

1729768731429.webp



Установка только выбранных обновлений​

Для установки отдельных обновлений, а не всех доступных, можно использовать следующие команды
1. Если требуется установить одно обновление
PowerShell:
Install-WindowsUpdate -KBArticleID "KB5044273" -AcceptAll -AutoReboot

2. Если требуется установить несколько обновлений, то перечислите их KB через запятую
PowerShell:
Install-WindowsUpdate -KBArticleID "KB5044273", "KB2267602" -AcceptAll -AutoReboot
1730021511992.webp


3. Если выбирать отдельные обновления неудобно, то можно установить обновления, относящиеся к определенной категории обновлений, например:

Обновления определений (Definition Update)
PowerShell:
Install-WindowsUpdate -Category "Definition Update" -AcceptAll
1730025023597.webp


Накопительные обновления (Update Rollup)
PowerShell:
Install-WindowsUpdate -Category "Update Rollup" -AcceptAll
1730023289664.webp


Обновления безопасности (Security Update)
PowerShell:
Install-WindowsUpdate -Category "Security Update" -AcceptAll
1730023952001.webp


4. Можно установить обновления по имени пакета, например, установить пакеты содержащие имя Defender:
PowerShell:
Install-WindowsUpdate -Title "Defender" -AcceptAll
1730025366024.webp


Как установить обновления, исключив некоторые из них по KB или категории​

Также можно установить все обновления, исключив некоторые из них по следующим критериям:
  • Категории (-NotCategory);
  • Названию (-NotTitle);
  • Номеру обновления (-NotKBArticleID).

Исключаем обновление с идентификатором KB5044273:
PowerShell:
Install-WindowsUpdate -NotKBArticleID "KB5044273" -AcceptAll

Исключаем все обновления из категории "Drivers":
PowerShell:
Install-WindowsUpdate -NotCategory "Drivers" -AcceptAll

Исключаем обновление с заголовком, содержащим "Office":
PowerShell:
Install-WindowsUpdate -NotTitle "Office" -AcceptAll

Удаление установленных обновлений при помощи модуля PSWindowsUpdate​

Некоторые обновления невозможно удалить.
Для удаления установленных обновлений нам понадобится следующие шаги:
1. Список установленных обновлений:
PowerShell:
Get-WUHistory | Where-Object { $_.Result -eq "Succeeded" } |
Select-Object ComputerName,
              OperationName,
              Result,
              Date,
              @{Name='KB'; Expression={($_.Title -replace '.*(KB\d+).*', '$1')}},
              Title |
Format-Table -AutoSize
1730028531128.webp


2. Для удаления конкретного KB воспользуйтесь командлетом
PowerShell:
Remove-WindowsUpdate -KBArticleID "KB5045991"

Или воспользуйтесь данной инструкцией

Полезные заметки по использованию PSWindowsUpdate​

Как получить список доступных командлетов​

PowerShell:
Get-command -module PSWindowsUpdate
КомандаОписание
Get-WindowsUpdateОсновной командлет модуля. Список, загрузка, установка или скрытие обновлений, соответствующих заданным критериям, а также установка правил перезагрузки при установке обновлений.
Remove-WindowsUpdateУдаляет обновление.
Add-WUServiceManagerРегистрирует новый менеджер службы API обновлений Windows.
Get-WUHistoryПоказывает список установленных обновлений.
Get-WUSettingsПолучает настройки клиента обновлений Windows.
Get-WUInstallerStatusПолучает статус установщика обновлений Windows, занят он или нет.
Enable-WURemotingВключает правила брандмауэра для удаленного доступа к PSWindowsUpdate.
Invoke-WUJobВызывает действия PSWindowsUpdate удалённо.
Clear-WUJobОчищает WUJob в планировщике задач.
Get-WUInstall / Install-WindowsUpdateУстанавливает обновления Windows.
Uninstall-WindowsUpdateУдаляет обновления с помощью команды Remove-WindowsUpdate.
Get-WULastResultsПолучает даты последнего поиска и установки обновлений.
Get-WURebootStatusПроверяет, требуется ли перезагрузка для применения обновления.
Remove-WUServiceManagerОтключает менеджер службы обновлений Windows.
Set-PSWUSettingsСохраняет настройки модуля PSWindowsUpdate в XML файл.
Set-WUSettingsНастраивает параметры клиента обновлений Windows.
Reset-WUComponentsСбрасывает агент обновлений Windows до состояния по умолчанию.

Как проверить текущие настройки клиента Windows Update, а также откуда Windows получает обновление.​

PowerShell:
Get-WUSettings

PowerShell:
Get-WUServiceManager
1729776739799.webp


Microsoft поддерживает следующие категории обновлений:​

  • Критические обновления (Critical Update)
  • Обновления безопасности (Security Update)
  • Обновления определений (Definition Update)
  • Накопительные обновления (Update Rollup)
  • Пакеты обслуживания (Service Pack)
  • Инструменты (Tool)
  • Пакеты возможностей (Feature Pack)
  • Обновления (Update).

Ссылки по теме:​

 
Последнее редактирование:
Назад
Сверху Снизу