Главная

Friday, 11 November 2022

Используем PSWindowsUpdate.

Всем привет.

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

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

Собственно вы его можете установить на хост при наличии интернета:

Install-Module -Name PSWindowsUpdate

Если интернет недоступен то просто скопировать с другого хоста папку PSWindowsUpdate куда он был установлен ранее и выполнить импорт:

Import-Module 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 на компьютере к настройкам по-умолчанию.


Cобственно устанавливаются обновления одной командой:

Import-Module PSWindowsUpdate

$Logfile = $env:COMPUTERNAME + "_auto_update.log" 

Get-WindowsUpdate -AcceptAll -Download -Install -AutoReboot | Out-File $Logfile -force -Append -Encoding utf8

Все остальное можно использовать для мониторинга самого процесса обновления. 

Важно: указать источник обновлений в реестре (ваш сервер WSUS) вы должны до использования PSWindowsUpdate.

Удачи.

Слава Украине!


1 comment:

А что вы думаете по этому поводу?