Принудительная проверка обновлений Windows Server 2019 через Интернет
Симптомы привязки сервера к недоступному или несинхронизированному WSUS
При попытке выполнить поиск апдейтов в оснастке Центра обновления Windows Server 2019 процесс поиска либо завершается ошибкой с кодами 0x8024401c, 0x8024500c, либо выдает сообщение: «Вашей организацией управляет системный администратор», при этом критические исправления безопасности не приходят месяцами.
| Код события / Ошибка | Где фиксируется | Причина возникновения |
|---|---|---|
| 0x8024401c / 0x8024401f | WindowsUpdate.log | Локальный сервер WSUS (IIS AppPool WsusPool) перегружен или недоступен по порту 8530/8531 |
| 0x8024500c | Параметры Windows Update | Политикой заблокирован доступ к общедоступным серверам Microsoft при недоступном WSUS |
| Обновления не найдены | WUA Handler | Целевой сервер помещен в группу WSUS, для которой администратор не одобрил патчи |
Способы обхода WSUS и принудительного обращения к Microsoft Update
Для разового или экстренного получения обновлений в обход инфраструктуры WSUS используются переопределение реестра или интерфейсы COM API агента Windows Update.
- Обход политики через реестр с сохранением доменных параметров:
Значение
UseWUServer = 0отключает перенаправление на локальный WSUS без вывода сервера из домена:Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "UseWUServer" -Value 0 -Force Restart-Service -Name wuauserv -Force (New-Object -ComObject Microsoft.Update.ServiceManager).AddService2("7971f918-a814-4cb2-9226-5d633fe3600b", 7, "") $Session = New-Object -ComObject Microsoft.Update.Session $Searcher = $Session.CreateUpdateSearcher() $Searcher.ServerSelection = 2 # 2 = Windows Update через интернет $Criteria = "IsInstalled=0 and Type='Software' and IsHidden=0" $Result = $Searcher.Search($Criteria) $Result.Updates | Select-Object Title, KBArticleIDs - Запуск сканирования через встроенную утилиту UsoClient:
usoclient StartInteractiveScan - Автоматическая установка через официальный модуль PSWindowsUpdate:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force Install-Module PSWindowsUpdate -Force Get-WindowsUpdate -WindowsUpdate -AcceptAll -Install -AutoReboot - Возврат привязки к корпоративному WSUS по завершении работ:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "UseWUServer" -Value 1 -Force Restart-Service -Name wuauserv -Force gpupdate /force
Обратите внимание: Если в домене действует политика «Не подключаться к никаким интернет-узлам Центра обновления Windows» (DoNotConnectToWindowsUpdateInternetLocations = 1), перед запуском поиска значение данного ключа в ветке HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate также необходимо временно перевести в 0.
Частые вопросы (FAQ)
Чем отличается UsoClient от устаревшей команды wuauclt /detectnow?
В Windows Server 2016/2019/2022 фоновый механизм обновлений переведен на Universal Session Orchestrator (USO). Ключи wuauclt (/detectnow, /reportnow) признаны устаревшими и игнорируются планировщиком; вместо них используется инструмент usoclient.exe.
Нужно ли перезагружать сервер после изменения параметра UseWUServer?
Полная перезагрузка операционной системы не требуется. Достаточно перезапустить службу Центра обновления командой Restart-Service wuauserv.
Не перезапишет ли групповая политика (GPO) значение в реестре обратно в 1?
При очередном фоновом обновлении политик (по умолчанию каждые 90 минут + случайное смещение) значение вернется в заданное контроллером домена. Поэтому поиск и загрузку обновлений следует запускать сразу после применения команд.
Как сгенерировать читаемый файл журнала Windows Update в Server 2019?
Ввиду перехода на формат трассировки событий (ETW), лог создается командой PowerShell: Get-WindowsUpdateLog. На рабочем столе будет создан файл WindowsUpdate.log.