Windows 更新绕过服务器作为下载源

Windows 更新绕过服务器作为下载源

我有一台 Windows Server 2008 R2 SP1 计算机,它被隔离在 DMZ 中。从历史上看,它没有出现过问题,但在它出现故障之前,一切都正常。防火墙设备上的端口 8530 是开放的,我可以从客户端远程登录到服务器,这证明该站点已准备就绪并开放。

此计算机未连接到域,因此 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 外部获取更新?


我还尝试过其他方法:

  • Windows Server 2008 R2 x64 版系统更新准备工具
  • 清除 BITS 队列
  • 重命名 SoftwareDistribution 文件夹
  • 已验证从网络端到 WSUS 服务器的 8530 端口没有任何被阻止
  • 加起来DoNotConnectToWindowsUpdateInternetLocations等于1HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

答案1

您尚未设置所需的注册表来突出显示 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

其他事项已准备就绪。还请注意在上面的另一个答案中,尤其是使用 来管理这些事情gpedit.msc,而不是在注册表中进行更改。

答案2

我认为在这种情况下你不应该摆弄注册表。有太多的注册表项需要考虑,犯错的可能性相对较高。如果我是你,我会改用本地策略。

我有一台与您的情况类似的服务器 - 位于 DMZ,未连接到域,并从内部 WSUS 服务器接收更新。这台服务器接收更新很好。我正在使用本地策略来配置服务器的 Windows 更新设置,我认为这比直接更改注册表设置更可取。

gpedit.msc在命令行上以管理员身份打开。

导航至计算机Configuration/Administrative Templates/Windows Components/Windows Update

更改以下设置:

  • 配置自动更新:已启用
    • 设置为“自动下载并通知安装”
  • 指定 Intranet Microsoft 更新服务位置:已启用
  • (可选)允许自动更新立即安装:已禁用
  • (可选)启用客户端定位:已启用
    • 指定要放置服务器的计算机组的名称

至于防火墙设置,请确保从 DMZ 服务器到 WSUS 服务器的端口 8530 已打开。此外,如果您使用内部 DNS 来解析 WSUS 服务器名称,请确保 DMZ 服务器和内部 DNS 服务器之间的端口 53 已打开。

答案3

我将使用本地组策略来设置所有内容,并按照@Redwizard000 提供的设置进行操作https://serverfault.com/a/940236/557131。它谈论的是 Server 2016,但可以在较旧的操作系统中设置策略。这为我解决了一个相同的问题。如果没有其他问题,他会提供一些命令行来查看这是否是您的问题,然后再努力更改本地策略或注册表。

相关内容