Script para configurar Proxy.


É comum em uma rede grande, onde cada usuário tem a sua conta, ter que configurar o proxy de um por um. Você simplesmente tem que fazer isso de máquina em máquina e para cada conta de usuário. É um trabalho ingrato, mas você pode simplesmente orientar o usuário, por telefone, de como fazer a configuração caso precise. Mas por que não automatizar?
Faça um pequeno script com a sua configuração e poupe alguns instantes de trabalho. Vamos criar um script (BAT) para ser usado como um comando qualquer e um script em VB caso precise de interação com o usuário. Você pode colocar um atalho para os scripts em um local fácil para o usuário, e uma cópia no path para que seja executado como um comando normal. Por fim você pode colocá-lo para ser executado no logon do usuário ou nos scripts do domínio via GPO.

Abra o bloco de notas e copie o seguinte conteúdo:

@echo off
rem Configurar proxy

reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d 192.0.2.1:3128 /f
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /d 1 /f
reg add "
hkey_current_user\Software\Microsoft\Windows\currentVersion\Internet Settings" /v ProxyOverride /d "*intranet.exp.br;192.168.0.1;www.caixa.gov.br;<local>" /f

echo.
echo Servidor Proxy Padrão definido

E salve o arquivo como o nome "SetProxy.cmd". Copie o arquivo para a pasta System32 para que possa ser executado como um comando qualquer. Lembre-se de substituir o endereço pelo endereço do seu servidor proxy com a porta e as exceções de acordo a sua necessidade. Caso não use nenhuma exceção deixe apenas o valor "<local>" que é bem comum ser usado. 

Você pode criar um atalho para o script em um lugar fácil de os usuários encontrarem, ou mesmo pedir para executar procurando na pesquisa do Windows.

Em alguns casos os usuários de notebook podem sair da sua rede para locais onde não há servidor proxy, e fica meio complicado explicar todo o caminho para que ele saiba desabilitar a configuração. Com um script em VB você pode fazer aparecer uma caixinha de diálogo "SIM ou NÃO" para ele usar sempre que quiser.

Crie um segundo arquivo no bloco de notas e valve com o nome "ConfProxy.VBS":

dim ConfProxy
set ConfProxy = Wscript.CreateObject("Wscript.Shell")

if msgbox("Habilitar Proxy?", vbQuestion or vbYesNo) = vbYes then
ConfProxy.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD" 
ConfProxy.RegWrite "HKCU\Software\Microsoft\Windows\currentVersion\Internet Settings\ProxyServer", "192.0.2.1:3128", "REG_SZ" 
ConfProxy.RegWrite "HKCU\Software\Microsoft\Windows\currentVersion\Internet Settings\ProxyOverride", "*intranet.exp.br;192.168.0.1;www.caixa.gov.br;<local>", "REG_SZ"
else 

ConfProxy.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 0, "REG_DWORD" 
End if 
Set ConfProxy = Nothing

Clicando no script o usuário pode selecionar sim ou não. Você pode salvar na área de trabalho ou fazer um atalho.

Deixando o script mais robusto

Se você odeia fazer configurações manualmente, e precisa alterar essas configurações frequentemente, você pode aprimorar o script para que ele defina o endereço do servidor com um argumento, ou mesmo que habilite ou não a configuração. Veja o código abaixo:

@echo off
rem Configurar proxy

set Arg1=%1
set Arg2=%2
if defined Arg1 goto %Arg1%

rem ---- Define a configuração padrão
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d 192.0.2.1:3128 /f
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /d 1 /f

reg add "hkey_current_user\Software\Microsoft\Windows\currentVersion\Internet Settings" /v ProxyOverride /d "*intranet.exp.br;192.168.0.1;www.caixa.gov.br;<local>" /f
echo.
echo Servidor Proxy Padrão definido
goto fim

rem  ----- Define segundo o IP informado no argumento IP
:/IP
:IP
if not defined Arg2 goto ERRO
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d %Arg2% /f
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /d 1 /f
echo.
goto fim

rem ----- Desativa o uso do proxy
:/disable
:disable
:/off
:off
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /d 0 /f
echo.
echo Uso de servidor Proxy desabilitado
goto fim

rem ----- Ativa o uso do proxy
:/enable
:enable
:/on
:on
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /d 1 /f
echo.
echo Uso de servidor Proxy habilitado
goto fim

