Назад | Перейти на главную страницу

Центр обновления Windows в обход сервера как источника загрузки

У меня есть компьютер с Windows Server 2008 R2 SP1, который изолирован в DMZ. Исторически проблем не возникало, но все работает до того, как сломается. Порт 8530 открыт на брандмауэре, и я могу подключиться по telnet от клиента к серверу, что доказывает, что сайт готов и открыт.

Этот компьютер не подключен к домену, поэтому сервер WSUS установлен в реестре. Итак, в HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ WindowsUpdate у меня есть

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"WUServer"="http://kanwsus2k16:8530"
"WUStatusServer"="http://kanwsus2k16:8530"
"DoNotConnectToWindowsUpdateInternetLocations"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"UseWUServer"=dword:00000001

Журнал windowsupdate.log подтверждает это. Я хотел бы попытаться включить только то, что требуется, чтобы попытаться уменьшить длину сообщения. Клиент обращается к серверу и видит, что у него есть X доступных обновлений. Однако загрузить их не удается. В журнале отображаются такие записи:

2018-05-07  11:05:19:960     668    47c DnldMgr BITS job {7835096F-E02C-4B66-AD0F-3D71EF17C73B} hit a transient error, updateId = {3FD57624-1808-41C7-979D-8606CA1229B6}.202, error = 0x80072EE2
... output truncated ....
2018-05-07  11:05:40:963     668    47c Misc    WARNING: SendRequest failed with hr = 80072ee2. Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <>
2018-05-07  11:05:40:963     668    47c Misc    WARNING: WinHttp: SendRequestUsingProxy failed for <http://wsus.ds.download.windowsupdate.com/d/msdownload/update/software/secu/2018/04/windows6.1-kb4093118-x64-express_c1473ce4b149cf34239c364a9787030447e376ca.cab>. error 0x80072ee2

Что касается ошибки SendRequestUsingProxy, это не должно произойти. У сервера нет доступа к веб-сайтам Microsoft, поэтому он не сможет туда попасть. Я не могу понять, почему он не получает обновления напрямую с сервера WSUS. Мы не используем прокси и не настроены.

На стороне сервера WSUS я вижу, что он получает статус сбоя загрузки для каждого из обновлений. Короче говоря, связь есть, но клиент пытается загрузить обновления извне. Это сервер 2k16 и чтение логов с Get-WindwosUpdateLog не оказался полезным.

Это единственный внешний сервер, который у меня есть в сети, поэтому у меня нет систем сравнения, чтобы точно знать, где находится система.

Пытаясь проверить возможность подключения к серверу, я пытаюсь перейти на http: // kanwsus2k16: 8530 / selfupdate / wuident.cab страница, с которой встречается, не может отображаться на клиентском сервере. (Эта ссылка отлично работает во внутренней сети)

Почему мой клиент Центра обновления Windows не соблюдает путь WSUS для обновлений и вместо этого пытается обратиться за помощью к Microsoft извне?


Другие вещи, которые я пробовал:

Я бы использовал локальную групповую политику, чтобы настроить все и пройтись по настройкам, которые @ Redwizard000 предоставил на https://serverfault.com/a/940236/557131. Речь идет о Server 2016, но политики доступны для установки в более старых операционных системах. Это устранило для меня идентичную проблему. По крайней мере, он предоставляет некоторую командную строку, чтобы увидеть, является ли это вашей проблемой, прежде чем вы приложите усилия к изменению локальной политики или реестра.

Я не думаю, что вам следует возиться с реестром в этом случае. В реестре слишком много записей, о которых стоит подумать, и вероятность ошибки относительно высока. На вашем месте я бы использовал местную политику.

У меня есть сервер, который находится в аналогичной ситуации с вашим - расположен в DMZ, не подключен к домену и получает обновления с внутреннего сервера WSUS. Этот сервер отлично получает обновления. Я использую локальную политику для настройки параметров обновления Windows на сервере, что, на мой взгляд, более желательно, чем изменение параметров реестра напрямую.

открыто gpedit.msc как администратор в командной строке.

Перейти к компьютеру Configuration/Administrative Templates/Windows Components/Windows Update

Измените следующие настройки:

  • Настроить автоматические обновления: ВКЛЮЧЕНО
    • Установите "Автозагрузка и уведомление об установке"
  • Укажите расположение службы обновления Майкрософт в интрасети: ВКЛЮЧЕНО
    • Установите для параметра «Установить службу обновлений интрасети для обнаружения обновлений» значение http: // yourwsusserver: 8530
    • Установите для параметра «Установить сервер статистики интрасети» значение http: // yourwsusserver: 8530
  • (Необязательно) Разрешить немедленную установку автоматического обновления: ОТКЛЮЧЕНО
  • (Необязательно) Включить таргетинг на стороне клиента: ВКЛЮЧЕНО
    • Укажите имя группы компьютеров, в которую вы хотите поместить сервер

Что касается настроек брандмауэра, убедитесь, что порт 8530 открыт от сервера DMZ к серверу WSUS. Кроме того, если вы используете внутренний DNS для разрешения имени сервера WSUS, убедитесь, что этот порт 53 открыт между сервером DMZ и внутренним DNS-сервером.

Вы не настроили необходимый реестр, чтобы указать, что Центр обновления Windows будет загружен через WSUS.

Пожалуйста, установите следующий реестр по пути HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU:

Value name: UseWUServer
Value data: Set this value to 1 to configure Automatic Updates 
      to use a server that is running Software Update Services instead of Windows Update.
Registry Value Type: Reg_DWORD

Остальные на месте. Также обратите внимание на пункты, предложенные wrieedx в другом ответе выше, особенно в том, чтобы управлять такими вещами с помощью gpedit.msc, вместо изменения в реестре.