В 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.
Удачи.
Слава Украине!
Get-HotFix -ComputerName .
ReplyDelete