Управление Windows Update с помощью PowerShell

Модуль PSWindowsUpdate, автором которого является Michal Gajda, позволяет управлять параметрами обновления ОС Windows на любом компьютере под управлением PowerShell 2.0 или выше.

PSWindowsUpdate даёт возможность администраторам предприятий проверять и устанавливать обновления на удаленных рабочих станциях и серверах. Он особенно удобен в использовании для установки обновлений на Windows Server Core, у которых нет GUI, а также во время настройки Windows в режиме аудита.

Загрузить модуль можно на сайте Microsoft TechNet.

После загрузки, извлекаем содержимое файла в папку C:\Windows\System32\WindowsPowerShell\v1.0\Modules\.

Если на данном этапе появляется предупреждение User Access Control, выбираем «Продолжить».

Для извлечения файлов, необходимо запустить консоль PowerShell с правами администратора и выполнить команду, которая разрешит выполнять системные сценарии:

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass

Данная команда дает возможность выполнять нам неподписанные скрипты PowerShell, но при этом несколько снижает уровень безопасности (т.к. в случае ошибки администратора может быть запущен скрипт, способный навредить системе).

В случае, если на данном этапе возникнет ошибка:

Set-ItemProperty : Не удается найти путь "HKLM:\Software\Policies\Microsoft\Windows\PowerShell", так как он не существу ет. строка:1 знак:1 + Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\Powe ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (HKLM:\Software\...dows\PowerShell:String) [Set-ItemProperty], ItemNotFo undException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand

…необходимо зайти в gpedit.msc (Нажать сочетание клавиш Windows + R, откроется окно выполнить, ввести gpedit.msc и нажать Enter), перейти в раздел Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Windows PowerShell и переключить состояние политики «Включить выполнение сценариев» в режим «Включено».

После изменения настроек политики, необходимо перезапустить консоль PowerShell, повторно выполнить команду, разрешающую сценарии, и проверить, повторится ли ошибка. Если выполнение завершится без ошибок, то можно проверить состояние политики с помощью команды:

Get-ExecutionPolicy -List

Теперь, если всё прошло успешно, вывод PowerShell будет примерно следующим:

Затем, импортируем модуль PSWindowsUpdate и запрашиваем список доступных команд:

Import-Module PSWindowsUpdate Get-Command –module PSWindowsUpdate

Одним из наиболее значимых командлетов является Get-WUInstall, который предназначен для загрузки и установки обновлений. Для просмотра обновлений, доступных для установки из MicrosoftUpdate, выполним команду

Get-WUinstall -MicrosoftUpdate -ListOnly

Результат выполнения:

Точно такой же результат можно получить с помощью команды Get-WUList –MicrosoftUpdate:

Для установки с подтверждением вручную для каждого обновления можно использовать команду Get-WUInstall –MicrosoftUpdate:


Прочие параметры PSWindowsUpdate

Рассмотрим некоторые параметры, способные упростить жизнь системному администратору:

  1. Установка всех доступных обновлений из MicrosoftUpdate с последующей перезагрузкой:
    Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
  2. Запрет установки отдельного обновления из MicrosoftUpdate по названию и номеру KB:
    Hide-WUUpdate –Title "Название*" –KBArticleID "KB1234567" –MicrosoftUpdate –Confirm:$false

    и отмена запрета в случае необходимости:

    Hide-WUUpdate –Title "Название*" –KBArticleID "KB1234567" –MicrosoftUpdate –HideStatus:$false –Confirm:$false

Скрипт совместим со всеми операционными системами, начиная с Windows Vista и заканчивая Windows 10. Работоспособность сценария пока не проверялась на Windows Server 2016. Операционная система Windows Server 2003 не поддерживается.


При необходимости, для задания параметру ExecutionPolicy значения Restricted (настройки по умолчанию), можно воспользоваться следующей командой:

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value Restricted

Добавить комментарий

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