![unattend.xml 中的 HTTP 代理设置仅在用户登录后才生效](https://linux22.com/image/742963/unattend.xml%20%E4%B8%AD%E7%9A%84%20HTTP%20%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE%E4%BB%85%E5%9C%A8%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E5%90%8E%E6%89%8D%E7%94%9F%E6%95%88.png)
我正在创建一个 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>
运行sysprep
、创建映像,然后从映像部署 VM 后,我能够登录桌面,转到“设置”->“代理设置”,并验证代理是否设置正确。IE 和其他应用程序均按预期运行。
但是,我后来发现,启动时运行的软件进程没有使用代理设置,因此失败了。经过一些实验,我发现直到用户登录到桌面会话后,代理设置才会生效。用户登录后,之前不起作用的相同进程开始成功使用 HTTP 代理。因此,似乎sysprep
不是在配置代理 - 相反,登录时调用的某个用户进程负责完成配置。
由于这是一个严重依赖自动化的环境,而且这些是服务器而不是用户桌面,因此重要的是它们无需用户登录桌面即可正常工作。
有没有办法在sysprep
黄金映像中配置不依赖于用户登录桌面的 HTTP 代理设置?
在这种配置中,我们使用的是 Windows Server 2019,但我想这个问题在很多 Windows 版本中都很常见。