Windows Server 2016 не викачувати оновлення через проксі

Виявив одну цікаву особливість в службі оновлень Windows Server 2016. У тому випадку, якщо у вас не використовується внутрішній WSUS сервер, і ОС повинна оновлюватися безпосередньо з серверів Windows Update в Інтернет, то при використанні проксі-сервера для доступу назовні, при спробі завантажити оновлення через центр оновлень, в Windows Server 2016 процес завантаження зависає на етапі скачування апдейтів на 0% (Downloading Updates 0%).

Що цікаво, клієнту Windows Update вдалося відправити / завантажити метадані оновлень (список необхідних оновлень успішно сформувався), але жодне з них не завантажується.
Сформуємо і відкриємо журнал WindowsUpdate.log за допомогою командлета Get-WindowsUpdateLog.

2018/06/04 16: 24: 21.8312332 588 4116 DownloadManager BITS job initialized: JobId = E3AA21C9B-4BC2-443E-2342-8F693CE1443E 2018/06/04 16: 24: 21.8436054 588 4116 DownloadManager Downloading from http: // download .windowsupdate.com / c / msdownload / update / software / defu / 2017/09 / nis_engine_1af0e4b80bf4028f8dac56ebf186b392e4e72486.exe to C: \ Windows \ SoftwareDistribution \ Download \ f71ddf93ec2d087c819cf75c55ddfda2 \ 1af0e4b80bf4028f8dac56ebf186b392e4e72486 (full file) 2018/06/04 16: 24: 21.8452605 588 4116 DownloadManager New download job E3AA21C9B-4BC2-443E-2342-8F693CE1443E for UpdateId F608EDA4-2E84-433A-A8C9-8117411F91A8.200 2018/06/04 16: 24: 21.8545291 588 4116 DownloadManager Download job E3AA21C9B-4BC2-443E- 2342-8F693CE1443E resumed. 2018/06/04 16: 24: 21.8734449 588 4116 DownloadManager Failed to connect to the DO service; (Hr = 80040154) 2018/06/04 16: 24: 21.8734462 588 4116 DownloadManager GetDOManager () failed, hr = 80246008, hrExtended = 80040154 2018/06/04 16: 24: 21.8734472 588 4116 DownloadManager Failed creating DO job with hr 80246008 2018/06/04 16: 24: 21.8772521 588 4116 DownloadManager DO download failed with error 80246008 [Extended: 80040154], falling back to BITS and retrying with new Download Job.

Як ви бачите, BITS не може закачати файли з помилкою 80246008.

Як виявилося, проста установка параметрів проксі-сервера для Internet Explorer в Windows Server 2016 RTM (10.0.14393) не працює так, як в попередніх версіях Windows. Щоб клієнт Windows Update в Windows Server 2016 міг отримувати доступ в Інтернет через проксі, потрібно примусово вказати системний проксі для winhttp.

Виведемо поточні настройки проксі-сервера для WinHTTP:

netsh winhttp show proxy

Current WinHTTP proxy settings:

Direct access (no proxy server).

Як ви бачите, параметри проксі-сервера для WinHTTP не задані вказані.

Задати налаштування системного проксі для WinHTTP можна так:

netsh winhttp set proxy proxy-server = "192.168.0.14:3128" bypass-list = "*. winitpro.ru"

Або так, імпортувавши настройки з IE (настройки проксі в Internet Explorer потрібно попередньо задати вручну або встановити через GPO):

netsh winhttp import proxy source = ie

Після зміни налаштувань проксі службу Windows Update потрібно перезапустити:

Restart-service wuauserv

Після того, як були вказано проксі для WinHTTP, Windows Server 2016 почав закачувати оновлення з вузлів Windows Update.

Аналогічну проблему схильна до RTM версія Windows 10.

Примітка. Якщо вручну завантажити і встановити останню кумулятивне оновлення з каталогу оновлень Microsoft (що вийшло після листопада 2016 року), то поновлення починають встановлюватися нормально, навіть якщо не вказувати WinHTTP проксі. Судячи з інформації від Microsoft, цей баг був виправлений у версії агента поновлення 10.0.14393.187 і вище.

Також не забудьте, що ви не зможете отримувати оновлення через проксі сервер з авторизацією, тому що клієнт Windows Update не підтримує можливість авторизації на проксі (на відміну від PowerShell). Щоб коректно працювала служба оновлень Windows, потрібно на проксі сервері дозволити анонімний доступ до серверів оновлень Microsoft. Список URL вказано нижче:

  • update.microsoft.com
  • * .update.microsoft.com
  • download.windowsupdate.com
  • * .download.windowsupdate.com
  • download.microsoft.com
  • * .download.microsoft.com
  • windowsupdate.com
  • * .windowsupdate.com
  • ntservicepack.microsoft.com
  • wustat.windows.com
  • mp.microsoft.com
  • * .mp.microsoft.com