Windows 代理设置:按用户还是按计算机
让代理设置对每个 Windows 用户可见是策略作用域的问题,与选择应用程序所使用的代理栈是两回事。
代理对输入它的管理员有效,但当另一位用户登录后就消失了。这并不意味着服务器拒绝了第二位用户。该配置可能属于第一位用户的配置文件。
Windows 的 Internet 设置具有用户作用域和计算机作用域。名为“按计算机(而不是按用户)进行代理设置”的旧策略控制着它所管辖设置的这一区别。它不同于在当前用户的注册表配置单元下修改单个值。
确定该设置的所有者
Microsoft 的 HKLMProxyServer 文档说明了其对计算机作用域策略的依赖。如果你的部署使用该机制,应通过受支持的管理策略来应用它,而不是从不相关的工作站复制不透明的二进制注册表值。
复制注册表的变通方法描述的是特定环境,有时 32-bit 和 64-bit 下的行为还不相同。它们并不能保证导出的一个 blob 适用于每个 Windows 版本和每个帐户。
然后确定应用程序
计算机作用域并不意味着每个网络客户端都读取这些设置。服务可能使用 WinHTTP 或其自己的应用程序配置。在把网络栈与运行进程的帐户区分开时,Microsoft 对 WinHTTP 和 WinINet 的比较很有用。
在故障排除记录中保留这两个问题:哪个配置存储是相关的,以及哪个帐户或策略作用域提供它?桌面浏览器中的一次成功请求,对后台服务而言这两个问题都回答不了。
还要把路由配置与身份验证区分开。给两个用户相同的代理地址并不会给他们相同的帐户权限,也不应悄悄地把一个用户保存的密码分发给计算机上的所有人。