Windows 7通过cmd禁用代理-并生效


1

Windows 7(64位)通过cmd禁用代理-并生效吗?

我找到了要更改的正确注册表项,并且有代码对其进行了更改。

reg add    "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t REG_DWORD /d 0

通过找到

gpresults /h "%userprofile%\desktop\RSPO.html"

当我打开IE(以管理员身份)并手动关闭LAN代理设置时,运行“ reg add”确实会更改reg键,与更改的键相同。

但是,当我手动执行此操作时,会发生预期的效果-我不再遇到代理问题。但是通过我的cmd脚本,密钥发生了变化,但是我仍然遇到代理问题。当我在IE中打开LAN代理设置时,它仍然处于启用状态。

如何更改reg密钥并使它生效?

试图更改一堆注册表项...

当前脚本...

reg add "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t REG_DWORD /d 0
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t REG_DWORD /d 0

reg add "HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t REG_DWORD /d 0
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t REG_DWORD /d 0

试图运行带有管理权限或在其前面的提升命令的脚本?对该注册表项的访问权限可能会禁止在没有管理权限的情况下对其进行更改。您可以通过导航到regedit中的项并右击该条目来检查访问权限,这与Windows资源管理器中文件的处理方式相同。
Johannes H.

我正在以管理员身份运行cmd。运行脚本后,我得到“操作成功完成”。并且注册表项已更改。
mrdnk 2014年

您可以编辑您的问题以包括您要更改的实际注册表位置吗?
Ƭᴇcʜιᴇ007

抱歉,您去了那里-Stack Exchange登录到另一台计算机上。
mrdnk 2014年

Answers:


2

不幸的是,没有简单的方法。正如您所注意到的,您缺少了“立即阅读这些设置”命令的妙用

InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, NULL)
InternetSetOption(NULL, INTERNET_OPTION_REFRESH, NULL, NULL)

当然,您不能只从中调用C函数cmd。但是,有一种(相对)可行的方法可以使用PowerShell进行操作

function Reload-InternetOptions
{
  $signature = @'
[DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int
dwOption, IntPtr lpBuffer, int dwBufferLength);
'@
  $interopHelper = Add-Type -MemberDefinition $signature -Name MyInteropHelper -PassThru

  $INTERNET_OPTION_SETTINGS_CHANGED = 39
  $INTERNET_OPTION_REFRESH = 37

  $result1 = $interopHelper::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
  $result2 = $interopHelper::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0)

  $result1 -and $result2
}

只需像这样调用它:Reload-InternetOptionsTrue成功时将返回。

请注意,此方法每次运行时都会动态创建一些东西。它不能由PowerShell卸载,并且会一直累积,直到您退出运行该方法的PowerShell进程为止。


0

IE设置是针对每个用户的,因此我认为您只是针对错误的注册表项。

例如,要关闭整个域的代理复选框,我们在此处使用登录脚本将其禁用:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable


这就是我最初在gpresults中发现的原因…… Policy Setting Winning GPO Make proxy settings per-machine (rather than per-user) Enabled TMG Proxy Settings Policy
mrdnk 2014年

还有... Registry item (Key path: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings, Value name: ProxyEnable)
mrdnk

好的,正如您所说,它不起作用。;)如果使用HKCU密钥,它是否可以按您的意愿工作?
Ƭᴇcʜιᴇ007

尝试更改一堆密钥,请参见编辑。
mrdnk 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.