我将尝试对环境进行全面介绍:
- 匿名代理
- 必须设置代理才能访问互联网
- 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 选项。