Windows 更新涉及到网络的过程分为两个部分:1. 检查更新;2. 下载更新。其中 1. 检查更新部分会使用 IE 中设置的代理以及 WinHTTP 中设置的代理;而 2. 下载更新部分过去也会同时使用 IE 以及 WinHTTP 中设置的代理,但是自 Windows 10 及 Windows Server 2016 起,下载更新将会只使用 WinHTTP 中设置的代理。因此在只能通过代理访问外部网络的环境中,我们要么配置好 WinHTTP 使用代理,要么在内部网络中配置 Windows Update 更新服务器,才能正常使用 Windows 更新。

配置 WinHTTP 使用代理

配置 WinHTTP 使用代理,需要使用管理员权限运行 cmd.exe 或者 PowerShell,执行以下命令手动配置代理:

netsh winhttp set proxy ProxyServerName:PortNumber

netsh winhttp set proxy

注意配置 WinHTTP 代理时,不需要填入 http:// 等协议字段。

或执行以下命令以从 IE 导入代理设置:

netsh winhttp import proxy source=ie

如不再需要使用代理,则执行:

netsh winhttp reset proxy

如需查看当前代理,执行:

netsh winhttp show proxy

检查 Windows 更新服务器地址

要想确认当前 Windows 是否使用了自定义的 Windows Update 更新服务器,以及自定义 WSUS 服务器地址的话,可以检查注册表。

  • 检查注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate 下的 WUServerWUStatusServer 值,类型为 REG_SZ,内容为自定义的 WSUS 更新服务器地址。

  • 检查注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU 下的 UseWUServer 值,类型为 REG_DWORD,1 表示使用自定义的 WUServerWUStatusServer0 则表示使用微软的更新服务器。

注:若变更了注册表中的配置,需重启系统或重启 Windows Update (wuauserv) 服务后方可生效。

注:如果在更换 Windows Update 更新服务器后,更新报 80072EE2 错(如下图所示),请确认在注册表中配置了正确的服务器地址及端口。

Windows Update 80072EE2

Windows Update 命令行

打开 Windows Update 界面

  • Windows 10 / Windows Server 2016: ms-settings:windowsupdate
  • 其他版本 Windows: wuapp

检查更新

  • Windows 10 / Windows Server 2016: UsoClient StartScan
  • 其他版本 Windows: wuauclt /detectnow

参考文档