Windows 脚本用于切换自动配置脚本复选框而不删除任何现有字符串值

Windows 脚本用于切换自动配置脚本复选框而不删除任何现有字符串值

我正在尝试创建一个 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

感谢 Jamie谷歌集团狮子座堆栈溢出 这对我帮助很大。

答案2

您的脚本可以工作,但基于注册表值的错误前提AutoConfigURL。事实上,连接设置在二进制值DefaultConnectionSettings和注册表分支SavedLegacySettings下是混乱的HKCU\...\Internet Settings\Connections。这里编码了所有“自动检测设置“ 开关, ”使用自动配置脚本“ 开关, ”自动配置脚本”,“绕过本地服务器的代理”开/关,代理详细信息等。

您可能要花费数年时间来研究这些价值观结构。

好消息:通过删除注册表中的值DefaultConnectionSettings,您可以设置SavedLegacySettingsInternet 设置连接恢复到其原始默认状态...对于其他设置:通过进行调整inetcpl.cpl并将其导出到.reg文件以供稍后导入。

相关内容