修改注册表不起作用时,如何通过PowerShell禁用代理?

时间:2019-06-10 16:06:04

标签: powershell proxy windows-10

我正在卸载一个应用程序,该应用程序由于错误有时会启用Windows 10中的Windows代理设置。PC分布在全球,因此我需要安排一个任务在卸载后触发(以防启用代理并且网络连接正常)丢失)以检查是否启用了代理,然后将其关闭。

我已经运行了下面的PowerShell代码以在测试时编辑注册表,但是没有其他方法可以实现这一目标。

我确保所有浏览器都已关闭,我已经刷新了服务,并且已关闭并重新启动计算机。

Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyServer -Value ""
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyEnable -Value 0

我已经确认注册表设置反映了上述更改,但是GUI(通过“设置”或Internet Explorer)仍然显示已启用代理,并且除非我手动取消选中此复选框,否则网络连接仍然关闭。

这些代理设置实际存储在哪里,除了每个人都引用的注册表值之外,还必须有其他位置。当我为伪造的代理和端口设置值时,无论启用还是禁用,这些设置都会保留在GUI中,直到更改为止,但是注册表设置永远不会更新为这些值。这些设置必须位于其他位置。有人知道吗?

2 个答案:

答案 0 :(得分:0)

我找到了答案。当以提升的用户身份运行PowerShell和Regedit时,“当前用户”上下文将更改为该提升的用户。注册表项需要在HKEY_USERS下进行编辑,然后为有问题的用户找到SID并在那里修改条目。

答案 1 :(得分:0)

我遇到了同样的问题,但我还必须删除两个注册表。然后代理设置被禁用,我的脚本无法运行。

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections" /v SavedLegacySettings /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections" /v DefaultConnectionSettings /f