一、目的
本文介绍一种通过修改注册表的方式来修改系统代理方法,最终通过批处理脚本实现修改。
二、适用范围
1.普通用户手动执行
2.域管理员应用组策略在用户首次登陆执行
三、具体实现
1.代理服务器中设置与注册表项对应情况如下图,其中注册表位于"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings":
2.修改注册表:
reg add %regpath% /v "ProxyEnable" /t "REG_DWORD" /d "0x1" /f
命令解释:修改注册表变量路径%regpath%中名称为"ProxyEnable",类型为"REG_DWORD"的值为"0x1"(16进制表示值为1),如果注册表名不存在就会新建,这里的修改会将使用代理服务器变成打开状态,/v参数指定要修改的名称,/t参数指定修改类型,/d参数指定要修改的值,/f参数表示强制。
总共有三个修改注册表的命令,其他两个就不详细说明,可以参考上面自己去写,没有什么难度。
3.实现代码:
@echo off
rem 设置代理服务器地址(格式IP:端口),可按实际自行修改
set proxy_server=10.10.10.10:1024
rem 设置代理例外地址(IP或域名多条以;相隔,支持通配符*)其中如果包含<local>,则请勿将代理服务器用于本地地址选项将勾上
set proxy_exceptions="1.1.1.1;<local>"
rem 设置需要修改的注册表变量
set regpath="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings"
rem 备份注册表到当前用户家目录,命名为"Internet Settings.reg"
if not exist "%userprofile%\Internet Settings.reg" (
reg export %regpath% "%userprofile%\Internet Settings.reg" >nul 2>nul && echo 注册表已成功保存在"%userprofile%\Internet Settings.reg" || exit。
)
rem 修改注册表对应的项从而修改代理服务器设置
:regedit
reg add %regpath% /v "ProxyEnable" /t "REG_DWORD" /d "0x1" /f >nul 2>nul && echo 代理启用成功!
reg add %regpath% /v "ProxyOverride" /t "REG_SZ" /d %proxy_exceptions% /f >nul 2>nul && echo 代理例外配置成功!
reg add %regpath% /v "ProxyServer" /t "REG_SZ" /d "%proxy_server%" /f >nul 2>nul && echo 代理服务器配置成功!
pause
四、其他说明
1.过来人经验,可听可不听,你试试就知道了:
脚本中变量如果包含<local>,需要加上双引号(单引号应该也行):set proxy_exceptions="1.1.1.1;<local>"
2.如果要用上面脚本的需要保存成ANSI编码不然会中文部分会乱码,大概率在脚本中添加chcp 65001 >nul 切换成utf编码也能正常显示中文;
3.该脚本普通域用户也有权限操作,所以应用范围也只能是当前用户,切换了其他账户需要重新运行脚本才能修改代理服务器设置;