【问题标题】:Automatic Windows Updates through ISA proxy通过 ISA 代理自动更新 Windows
【发布时间】:2011-01-15 00:52:44
【问题描述】:

问题描述:有没有办法让 Windows 自动更新通过需要 NTLM 身份验证的 ISA 代理?

我没有管理员访问权限或对代理的任何访问权限,并且无法避免通过它,我在网上阅读了有关允许直接访问 microsoft.com 的建议,但正如我所解释的,我无法访问代理设置。

我可以做些什么来使自动更新工作?

操作系统:Windows XP

【问题讨论】:

    标签: authentication proxy windows-authentication windows-update


    【解决方案1】:

    自动更新使用 WinHTTP 库来路由 TCP 连接。为了通过您的代理连接 WU (wuauserv) 服务,请确保您配置 WinHTTP 库以通过该代理。 要将您的 WinHTTP 库配置为使用自定义代理,请按照以下步骤操作:

    1. 在提升的命令提示符下键入 网盘 启动 Network Shell 命令行工具,该工具可让您更改 Windows 上的网络。
    2. 在 NetSh 命令行键入: netsh>winhttp 重置代理 这将重置 WinHTTP 库的代理设置
    3. 现在通过在不同的提升命令提示符中键入以下内容来重新启动 Network Awareness Locator 服务 网络停止 NlaSvc && 网络启动 NlaSvc 确认重启依赖网络列表服务。
    4. 返回 NetSh 并键入 netsh>winhttp 设置代理 XXX.XXX.XXX.XXX:XXXX 其中 XXX.XXX.XXX.XXX:XXXX 是您希望 WU 去的代理服务器的 TCP 套接字,例如 netsh>winhttp 设置代理 10.0.14.212:3128
    5. 通过键入退出网络外壳 netsh>退出
    6. 通过在提升的命令提示符下运行重新启动 Windows 更新服务: net stop wuauserv && net start wuauserv
    7. 现在打开 %systemroot%\windowsupdate.log 文件以确保您的更新通过代理服务器。 7.1 或者,启动 NetSh 并在其提示符处键入: netsh winhttp 显示代理

    这些设置将使 WU 服务通过已用于运行命令提示符窗口的用户帐户下的指定代理,默认情况下这是您的用户帐户。 为确保 Windows 更新在不同帐户下运行时通过该代理,例如 Windows 更新使用的网络服务或本地服务,请确保在这些特定系统帐户下运行的命令提示符下运行 NetSh。要简化此过程,请下载 Sysinternas Suite 并从那里使用 PSExec 工具。

    要使用 LocalSystem 权限以交互方式启动命令提示符窗口,请在命令提示符处键入: PsExec.exe /s /i cmd 从那里执行 NetSh 命令以应用 LocalSystem 帐户的连接更改。

    使用网络服务权限类型以交互方式启动命令提示符窗口 PsExec.exe /i /u "NT AUTHORITY\NETWORKSERVICE" "cmd" 从那里执行 NetSh 命令以应用网络服务帐户的连接更改。

    使用本地服务权限类型以交互方式启动命令提示符窗口 PsExec.exe /i /u "NT AUTHORITY\LOCALSERVICE" "cmd" 从那里执行 NetSh 命令以应用本地服务帐户的连接更改。

    要使用您的 Microsoft 帐户权限以交互方式启动命令提示符窗口,请按 WindowsKey 并键入 cmd。 右键单击命令提示符图标并从栏中选择打开文件位置。 在打开的 Windows 资源管理器窗口中,按住 Shift 键并选择以其他用户身份运行时,右键单击命令提示符快捷方式。在 Windows 安全对话框中选择 Microsoft 帐户。指定您的 Microsoft 帐户凭据。

    使用 whoami 命令检查用于运行启动 Network Shell 工具的命令提示符的帐户。

    如果您想使用与 WinInet 库相同的连接设置,Internet Explorer 和大多数桌面应用程序都使用这些连接设置(现代 UI 应用程序使用 WinHTTP 库),请使用 netsh winhttp 导入代理源=ie 将 WinInet 库的设置导入 WinHTTP 库。

    另外,请确保通过本地代理路由 BITS 服务。在提升的命令提示符下运行: C:\Windows\SysWOW64>bitsadmin.exe /Util /GetIEProxy "LocalService" 确保 Windows Update 用于下载更新的后台智能传输服务在使用 LocalService 权限运行时通过您指定的代理运行。

    对其他帐户执行相同的检查: C:\Windows\SysWOW64>bitsadmin.exe /Util /GetIEProxy "LocalSystem" C:\Windows\SysWOW64>bitsadmin.exe /Util /GetIEProxy "NetworkService"

    如果显示 BITS 直接进入,不使用代理,请执行以下操作: C:\Windows\SysWOW64>bitsadmin.exe /Util /SetIEProxy LocalService MANUAL_PROXY 10.0.14.212:3128 NULL

    对其他系统帐户重复相同操作 C:\Windows\SysWOW64>bitsadmin.exe /Util /SetIEProxy "LocalSystem" MANUAL_PROXY 10.0.14.212:3128 NULL C:\Windows\SysWOW64>bitsadmin.exe /Util /SetIEProxy "NetworkService" MANUAL_PROXY 10.0.14.212:3128 NULL

    在 %systemroot%\WindowsUpdate.log 中查找类似的行: 012-09-14 22:50:09:933 624 17f4 WS 警告:使用的代理列表:'proxy.domain.com:port',使用的绕过列表:'(null)',使用的最后一个代理:'proxy.domain。 com:port',最后使用的身份验证方案:'无'。

    如果 Windows 更新无法在您的公司代理上进行身份验证并返回 407,请使用 CNTLM 上游到您的公司代理。

    希望这会有所帮助。

    【讨论】:

    • 你能把答案简短吗?
    • 简短的回答是:确保 WinHTTP 库配置为通过代理连接,并且 BITS 服务对 wuauserv 和 bits 使用的每个帐户使用相同的设置。这一切都有些古怪,并不是一件容易的事。我相信,对细节不感兴趣的人可以略读。我们是否有限制答案中字数的规则?
    • 我问你是因为你的答案太大了,可能会混淆 OP,如果你有一个简短的版本,请添加它。
    【解决方案2】:

    有一个工具叫cntlm 它确实允许通过 ISA 代理,但将其集成到任何应用程序中并不容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 2013-05-07
      相关资源
      最近更新 更多