Патч-управление – это важный аспект администрирования ИТ-инфраструктуры, так же как резервное копирование рабочих станций Windows. С помощью правильного решения по управлению патчами вы можете улучшить свою систему, тестируя или устанавливая последние обновления программного обеспечения и патчи. Патчи рассматриваются как временные исправления для существующих проблем между полноценными выпусками программного обеспечения. Если управление патчами выполняется эффективно, вы можете оперативно реагировать на уязвимости вашей системы и уменьшить любые потенциальные угрозы.
Windows предлагает свое собственное решение для управления патчами – Windows Update. Однако многие администраторы ИТ по-прежнему считают процесс управления патчами слишком сложным и затратным по времени. Более того, обновления системы могут повлиять на ваш рабочий процесс, так как они часто запускаются автоматически в рабочее время. С помощью командлетов PowerShell вы можете автоматизировать обновления Windows, экономя усилия и время.
В этом блоге описано, как можно использовать PowerShell для установки обновлений Windows, а также приведен список полезных команд PowerShell для автоматизации процесса управления патчами. Патчи могут снизить риск ошибок или уязвимостей, влияющих на вашу систему.
Что такое PSWindowsUpdate?
Чтобы сделать процесс управления патчами Windows гладким и простым, вы можете использовать модуль PSWindowsUpdate, разработанный Михалом Гайдой. Этот модуль общедоступен и может быть загружен бесплатно с PowerShell Gallery. Основным требованием является то, что компьютер должен работать под управлением версий ОС Windows, начиная с Vista или Windows Server 2008. Кроме того, вам потребуется установить PowerShell 2.0 или более позднюю версию.
С помощью PSWindowsUpdate вы можете определить, доступны ли какие-либо обновления Windows для вашего компьютера. Более того, этот модуль позволяет централизованно управлять обновлениями Windows на различных серверах и рабочих станциях Windows. Таким образом, вы можете удаленно контролировать, какие обновления устанавливаются, удаляются или скрываются.
Как автоматизировать обновления Windows с помощью PowerShell
Ниже мы опишем процесс конфигурации PSWindowsUpdate, включая загрузку и установку модуля, а также то, как проверить команды, которые могут помочь вам автоматизировать обновления Windows.
Как установить PSWindowsUpdate
Чтобы эффективно автоматизировать управление патчами Windows, сначала вам нужно установить модуль PSWindowsUpdate на свой компьютер. Для этого откройте повышенную командную строку PowerShell и введите следующую команду:
Install-Module -Name PSWindowsUpdate
После выполнения этой команды вам будет предложено установить указанный модуль из PSGallery. Выберите Да, если хотите продолжить и принять все изменения.
После установки модуля вам необходимо убедиться, что вы можете удаленно получить доступ к другим компьютерам. Таким образом, вы сможете устанавливать обновления Windows на удаленных компьютерах, потратив минимальное время и усилия. Для работы с модулем PSWindowsUpdate с удаленными машинами вам необходимо сохранить модуль на свой компьютер и распространить его через сеть.
В случае, если другие серверы могут импортировать и развертывать этот модуль, вы можете настроить автоматизированное управление обновлениями Windows. Для этого выполните следующую команду:
Save-Module -Name PSWindowsUpdate -Path
Здесь вам нужно определить параметр –Path, указав, где вы хотите сохранить модуль PSWindowsUpdate.
Как использовать PSWindowsUpdate
На следующем этапе вы узнаете, как использовать этот модуль для автоматизации обновлений Windows с помощью команд PowerShell. Это отличное преимущество для администраторов ИТ, которым необходимо выполнять процесс управления обновлениями на машинах с Server Core без графического интерфейса. С помощью этих команд вы можете минимизировать сложность управления и сделать процесс более простым и менее подверженным ошибкам.
Чтобы получить полный список доступных обновлений Windows, выполните следующую команду PowerShell:
Get-WindowsUpdate
Вы должны получить вывод, который видите ниже на своем экране:
Имея эту информацию, вы точно узнаете, какое программное обеспечение или приложение нуждается в обновлении. После этого вы можете установить все обновления, введя следующую команду. Более того, добавив параметр –AutoReboot , вы можете гарантировать, что система автоматически перезагрузится после установки обновления.
Get-WUInstall -AcceptAll –AutoReboot
Если вы не хотите начинать перезагрузку (чтобы не прерывать рабочий процесс), вы можете выполнить следующую команду:
Get-WUInstall -AcceptAll –IgnoreReboot
На экране вы увидите ход процесса управления патчами, а также полный список обновлений и их текущий статус.
После завершения процесса установки вы увидите следующее сообщение в консоли PowerShell: ‘Требуется перезагрузка, но выполните ее вручную’. Таким образом, вам все равно нужно перезагрузить систему, но вы можете сделать это в удобное для вас время.
Если вы хотите загрузить только определенное обновление, вы можете добавить параметр –KBArticleID в команду PowerShell. Не забудьте указать номер статьи KB, чтобы загрузить правильный патч. Например, я хочу установить Windows Malicious Software Removal Tool x64 и Обновление интеллекта безопасности для антивируса Windows Defender. Соответствующая команда PowerShell должна выглядеть следующим образом:
Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll
После выполнения этой команды на моем компьютере будет установлено только два указанных обновления.
Обзор команд PSWindowsUpdate
Если вы задаетесь вопросом, с каким средством PowerShell можно работать с модулем PSWindowsUpdate, вам следует ввести следующую команду и нажать Enter:
Get-Command –module PSWindowsUpdate
Здесь вы можете увидеть полный список команд модуля.
Давайте рассмотрим, как работают некоторые из этих команд.
1. Команда Get-WUHistory позволяет просматривать историю последних обновлений. После выполнения этой команды вы получите подобный вывод на вашем экране.
2. Следующая команда Get-WUInstallerStatus, которая может помочь вам проверить статус службы установщика Windows. Здесь вы можете проверить, работает ли установщик правильно или нет. Вывод для этой операции может выглядеть следующим образом:
3. Запустив команду Get-WURebootStatus, вы можете проверить, нужно ли перезагрузить систему, чтобы определенное обновление было полностью применено.
4. С помощью команды Get-WUServiceManager вы можете проверить источник обновлений Windows.
Как видите, последний столбец демонстрирует источник обновления (например, обновление Windows, DCat Flighting Prod и т. д.).
5. Вы можете скрыть определенные обновления из списка, чтобы не устанавливать их на свой компьютер. Для этого следует запустить команду Hide-WindowsUpdate, где можно указать идентификаторы статей KB, которые вы хотите скрыть. В следующем примере показано, как скрыть обновление KB2267602 из списка:
$HideList = "KB2267602"
Hide-WindowsUpdate -KBArticleID $HideList –Hide
Перед внесением любых изменений вас попросят подтвердить выбор. Введите Y, чтобы скрыть статью KB.
Однако, если вы хотите получить список скрытых обновлений, вы можете выполнить следующую команду.
В столбце Статус вы можете увидеть букву Н , обозначающую, что обновление успешно скрыто. Таким образом, при следующем запуске команды Get-WUInstall выбранное обновление будет автоматически исключено из списка доступных обновлений.
Если вы захотите отменить изменения, вы можете использовать следующую командлету в консоли PowerShell:
Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false
Еще раз вам будет предложено подтвердить изменения, набрав Y.
Как видите, буква Н больше не включена в статус обновления, что означает, что это обновление Windows больше не скрыто и может быть загружено на ваш компьютер.
6. Другой доступный вам вариант конфигурации – удалить установленные обновления на вашем компьютере. Для этого вы можете использовать командлету Remove-WindowsUpdate и ввести идентификатор статьи KB, которую вы хотите удалить с вашего компьютера. Например:
Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot
Добавив параметр –IgnoreReboot, вы гарантируете, что компьютер не будет перезагружаться автоматически. После удаления обновления вы сможете перезагрузить компьютер позже.
Последнее, но не менее важное, вы можете сканировать доступные обновления Windows на удаленном компьютере с помощью командлета Get-WUList.
Get-WUList –ComputerName Server5
Для работы этой командлета вам также нужно установить модуль PSWindowsUpdate на удаленном компьютере. Таким образом, вы можете автоматизировать обновления Windows для нескольких машин из одного интерфейса. С помощью PSWindowsUpdate процесс управления патчами выполняется простым и эффективным способом.
Более того, вы можете уменьшить административную нагрузку, с которой могут столкнуться администраторы IT во время установки патчей.
Заключение
Модуль PSWindowsUpdate был разработан для упрощения процесса управления патчами. Автоматизируя установку обновлений, вы можете быть уверены, что ваша система регулярно обновляется, тем самым минимизируя риск сбоев системы и нарушений безопасности. Патчи в основном разрабатываются для решения проблем или уязвимостей, обнаруженных в программе. Однако регулярное управление патчами не может гарантировать полной защиты всей производственной среды.
Для этого вам необходимо использовать комплексное решение по защите данных, которое предлагает резервное копирование и восстановление сайта для физических, виртуальных и облачных сред. С NAKIVO Backup & Replication вы можете защитить ваши самые важные данные и приложения на нескольких платформах, обеспечить восстановление в любых обстоятельствах и снизить затраты на защиту данных.
Source:
https://www.nakivo.com/blog/automate-windows-updates-using-powershell-short-overview/