通过显式 Squid 代理进行 Windows 更新 - 0x80072EE6

通过显式 Squid 代理进行 Windows 更新 - 0x80072EE6

我将尝试对环境进行全面介绍:

  • 匿名代理
  • 必须设置代理才能访问互联网
  • RHEL8 上 f5 后面有 2 个 Squid 代理 -不是缓存
  • 2 个 Windows AD DC,均运行 2019 Standard,均遇到此问题。均是新安装的
  • 在白名单中设置以下内容(在查看 Squid 访问日志时开发了此列表):
    • .microsoft.com
    • .windowsupdate.com
    • .live.com
    • .msftconnecttest.com
    • .windows.com
    • .azureedge.net
    • .azure.com
    • .visualstudio.com
  • 没有设置 WSUS(通过 gpedit 仔细检查)
  • 在 IE 设置和通过中设置代理netsh
  • 在本地仔细检查每个实例,以确保确实设置了代理设置(通过netsh检查 IE 设置)
  • 0x80072EE6在本地尝试更新时,以及通过 Ansible playbook 尝试更新时,Windows 更新事件查看器日志中都会产生错误
  • 使用域管理员帐户通过 WinRM 连接和 NTLM 身份验证运行剧本

每次尝试时我都可以看到如下所示的成功连接:

04/Aug/2022:15:59:29 -0400    864 10.200.138.253 TCP_TUNNEL/200 6321 CONNECT v10.events.data.microsoft.com:443 - HIER_DIRECT/v10.events.data.microsoft.com -
04/Aug/2022:15:59:47 -0400    353 10.200.138.253 TCP_TUNNEL/200 4060 CONNECT settings-win.data.microsoft.com:443 - HIER_DIRECT/settings-win.data.microsoft.com -

我还可以看到网络上的其他 Windows 实例实际上正在下载更新:

04/Aug/2022:15:36:20 -0400    674 10.200.138.253 TCP_MISS/206 66151 GET http://au.download.windowsupdate.com/d/msdownload/update/software/defu/2022/06/updateplatform_f7e39cbc74e49ac493f62d12e63f1f9df9453af1.exe - HIER_DIRECT/au.download.windowsupdate.com application/octet-stream
04/Aug/2022:15:36:21 -0400     56 10.200.138.253 TCP_MISS/206 918120 GET http://au.download.windowsupdate.com/d/msdownload/update/software/defu/2022/06/updateplatform_f7e39cbc74e49ac493f62d12e63f1f9df9453af1.exe - HIER_DIRECT/au.download.windowsupdate.com application/octet-stream
04/Aug/2022:15:36:21 -0400     23 10.200.138.253 TCP_MISS/206 348408 GET http://au.download.windowsupdate.com/d/msdownload/update/software/defu/2022/06/updateplatform_f7e39cbc74e49ac493f62d12e63f1f9df9453af1.exe - HIER_DIRECT/au.download.windowsupdate.com application/octet-stream

Ansible playbook 使用以下策略:

- name: Configure IE to use explicit proxy host with port and without auto detection
  community.windows.win_inet_proxy:
    auto_detect: no
    proxy: "{{ proxy_host }}:{{ proxy_port }}"
    bypass: "{{ proxy_env.no_proxy }}"

- name: Set the proxy to be able to run  Windows Updates
  ansible.windows.win_command: netsh winhttp import proxy source=ie


- name: Install all security, critical, and rollup updates without a scheduled task
  ansible.windows.win_updates:
    category_names: "{{ win_update_categories }}"
      reboot: yes
      reboot_timeout: 3600

Playbook 导致的错误:

TASK [Install all security, critical, and rollup updates without a scheduled task] **********************************************************************************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: at <ScriptBlock>, <No file>: line 753
fatal: [<hostname>]: FAILED! => changed=false 
  failed_update_count: 0
  filtered_updates: {}
  found_update_count: 0
  installed_update_count: 0
  msg: 'Searching for updates: Exception from HRESULT: 0x80072EE6 - Unknown WUA HRESULT 2147954406 (UNKNOWN 80072EE6)'
  reboot_required: false
  updates: {}

最后,当我回去再次检查任一实例时,更新 UI 报告“没有可用的更新”,并且直到我再次尝试时才出现错误迹象。

很想知道这里发生了什么事。

答案1

目前正在通过 Squid 代理处理 Windows Update 上的一个类似问题。请检查 C:\Users\Admin\Desktop\WindowsUpdate.log 处的 Windows Update 日志(首先使用 Get-WindowsUpdateLog 生成)它可能会提供正在发生的事情的线索。有一个特殊页面,其中包含针对 Windows Update 的 Squid 建议:https://wiki.squid-cache.org/SquidFaq/WindowsUpdate

我面临的问题是一台机器试图从https://fe3.delivery.mp.microsoft.com这会导致 SSL 验证出现问题。因此,研究了 squid 的 SSL-Bump 和 Peek 以及 Splice 选项。

相关内容