WinINET 代理设置排查
IE/WinINET 的代理设置存放在注册表的 Internet Settings 键下:ProxyEnable 决定是否启用,ProxyServer 记录代理地址与端口,ProxyOverride 保存不使用代理的例外列表。许多程序都读取这套设置,包括部分命令行工具与更新组件,所以排查「浏览器正常、命令行工具连不上」或者相反的现象时,这里是必经之地。
基本信息
| 适用平台 | Windows 客户端与服务器(按用户存放) |
|---|---|
| 注册表路径 | HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings |
| 关键值 | ProxyEnable、ProxyServer、ProxyOverride |
| 读取方式 | Get-ItemProperty 直接取键值 |
| 生效条件 | 修改后需通知系统或重启相关应用 |
典型使用场景
- 排查浏览器能上网、PowerShell 或安装程序却连不上的差异
- 确认代理是否被设成不可用地址,导致程序反复超时
- 批量读取多台机器的代理配置,做基线核对
- 临时关闭代理,验证问题是否由代理引起
- 查看例外列表,判断内网地址是否绕过了代理
- 排查恶意软件或第三方工具偷偷写入的代理劫持配置
常用示例
常用示例
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
Select-Object ProxyEnable, ProxyServer, ProxyOverride
# 临时停用代理(改后需重启相关应用才完全生效):
Set-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyEnable -Value 0
# 确认当前进程环境里是否也有代理设置:
Get-ChildItem Env: | Where-Object Name -match 'proxy'键值说明
| 键值 | 含义 | 说明 |
|---|---|---|
| ProxyEnable | 是否启用代理 | 1 启用,0 停用 |
| ProxyServer | 代理地址与端口 | 形如 host:8080 |
| ProxyOverride | 不使用代理的例外 | 分号分隔的目标列表 |
| AutoConfigURL | 自动配置脚本地址 | PAC 场景下使用 |
代理设置按用户存放(HKCU),排查时要确认当前是哪个登录用户;换一个用户登录后看到的会是完全不同的配置。
组策略下发的代理会被刷新周期覆盖,手工修改过一段时间可能就被改回去;动手之前先确认这台机器是否受策略托管。真正要长期调整代理,应改策略或配置管理平台,而不是逐台改注册表。