:--help
:--?
:help
:/h
:/help
:?
:-?
echo.
echo  Uso do SetProxy
echo          Setproxy - Definie o servidor padrão
echo         "SetProxy IP <IP do servidor>:<porta> " - Define o IP e porta do proxy
echo          SetProxy off - Desabilita o proxy
echo.
echo Exemplo: SetProxy IP 192.168.88.1:8080
echo.
goto fim

:ERRO
echo.
echo    Você deve especificar o endereço do servidor para a opção IP
echo "SetProxy IP <IP do servidor>:<porta>" - Define o IP e porta do proxy
echo.
echo Exemplo: SetProxy IP 192.0.2.1:3128
echo.
goto fim

:fim


Veja que agora você pode executar o script usando o argumento IP <IP do servidor>:<porta>, ou os argumentos "on" ou "off" para habilitar ou desabilitar. Qualquer argumento inválido o o programa é encerrado sem qualquer alteração, e se usado sem argumentos a configuração padrão é carregada.

SetProxy ?   ---- Exibe o help
SetProxy IP 10.0.0.250:8080 ---- Configura o proxy com o endereço fornecido.
SetProxy ON    -----  Habilita o uso do proxy
SetProxy OFF    -----  Desabilita o uso do proxy

Para multiplicar este arquivo em toda rede você pode fazer uma GPO ou deixar uma cópia em uma pasta compartilhada facilmente acessível. Ou até mesmo copiá-lo para todos os PCs. Outro recurso interessante é colocar uma entrada autorun para ele no registro. Veja os comandos abaixo:

# Coloca uma entrada para o perfil do usuário atual:
reg add "hkey_current_user\Software\Microsoft\Windows\CurrentVersion\Run" /v ConfProxy /d "<CaminhoDoScript>" /f

# Coloca uma entrada para ser executado no logon de todos usuários:
reg add "hkey_local_machine\Software\Microsoft\Windows\CurrentVersion\Run" /v ConfProxy /d "<CaminhoDoScript>" /f

Comentários

  1. me ajude eu uso o proxy 200.142.130.104:80 da vivo pode me ajudar deixar esse proxy padrão para todo computador para instalar atualização do windows updade e assistir online que não dá. valew muito obrigado. meu imail junior_k100@hotmail.com

    ResponderExcluir
  2. Muito Bom, funcionou!! Obrigado

    ResponderExcluir
  3. Parabéns! Muito boa a publicação e me ajudou muito.

    ResponderExcluir
  4. Pode me ajudar a fazer um desse que ativa e desativa?

    ResponderExcluir
  5. Alguém sabe um script para Ativar/Desativar o check box da opção (Usar script de configuração automática) que fica no meno de Configurações da Rede Local (LAN) junto com a configuração do proxy?

    ResponderExcluir
  6. Estou precisando de mesma solução que o colega Marcos Alencar citou, alguem consiguiu algo?

    ResponderExcluir
  7. Bom dia a todos,

    Passando pra informar que encontrei a seguinte solução abaixo via vbscript:

    ============================================================

    dim oShell
    set oShell = Wscript.CreateObject("Wscript.Shell")
    configproxy = "proxy:porta"

    if msgbox("Navegar com Proxy?", vbQuestion or vbYesNo) = vbYes then
    oShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD"
    oShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer", configproxy, "REG_SZ"
    oShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyOverride", ""
    oShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL", ""
    else
    oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 0, "REG_DWORD"
    end if

    Set oShell = Nothing

    ============================================================

    ResponderExcluir
  8. Me ajudou muito, pois trabalho no suporte e sempre tem esse probleminha com os usuários.

    ResponderExcluir
  9. Muito bom o script. Teria alguma forma de determinar faixas de IPs? Caso a máquina estiver dentro de uma faixa de IPs, ele ativa o proxy. Caso estiver em outra faixa de IP ele remove o proxy?

    ResponderExcluir
    Respostas
    1. Isso seria o caso do VB script. Aí o usuário decide na caixinha se ele quer ou não o proxy. Para ser automático teria que fazer um outro para chegar a configuração IP do PC e rodar na inicialização. Seria bem mais complicado.

      Excluir
  10. E qual o código VB para setar o endereço de script do proxy? para não precisar ir lá colocar, alguma dica/??

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Entendendo as VLAN's