ฉันเจอ "คุณลักษณะ" หรือ "ข้อบกพร่อง" ที่น่าสนใจในบริการ Windows Update บน Windows Server 2016 (Windows 10 RTM) หากคุณไม่ได้ใช้เซิร์ฟเวอร์ WSUS ภายในและระบบปฏิบัติการของคุณต้องได้รับการอัปเดตโดยตรงจากเซิร์ฟเวอร์ Microsoft Update ในอินเทอร์เน็ต เมื่อคุณดาวน์โหลดการอัปเดตใน Windows Server 2016 ผ่านพร็อกซีเซิร์ฟเวอร์ กระบวนการดาวน์โหลดจะค้างอยู่ที่ 0% ( กำลังดาวน์โหลดอัปเดต 0% ).
สิ่งที่น่าสนใจคือ ไคลเอนต์ Windows Update สามารถส่ง/ดาวน์โหลดข้อมูลเมตาของการอัปเดตได้ (รายการของการอัปเดตที่จำเป็นได้รับการจัดทำสำเร็จแล้ว) แต่ไม่สามารถดาวน์โหลดได้
มาสร้างและเปิด WindowsUpdate.log กัน โดยใช้ cmdlet Get-WindowsUpdateLog
2018/11/11 12:32:47.8312332 123 3542 DownloadManager BITS งานเริ่มต้น:JobId ={E3BB42A1C-42B4-221B-1320-8AB433CE1965E}
2018/11/11 12:32:47.8436054 123 3542 DownloadManager กำลังดาวน์โหลดจาก https://download.windowsupdate.com/c/msdownload/update/software/defu/2017/09/nis_engine_1af0e4b80bf4028f8dac56ebf186b392e4e72486.exe ถึง C:\Windows\SoftwareDistribution\Download\f71ddf93ec2d0847cddb>full 2018/11/11 12:32:47.8452605 123 3542 DownloadManager งานดาวน์โหลดใหม่ {E3BB42A1C-42B4-221B-1320-8AB433CE1965E} สำหรับ UpdateId F608EDA4-2E84-433A-A8C9-8117411F91A8.200
2018/11/11 12 :32:47.8545291 123 3542 DownloadManager ดาวน์โหลดงาน E3BB42A1C-42B4-221B-1320-8AB433CE1965E กลับมาทำงานอีกครั้ง
2018/11/11 12:32:47.8734449 123 3542 DownloadManager ไม่สามารถเชื่อมต่อกับบริการ DO; (ชม =80040154)
2018/11/11 12:32:47.8734462 123 3542 DownloadManager GetDOManager() ล้มเหลว hr=80246008 hrExtended=80040154
2018/11/11 12:32:47.8734472 123 3542 DownloadManager ไม่สามารถสร้างงาน DO ด้วย hr 80246008
2018/11/11 12:32:47.8772521 123 3542 การดาวน์โหลด DownloadManager DO ล้มเหลวโดยมีข้อผิดพลาด 80246008[Extended:80040154] ย้อนกลับไปที่ BITS และลองใหม่ด้วยงานดาวน์โหลดใหม่รหัส>
อย่างที่คุณเห็น BITS ไม่สามารถดาวน์โหลดไฟล์ที่มีข้อผิดพลาด 80246008 (SUS_E_DM_FAILTOCONNECTTOBITS – ดูรายการรหัสข้อผิดพลาดในการอัปเดต Windows ทั้งหมด)
เมื่อมันปรากฏออกมา การตั้งค่าพร็อกซีเซิร์ฟเวอร์สำหรับ Internet Explorer ใน Windows Server 2016 RTM (10.0.14393) ไม่ทำงานในลักษณะเดียวกับใน Windows เวอร์ชันก่อนหน้า เพื่อให้ไคลเอนต์ Windows Update สามารถเข้าถึงอินเทอร์เน็ตผ่านพร็อกซี่ คุณต้องบังคับตั้งค่าพร็อกซีของระบบสำหรับ winhttp
แสดงการตั้งค่าพร็อกซีเซิร์ฟเวอร์ปัจจุบันสำหรับ WinHTTP:
netsh winhttp แสดงพร็อกซี่
การเข้าถึงโดยตรง (ไม่มีพร็อกซีเซิร์ฟเวอร์)
ดังที่คุณเห็น ไม่ได้ตั้งค่าการตั้งค่าพร็อกซีสำหรับ WinHTTP พร็อกซีได้รับการกำหนดค่าใน Internet Explorer ในระดับผู้ใช้แต่ไม่ได้อยู่ในระดับระบบ (WinHTTP) การกำหนดค่านี้ทำให้การเชื่อมต่อกับ Windows Update ล้มเหลว
คุณสามารถตั้งค่าพารามิเตอร์ระบบพร็อกซีสำหรับ WinHTTP ได้ดังนี้:
netsh winhttp ตั้งค่า proxy proxy-server="192.168.100.24:3128" bypass-list="*.woshub.com"
หรือแบบนี้ โดยการนำเข้าการตั้งค่าจาก IE (การตั้งค่าพร็อกซีใน Internet Explorer ต้องตั้งค่าด้วยตนเองหรือกำหนดค่าโดยใช้ GPO ล่วงหน้า):
netsh winhttp นำเข้าพร็อกซี source=ie
หลังจากเปลี่ยนการตั้งค่าพร็อกซี ให้เริ่มบริการ Windows Update ใหม่:
เริ่มบริการ wuauserv
หลังจากระบุพร็อกซีสำหรับ WinHTTP แล้ว Windows Server 2016 ก็เริ่มดาวน์โหลดการอัปเดตจากเซิร์ฟเวอร์ Microsoft Update
ปัญหาเดียวกันนี้เป็นเรื่องปกติสำหรับ Windows 10 เวอร์ชัน RTM (เวอร์ชัน RTM ของ Windows Update Agent – 10.0.14393.0)
หมายเหตุ . หากคุณดาวน์โหลดและติดตั้งการอัปเดตที่สะสมล่าสุดด้วยตนเองจาก Microsoft Update Catalog (เผยแพร่หลังเดือนพฤศจิกายน 2016) การอัปเดตจะถูกดาวน์โหลดและติดตั้งตามปกติ แม้ว่าคุณจะไม่ได้ตั้งค่าพร็อกซี WinHTTP ก็ตาม ตามข้อมูลของ Microsoft จุดบกพร่องนี้ได้รับการแก้ไขในตัวแทน Windows Update 10.0.14393.187 ขึ้นไปนอกจากนี้ อย่าลืมว่าคุณจะไม่สามารถรับการอัปเดตผ่านพร็อกซีเซิร์ฟเวอร์ที่ต้องมีการตรวจสอบสิทธิ์ เนื่องจากไคลเอ็นต์ Windows Update ไม่รองรับการตรวจสอบสิทธิ์พร็อกซี (ต่างจาก PowerShell) เพื่อให้ Windows Update ทำงานได้อย่างถูกต้อง คุณต้องอนุญาตการเข้าถึงเซิร์ฟเวอร์ Microsoft Update บนพร็อกซีเซิร์ฟเวอร์ของคุณโดยไม่ระบุชื่อ รายการ URL มีดังต่อไปนี้:
- *.microsoft.com
- microsoft.com
- *.windowsupdate.com
- windowsupdate.com
- *.trafficmanager.net
- trafficmanager.net