
Одной из основных задач администратора WSUS (службы обновления Windows Server Update Services) является управление утверждением обновлений для установки на компьютеры и серверы Windows. В этой статье мы покажем вам, как вручную утверждать обновления, настраивать правила автоматического утверждения и отклонять назначенные обновления с помощью консоли WSUS и PowerShell.
- Настройка целевых групп компьютеров в WSUS
- Как вручную утверждать и развертывать обновления в WSUS?
- Настройка правил автоматического утверждения обновлений в WSUS
- Как отклонять и удалять обновления на сервере WSUS?
- Утверждение обновлений WSUS с помощью PowerShell
- Как скопировать утвержденные обновления между целевыми группами WSUS?
Настройка групп целевых компьютеров в WSUS
Служба WSUS на Windows Server после установки и настройки начинает регулярно загружать обновления для выбранных продуктов с серверов Microsoft Update. Прежде чем компьютеры в вашей сети смогут загружать и устанавливать новые обновления, они должны быть одобрены (или отклонены) администратором WSUS.
Чтобы организовать тестирование и установку обновлений на компьютерах и серверах домена, администратор WSUS должен создать целевые группы компьютеров. В зависимости от бизнес-задач, типов рабочих станций пользователей и серверов можно создавать различные группы компьютеров. В общем случае в консоли WSUS в разделе Компьютеры -> Все компьютеры Раздел, имеет смысл создать следующие группы компьютеров:
- Test_Srv_WSUS — группа тестовых серверов (некритичные для бизнеса серверы или выделенные серверы с тестовой средой, идентичной рабочей);
- Test_Wks_WSUS — тестовые рабочие станции;
- Prod_Srv_WSUS — производственные серверы Windows;
- Prod_Wks_WSUS — все рабочие станции пользователей.
Компьютеры и серверы можно добавить в группы WSUS вручную, а можно назначить компьютеры и серверы в группы WSUS с помощью команды Включение таргетинга на стороне клиента Параметр групповой политики.
После создания групп WSUS можно утверждать обновления для них. Существует два способа утверждения обновлений для установки на компьютеры: вручную или автоматически.
Как вручную утверждать и устанавливать обновления в WSUS?
Откройте консоль WSUS (Службы обновления) и выберите пункт Обновления раздел. В нем отображается сводный отчет обо всех доступных обновлениях. По умолчанию имеется 4 подраздела: Все обновления, Критические обновления, Обновления системы безопасности, и Обновления WSUS. Вы можете одобрить установку конкретного обновления, найдя его в одном из этих разделов (можно искать его по имени KB в консоли поиска обновлений или сортировать обновления по дате выпуска).
В консоли WSUS можно применять различные фильтры. Отображение списка обновлений, которые еще не утверждены (используйте фильтр: Approval=Unapproved
, Status=Any
). Найдите нужное обновление, щелкните его правой кнопкой мыши и выберите Одобрить из меню.
Выберите группу компьютеров WSUS, для которой необходимо одобрить установку обновлений (например, Test_Srv_WSUS). Выберите Одобрить установку. Вы можете одобрить обновление сразу для всех групп компьютеров, выбрав Все компьютеры, или для каждой группы в отдельности. Например, вы можете одобрить установку обновления на тестовой группе, а через 4-7 дней одобрить ее на всех компьютерах, если не возникло никаких проблем.
Появится окно с результатами одобрения обновления. Если обновление было успешно одобрено, появится сообщение Результат: Успех появится на экране. Закройте это окно.
Как вы можете видеть, именно так вручную утверждается конкретное обновление. Это занимает довольно много времени, поскольку приходится утверждать каждое обновление по отдельности. Если вы не хотите вручную утверждать обновления, вы можете создать автоматическое утверждение обновлений.
Настройка правил автоматического утверждения обновлений в WSUS
Автоматическое утверждение позволяет утверждать новые обновления, появившиеся на сервере WSUS, и назначать их для установки на целевые компьютеры автоматически, без вмешательства администратора. Автоматическое утверждение обновлений WSUS основано на правилах утверждения.
В консоли управления WSUS перейдите в раздел Параметры и выберите Автоматические утверждения.
В следующем окне есть только одно правило с именем Правило автоматического утверждения по умолчанию (по умолчанию оно отключено) на Правила обновления вкладка.
Чтобы создать новое правило, нажмите Новое правило.
Правило утверждения состоит из 3 шагов. Необходимо выбрать свойства обновления, целевую группу компьютеров WSUS, на которые нужно установить обновление, и имя правила.
Если вы щелкните синюю ссылку, появится соответствующее окно свойств.
Например, можно включить автоматическое утверждение обновлений безопасности для тестовых серверов. Для этого выберите Критические обновления, Обновления системы безопасности, Обновления определений по ссылке Выберите Обновить классификации раздел (снимите флажки со всех остальных параметров). Затем выберите группу WSUS с именем Test_Srv_WSUS в разделе Утвердить обновление для диалог
The Установите крайний срок для утверждения опция позволяет указать, должно ли это обновление принудительно устанавливаться на целевые компьютеры (независимо от настроек Windows Update). В этом случае компьютеры могут быть автоматически перезагружены, независимо от того, использована ли опция GPO ‘Запрет автоперезагрузки с вошедшими в систему пользователями для запланированных автоматических установок обновлений‘ включено.
На Продвинутый На вкладке можно выбрать, следует ли автоматически утверждать обновления для самой WSUS и дополнительно утверждать обновления, которые были изменены Microsoft. Рекомендуется установить все флажки на этой вкладке.
Теперь, когда ваш сервер WSUS загрузит новые обновления в следующий второй вторник месяца (или если вы импортируете их вручную), они будут одобрены и автоматически установлены на тестовую группу компьютеров.
По умолчанию клиенты Window сканируют сервер WSUS на наличие новых обновлений каждые 22 часа. Чтобы критически важные устройства получали новые обновления как можно быстрее, можно увеличить частоту синхронизации с помощью параметра Частота автоматического обнаружения обновлений Параметр групповой политики (см. случай Ошибка WSUS: Превышено максимальное количество обходов сервера). Можно также проверять наличие обновлений вручную с помощью модуля PSWindowsUpdate PowerShell.
После установки и тестирования обновлений на группах тестовых компьютеров и проверки отсутствия проблем (обычно тестирование занимает 3-6 дней) можно утвердить новые обновления на рабочих компьютерах.
Как отклонять и удалять обновления на сервере WSUS?
Если одно из одобренных обновлений вызвало какие-либо проблемы на компьютерах или серверах, администратор WSUS может отклонить его. Для этого найдите обновление в консоли WSUS, щелкните его правой кнопкой мыши и выберите Отклонить.
Затем выберите группу WSUS, для которой нужно отменить установку, и выберите Одобрено для удаления. Через некоторое время обновление будет удалено на клиентах WSUS.
Утверждение обновлений WSUS с помощью PowerShell
Вы можете использовать PowerShell для управления утверждением обновлений WSUS. Чтобы подключиться к узлу WSUS из консоли PowerShell, можно использовать следующий код:
$WsusServerFqdn='mont-wsus.woshub.com'
[void][reflection.assembly]::LoadWithPartialName( «Microsoft.UpdateServices.Administration)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer( $WsusServerFqdn, $False, '8530')
Теперь вы можете выполнять различные операции на сервере WSUS. Например, запустить синхронизацию обновлений:
$wsus.GetSubscription().StartSynchronization();
Список групп компьютеров WSUS:
$wsus.GetComputerTargetGroups()
Выберите определенную группу компьютеров:
$group = $wsus.GetComputerTargetGroups() | ? {$_.Name -eq "Test_WKS_WSUS"}
Вы можете использовать метод GetUpdates, чтобы получить список последних обновлений. Например, нужно выбрать последние обновления безопасности Windows и Office в определенном временном диапазоне:
$updates = $wsus.GetUpdates() | ? {($_.CreationDate -gt "6/1/2022" -and $_.CreationDate -lt "7/1/2022" -and $_.Title -notmatch ".net Framework" -and $_.PublicationState -ne "Expired" ) -and ($_.ProductFamilyTitles -eq "Windows" -or $_.ProductFamilyTitles -eq "Office") -and ($_.UpdateClassificationTitle -eq "Security Updates" -or $_.UpdateClassificationTitle -eq "Critical Updates")}
Теперь можно утвердить выбранные обновления для установки на указанную группу WSUS:
foreach ($update in $updates)
{
$update.Approve("Install",$group)
}
Вы также можете использовать UpdateServices
модуль для управления WSUS.
Например, вы можете использовать следующий сценарий PowerShell для утверждения последних обновлений безопасности для целевой группы:
$data = (Get-Date).adddays(-30)
$wsus= Get-WSUSServer -Name wsusservername -Port 8530
Get-WsusUpdate -UpdateServer $wsus -Approval Unapproved -Status Needed
Get-WsusUpdate -Classification All -Approval Unapproved | Where-Object { ($_.Update.CreationDate -lt $data) -and ($_.update.isdeclined -ne $true) and {$_.update.title -ilike "*Windows*" -or $_.update.title -ilike "*Office*"} | | Approve-WsusUpdate -Action Install -TargetGroupName "Test_WKS_WSUS"
Как скопировать утвержденные обновления между целевыми группами WSUS?
К сожалению, вы не сможете скопировать одобренные обновления из одной группы компьютеров WSUS в другую с помощью консоли WSUS. Вы можете искать новые обновления по одному и вручную утверждать их для установки на рабочие группы серверов и компьютеров. Это отнимает много времени.
Я написал простой сценарий PowerShell, который собирает список одобренных обновлений для тестовой группы и автоматически одобряет те же обновления для группы производственных компьютеров. Я запускаю сценарий через 7 дней после установки обновлений на тестовые группы.
$WsusServerFqdn='mont-wsus.woshub.com'
$WsusSourceGroup = 'Workstation_Test'
$WsusTargetGroup = 'WorkstationProduction'
[void][reflection.assembly]::LoadWithPartialName( “Microsoft.UpdateServices.Administration”)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer( $WsusServerFqdn, $False, ‘8530’)
$Groups = $wsus.GetComputerTargetGroups()
$WsusSourceGroupObj = $Groups | Where {$_.Name -eq $WsusSourceGroup}
$WsusTargetGroupObj = $Groups | Where {$_.Name -eq $WsusTargetGroup}
$Updates = $wsus.GetUpdates()
$i = 0
ForEach ($Update in $Updates)
{
if ($Update.GetUpdateApprovals($WsusSourceGroupObj).Count -ne 0 -and $Update.GetUpdateApprovals($WsusTargetGroupObj).Count -eq 0)
{
$i ++
Write-Host (“Approving ” + $Update.Title)
$Update.Approve(‘Install’,$WsusTargetGroupObj) | Out-Null
}
}
Write-Output (“Approved {0} updates for target group {1}” -f $i, $WsusTargetGroup)
Этот сценарий PowerShell перебирает все одобренные обновления в исходной группе WSUS и утверждает установку, если обновление не одобрено в целевой группе. Этот пример регистрирует одобренные обновления непосредственно в консоли PowerShell. Журнал сценария PowerShell можно вывести в текстовый файл.