Вопрос или проблема
У меня есть машина с 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
... вывод сокращен ....
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 я вижу, что он получает статус сбоя загрузки для каждого обновления. Так что, коротко говоря, связь есть, но клиент пытается загрузить обновления извне. Это сервер 2016 года, и чтение логов с помощью Get-WindwosUpdateLog
не дало результатов.
Это единственный внешний сервер, который у меня есть в сети, поэтому у меня нет компаративных систем, чтобы точно знать, где находится система.
В попытке протестировать соединение с сервером, я пытаюсь перейти по адресу http://kanwsus2k16:8530/selfupdate/wuident.cab, но на клиентском сервере появляется сообщение, что страница не может быть отображена. (Эта ссылка работает хорошо в внутренней сети)
Почему мой клиент Windows Update не соблюдает путь WSUS для обновлений и вместо этого пытается обратиться к Microsoft извне?
Другие вещи, которые я попробовал:
- Инструмент подготовки системы к обновлению для Windows Server 2008 R2 x64 Edition
- Очистка очереди BITS
- Переименование папки SoftwareDistribution
- Проверил, что с сетевой стороны ничего не блокируется при обращении к серверу WSUS на порту 8530
- Добавлено
DoNotConnectToWindowsUpdateInternetLocations
, равное 1 вHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
Вы не настроили необходимый реестр, чтобы указать, что обновления Windows будут загружены через WSUS.
Пожалуйста, установите следующий реестр по пути HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
:
Имя значения: UseWUServer
Данные значения: Установите это значение равным 1, чтобы настроить автоматические обновления
для использования сервера, на котором работает служба обновления программного обеспечения вместо Windows Update.
Тип значения реестра: Reg_DWORD
Другие вещи находятся на месте. Пожалуйста, также обратите внимание на пункты, предложенные wrieedx в другом ответе выше, особенно пункт о том, чтобы управлять такими вещами с помощью gpedit.msc
, вместо изменения реестра.
Я не думаю, что вам стоит вмешиваться в реестр в этом случае. Есть слишком много записей реестра, о которых нужно думать, и вероятность ошибки относительно высокая. На вашем месте я бы использовал локальную политику.
У меня есть сервер, который находится в похожей ситуации, как ваша — расположен в DMZ, не подключен к домену и получает обновления от внутреннего сервера WSUS. Этот сервер получает обновления нормально. Я использую локальную политику для настройки параметров обновления Windows на сервере, что, на мой взгляд, более предпочтительно, чем изменение параметров реестра напрямую.
Откройте gpedit.msc
как администратор через командную строку.
Перейдите к Конфигурации компьютера Конфигурация / Административные шаблоны / Компоненты Windows / Центр обновления Windows
Измените следующие параметры:
- Настроить автоматические обновления: ВКЛЮЧЕНО
- Установить на “Автоматически загружать и уведомлять о установке”
- Указать расположение службы обновления Microsoft Intranet: ВКЛЮЧЕНО
- Установите “Указать внутреннюю службу обновления для обнаружения обновлений” на http://yourwsusserver:8530
- Установите “Указать внутренний сервер статистики” на http://yourwsusserver:8530
- (По желанию) Позволить немедленную установку автоматического обновления: ОТКЛЮЧЕНО
- (По желанию) Включить клиентское таргетирование: ВКЛЮЧЕНО
- Укажите имя группы компьютеров, в которую вы хотите поместить сервер
Что касается настроек фаервола, убедитесь, что порт 8530 открыт от сервера DMZ к серверу WSUS. Также, если вы используете внутренний DNS для разрешения имени сервера WSUS, убедитесь, что порт 53 открыт между сервером DMZ и внутренним DNS-сервером.
Я бы использовал локальную групповую политику, чтобы настроить все и пройтись по параметрам, которые предоставил @Redwizard000 на https://serverfault.com/a/940236/557131. Он говорит о сервере 2016 года, но политики могут быть установлены и в более старых операционных системах. Это решило идентичную проблему для меня. Если ничего другого, он предоставляет некоторые команды, чтобы узнать, является ли это вашей проблемой, прежде чем вы вложите усилия в изменение локальной политики или реестра.
Ответ или решение
Причины невыполнения запросов обновлений Windows через WSUS на сервере Windows Server 2008 R2 SP1
На вашем сервере Windows 2008 R2 SP1, расположенном в DMZ, возникают проблемы с получением обновлений от WSUS-сервера. Несмотря на то, что клиент видит доступные обновления, загрузка не осуществляется и происходит обращение к внешним ресурсам, приводя к ошибке 0x80072EE2
. Давайте рассмотрим возможные причины и способы решения этой проблемы.
Возможные причины проблемы
-
Неправильные настройки реестра или групповых политик: Ваша текущая конфигурация кажется корректной на первый взгляд. Тем не менее, неправильные или отсутствующие настройки в реестре могут привести к тому, что клиент будет обращаться к внешним серверам обновлений.
-
Настройки локальной группы: Убедитесь, что на сервере включены необходимые локальные политики для WSUS. Использование
gpedit.msc
может помочь избежать ошибок при ручном редактировании реестра. -
Доступ к WSUS-серверу: Судя по логам, возможны проблемы с доступом к WSUS для загрузки самих обновлений. Проверьте, могут ли клиенты без ошибок обращаться к WSUS на порту 8530.
-
Настроенный прокси: Хотя вы упомянули, что не используете прокси, это может быть источником проблемы. Убедитесь, что настройки Windows Update не пытаются использовать прокси-сервер, который не доступен в DMZ.
Рекомендации по решению проблемы
-
Проверка и настройка групповых политик:
- Откройте
gpedit.msc
. - Перейдите в
Конфигурация компьютера / Административные шаблоны / Компоненты Windows / Обновление Windows
. - Убедитесь, что следующие параметры настроены:
- Настроить автоматические обновления: Включить и установить на "Автоматически загружать и уведомлять для установки".
- Указать расположение службы обновления Microsoft Intranet: Включить и установить как
http://kanwsus2k16:8530
.
- Перезапустите службу обновления Windows.
- Откройте
-
Очистка кэша BITS: Если в очереди загрузки BITS есть конфликты, это может помешать загрузке. Используйте следующие команды для её очистки:
net stop bits net stop wuauserv del %windir%\SoftwareDistribution\*.* /s /q net start wuauserv net start bits
-
Проверка сетевых настроек: Убедитесь, что сервер в DMZ может свободно обращаться к WSUS:
- Проверьте настройки брандмауэра и убедитесь, что порт 8530 открыт.
- Убедитесь, что нет ошибок в DNS, которые бы мешали разрешению имени WSUS-сервера.
-
Логи обновлений: Если
Get-WindowsUpdateLog
не помогает, попробуйте воспользоваться утилитами, такими какwuauclt.exe /detectnow
иwuauclt.exe /reportnow
, чтобы инициировать обновления вручную и просмотреть логи. -
Обновление системных компонентов: Иногда проблемы могут быть вызваны отсутствием актуальных системных обновлений. Убедитесь, что на вашем сервере установлены последние обновления.
Заключение
Проблемы с получением обновлений от WSUS могут быть вызваны не только ошибками конфигурации, но и сетевыми настройками или отсутствием необходимых разрешений. Применение предложенных рекомендаций и тщательная проверка локальных групповых политик, а также логов обновлений должны помочь в решении проблемы. Не забывайте периодически проверять настройки и обновления, чтобы избежать подобных затруднений в будущем.