Windows 7 Desativar Proxy via cmd - e colocar em vigor

1

Windows 7 (64 bits) Desativar Proxy via cmd - e colocar em vigor?

Encontrei a chave de registro correta para alterar e tenho um código para alterá-la.

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

Encontrado via

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

Executar o 'reg add' altera a chave reg, a mesma chave que muda, quando abro o IE (como admin) e desativo as configurações de proxy da LAN manualmente.

No entanto, quando faço isso manualmente, o efeito desejado acontece - não tenho mais problemas de proxy. Mas através do meu script cmd, a chave muda, mas ainda tenho problemas de proxy. Quando abro as configurações de proxy da LAN no IE, ainda está habilitado.

Como faço para alterar a chave reg e colocá-la em prática?

Tentou alterar várias chaves de registro ...

Roteiro atual ...

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
    
por mrdnk 03.02.2014 / 22:05

2 respostas

1

Infelizmente, não há um caminho fácil. Como você percebeu, você está perdendo a magia " leia as configurações agora "comando :

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

Claro, você não pode simplesmente chamar uma função C de cmd . Há, no entanto, uma maneira (relativamente) viável de fazê-lo com o 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
}

Basta invocá-lo assim: Reload-InternetOptions . Ele retornará True quando for bem sucedido.

Por favor, note que este método cria dinamicamente algumas coisas toda vez que você o executa. Ele não pode ser descarregado pelo PowerShell e continuará acumulando até que você saia do processo do PowerShell que executou o método.

    
por 24.07.2015 / 22:29
0

As configurações do IE são por usuário, por isso acho que você está segmentando apenas a chave do Registro errada.

Por exemplo, para desativar nossa caixa de seleção de proxy em todo o domínio, usamos um script de login para desativá-la aqui:

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

    
por 03.02.2014 / 22:51