我正在尝试创建一个 bat 文件来切换 Internet Explorer 中的自动配置脚本复选框(参见屏幕截图中的红色框)...但不删除相关文本框中的任何现有值(参见屏幕截图中的绿色框)。
我在这里检查过:用于启用和禁用“使用自动配置脚本”的批处理文件脚本
但是该脚本 a) 删除了现有值并且 b) 似乎只禁用了复选框并且从不启用它。
@echo OFF
setlocal ENABLEEXTENSIONS
set KEY_NAME="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set VALUE_NAME=AutoConfigURL
FOR /F "usebackq skip=1 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C
)
@echo Value Name = %ValueName%
@echo Value Type = %ValueType%
@echo Value Value = %ValueValue%
IF NOT "%ValueValue%"=="yyyy" (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /t REG_SZ /d "yyyy" /f
echo Proxy Enabled
) else (
echo Hai
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /t REG_SZ /d "" /f
echo Proxy Disabled
)
pause
我在这里遗漏了什么?
答案1
我知道这是一个老问题,但是我并不容易找到解决方案,所以我想与您分享我的发现,以防您进入此页面。
在RegKey的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections
第9个值DefaultConnectionSettings
存储了以下标志:
- 自动检测设置
- 使用自动配置脚本
可用值:
01 - 这两个自动配置框均未选中
05 - 仅选中使用自动配置脚本
09 - 仅选中自动检测设置
0d - 两个都选中
我亲自导出了当前密钥,创建了一个副本并使用文本编辑器对其进行了修改。
然后根据需要通过命令行加载初始 RegKey 或通过命令修改的 RegKeyreg import KeyIWantToUse.reg
答案2
您的脚本可以工作,但基于注册表值的错误前提AutoConfigURL
。事实上,连接设置在二进制值DefaultConnectionSettings
和注册表分支SavedLegacySettings
下是混乱的HKCU\...\Internet Settings\Connections
。这里编码了所有“自动检测设置“ 开关, ”使用自动配置脚本“ 开关, ”自动配置脚本”,“绕过本地服务器的代理”开/关,代理详细信息等。
您可能要花费数年时间来研究这些价值观结构。
好消息:通过删除注册表中的值DefaultConnectionSettings
,您可以设置SavedLegacySettings
Internet 设置连接恢复到其原始默认状态...对于其他设置:通过进行调整inetcpl.cpl
并将其导出到.reg
文件以供稍后导入。