unattend.xml 中的 HTTP 代理设置仅在用户登录后才生效

unattend.xml 中的 HTTP 代理设置仅在用户登录后才生效

我正在创建一个 Windows“黄金映像”,它将被部署到无法直接访问互联网的网络中。相反,HTTP/HTTPS 流量必须通过代理服务器传输。

运行时sysprep,我将其添加到unattend.xml,以自动配置黄金映像中的代理设置:

<component name="Microsoft-Windows-IE-ClientNetworkProtocolImplementation" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
  <POLICYProxySettingsPerUser>0</POLICYProxySettingsPerUser>
  <HKLMProxyEnable>true</HKLMProxyEnable>
  <HKLMProxyServer>outboundproxy.example.com:3128</HKLMProxyServer>
</component>

(这取自https://blogs.technet.microsoft.com/chrad/2009/07/13/dynamic-provisioning-with-vmm-proxy-windows-updates-and-scripts/

运行sysprep、创建映像,然后从映像部署 VM 后,我能够登录桌面,转到“设置”->“代理设置”,并验证代理是否设置正确。IE 和其他应用程序均按预期运行。

但是,我后来发现,启动时运行的软件进程没有使用代理设置,因此失败了。经过一些实验,我发现直到用户登录到桌面会话后,代理设置才会生效。用户登录后,之前不起作用的相同进程开始成功使用 HTTP 代理。因此,似乎sysprep不是在配置代理 - 相反,登录时调用的某个用户进程负责完成配置。

由于这是一个严重依赖自动化的环境,而且这些是服务器而不是用户桌面,因此重要的是它们无需用户登录桌面即可正常工作。

有没有办法在sysprep黄金映像中配置不依赖于用户登录桌面的 HTTP 代理设置?

在这种配置中,我们使用的是 Windows Server 2019,但我想这个问题在很多 Windows 版本中都很常见。

相关内容