none
Scripts de Configuração Automática do IE RRS feed

  • Pergunta

  • Olá Pessoal,

    Tenho um cliente que possui um notebook, onde ele, quando está dentro da empresa acessa a internet via proxy interno.
    Mas quando está em qualquer outro lugar, precisa desmarcar a opção de usar proxy no IE.

    Gostaria de saber se existe alguma forma de otimizar esse processo, criando algum script que verifique a froma de conexao, ou pelo IP que esta acostumado, ou alguma coisa do genero que ele possa se basear para ussar ou naum usar o proxy.

    Desde ja agradeço

    Abraços

    Roberto Medeiros

    segunda-feira, 18 de dezembro de 2006 13:47

Respostas

  • Ola Roberto,

    Esse tipo de configuração é complicado de fazer para funcionar automaticamente. Ainda mais sendo um notebook pois o usuário pode deixá-lo logado de uma rede para outra.

    Você pode criar um script para ativar/desativar o proxy e deixar na area de trabalho do usuário ou instalar o plug-in Proxy ToolBar - http://www.softjamboree.com/Internet/Browser-Plug-ins/Proxy-Toolbar-for-MSIE.html

     

    segunda-feira, 18 de dezembro de 2006 19:57
  • cara faz usando bat mesmo (não é a solução mais elegante, mas resolve teu problema):

    Encontre a chave do registro e exporte-a com as duas opções "enable" e "disable". despois execute-as de acordo com suas necessidades.

    Como elas ficam em HKU (Current User) você tem permissão de alterar as mesmas.

    Se for para um gerente seu crie uma bat usando o comando reg /import

     

     

    C:\>reg import /?

    Ferramenta de console do Registro para Windows - versão 3.0
    Copyright (C) Microsoft Corp. 1981-2001. Todos os direitos reservados


    REG IMPORT FileName

      FileName  O nome do arquivo de disco a importar (apenas máquina local)

    Exemplos:

      REG IMPORT AppBkUp.reg
        Importa as entradas de registro do arquivo AppBkUp.reg

     

     

    Mas se vc quizer fazer algo difrenciado crie um script que ao ser executado no inicializar e tente "pingar" o ip seu dominio e caso não consiga ele altomaticamente desabilite a opção?

    Se for repito se for para o seu superior ou outro no topo da cadeia alimentar faça um pouco de marketing pessoal no negócio.

     

    Boa sorte.

    Ps.: Tenta mais um pouco.

     

     

     

     

    quarta-feira, 26 de março de 2008 21:03

Todas as Respostas

  • Ola Roberto,

    Esse tipo de configuração é complicado de fazer para funcionar automaticamente. Ainda mais sendo um notebook pois o usuário pode deixá-lo logado de uma rede para outra.

    Você pode criar um script para ativar/desativar o proxy e deixar na area de trabalho do usuário ou instalar o plug-in Proxy ToolBar - http://www.softjamboree.com/Internet/Browser-Plug-ins/Proxy-Toolbar-for-MSIE.html

     

    segunda-feira, 18 de dezembro de 2006 19:57
  • Tem sim. O proxy do IE fica guardado na seguinte dado do registro:

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


    Basta configurar as duas e exportar os arquivos de registro.


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    terça-feira, 19 de dezembro de 2006 02:08
    Moderador
  • Bom dia amigos.

     

    Estou na mesma situação. Preciso montar um script para habilitar o proxy quando o notebook estiver na rede interna e que desabilite ele quando estiver em uma rede externa.

     

    Alguém já montou um script desse? Desde já agradeço a atençã de todos.

    Diogo

     

    terça-feira, 18 de março de 2008 12:57
  • Boas,

     

    A melhor maneira é utilizar um ficheiro proxy.pac, que pode ser utilizado no notepad ou em todas as estações de trabalho.

     

    Podes colocar este ficheiro num IIS interno para as maquinas acederam ou então no Logon script copiares para a maquina local e apontares na configuração do proxy no IE a localização do ficheiro proxy.pac que escolheste.

     

    Ver artigos seguintes, alguma duvida não hesites em colocar aqui.

    http://support.microsoft.com/kb/884430/en-us

    http://en.wikipedia.org/wiki/Proxy_auto-config

    http://www.davidpashley.com/articles/automatic-proxy.html

    http://www.unerj.br/unerj/servicos/faq/conf-proxy.doc

    http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

     

    Exemplo de ficheiro proxy.pac: http://internet.truernetworks.com/proxy.pac

     

    Um abraço,

    João Dias

    Não te esqueça classificar a mensagem como "respondido", caso tenha ajudado

    quinta-feira, 20 de março de 2008 12:26
  • Olá Vinícius,

     

    entendi a lógica e onde alterar, mas qual a condição que utilizarei para usar uma configuração ou a outra?

     

    Obrigado

     

    segunda-feira, 24 de março de 2008 12:58
  • cara faz usando bat mesmo (não é a solução mais elegante, mas resolve teu problema):

    Encontre a chave do registro e exporte-a com as duas opções "enable" e "disable". despois execute-as de acordo com suas necessidades.

    Como elas ficam em HKU (Current User) você tem permissão de alterar as mesmas.

    Se for para um gerente seu crie uma bat usando o comando reg /import

     

     

    C:\>reg import /?

    Ferramenta de console do Registro para Windows - versão 3.0
    Copyright (C) Microsoft Corp. 1981-2001. Todos os direitos reservados


    REG IMPORT FileName

      FileName  O nome do arquivo de disco a importar (apenas máquina local)

    Exemplos:

      REG IMPORT AppBkUp.reg
        Importa as entradas de registro do arquivo AppBkUp.reg

     

     

    Mas se vc quizer fazer algo difrenciado crie um script que ao ser executado no inicializar e tente "pingar" o ip seu dominio e caso não consiga ele altomaticamente desabilite a opção?

    Se for repito se for para o seu superior ou outro no topo da cadeia alimentar faça um pouco de marketing pessoal no negócio.

     

    Boa sorte.

    Ps.: Tenta mais um pouco.

     

     

     

     

    quarta-feira, 26 de março de 2008 21:03

  • Vamos lá, a minha solução não é das melhores, mas está funcionando.

    Eu tinha o mesmo problema aqui na empresa onde trabalho, e resolvi da seguinte forma:

    1. Quando o usuário faz logon no domínio ele executa o script para copiar o vbs para a estação e configurar sua execução quando o computador inicia:

    If (notebook = "S") Then
    On Error Resume Next
    fso.CopyFile "\\" & servidorARQ & "\TesteIP.vbs", localwin & "\"
    If (localwin = "C:\WINNT") Then    
    On Error Resume Next
    wshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\TesteIP", "C:\Winnt\testeip.vbs", "REG_SZ"
    Else
    On Error Resume Next
    wshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\TesteIP", "C:\Windows\testeip.vbs", "REG_SZ"   
    End If


    2. E o com o script abaixo, que foi copiado para a estação e é executado sempre que o computador é iniciado, eu determino se a estação está na rede local ou não:

    Dim ts, linha1, linha2, tam
    Dim ip, rede, rpin, resp, R, oExec, usuario
    Dim teste1, teste2, teste3
    Dim fso, wshShell, wshNetwork, localwin

    Const ForReading = 1

    Set wshShell = WScript.CreateObject("WScript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set wshNetwork = WScript.CreateObject("WScript.Network")

    usuario = wshNetwork.UserName
    usuario = UCase(usuario)

    localwin = WshShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
    localwin = UCase(localwin)

    ' ========>>>>> yyy.yyy.yyy.yyy é o endereço IP do gateway da rede local onde o proxy está instalado

    Set oExec = WshShell.Exec("cmd /C ipconfig.exe > " & localwin & "\testeip.txt & ping yyy.yyy.yyy.yyy -n 1 >> " & localwin & "\testeip.txt")

    Do While oExec.Status = 0
         WScript.Sleep 100
    Loop

    If (localwin = "C:\WINNT") Then
      '*** Inicio da Leitura do Arquivo TesteIP.txt para W2K.
      '***********************************************
      On Error Resume Next
      Set ts = fso.OpenTextFile(localwin & "\testeip.txt", ForReading)
      'Set ts = fso.OpenTextFile("c:\testeip\testeip.txt", ForReading)
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      linha1 = ts.ReadLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      linha2 = ts.ReadLine
      ts.Close
      '***********************************************
      '*** Fim da Leitura do Arquivo TesteIP.txt para W2K.
    Else
      '*** Inicio da Leitura do Arquivo TesteIP.txt para XP.
      '***********************************************
      On Error Resume Next
      Set ts = fso.OpenTextFile(localwin & "\testeip.txt", ForReading)
      'Set ts = fso.OpenTextFile("c:\testeip\testeip.txt", ForReading)
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine 
      linha1 = ts.ReadLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      ts.SkipLine
      linha2 = ts.ReadLine
      ts.Close
      '***********************************************
      '*** Fim da Leitura do Arquivo TesteIP.txt para XP.
    End If 

    ip = Right(linha1,14)     'Rotorna os ultimos 14 Caracteres da linha 1 (IP atual)
    ip = Trim(ip)             'Descarta os caracteres em branco
    rede = Left(ip,9)         'Descarta o ultimo octeto da variavel IP
    resp = Left(linha2,9)     'Rotorna os primeiros caracteres da linha 2 (Resposta de Ping)


    ' ========>>>>> xxx.xxx.xxx São os três primeiros octetos da rede local onde o proxy está instalado, depois de ler o
    ' ========>>>>> arquivo acima, ele fará os teste abaixo para determinar se a máquina está na rede local ou não.

    teste1 = "xxx.xxx.xxx"    'Define qual a Rede Original da Estacao
    teste2 = "xxx.xxx.xxx"    'Define qual a Rede Original da Estacao
    teste3 = "Resposta"     'Define qual a Resposta do Ping para o Gateway

    If (rede = teste1) or (rede = teste2) and (resp = teste3) Then 
        'MsgBox "IP Igual"
        On Error Resume Next
        wshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer", "servidor:xxxx", "REG_SZ"
        wshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", "1", "REG_DWORD"

    ' ========>>>>> As linhas abaixo bloqueaiam as configuração da LAN no Browser, para que o usuário não desabilite o proxy

        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Connwiz Admin Lock", "1", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Connection Settings", "1", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Proxy", "1", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Autoconfig", "1", "REG_DWORD"
    Else
        'MsgBox "IP Diferente"
        On Error Resume Next
        wshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer", "", "REG_SZ"
        wshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", "0", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Connwiz Admin Lock", "0", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Connection Settings", "0", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Proxy", "0", "REG_DWORD"
        wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\Autoconfig", "0", "REG_DWORD"
    End If
    quarta-feira, 16 de abril de 2008 18:45
  •  

    Olá Pessoal,

     

    eu estou utilizando o proxy.pac para os notebooks dos chefões daqui, mais ainda esta na fase de teste , porem estou achando muito lento queria uma forma de melhorar esta performance , como eu poderia melhorar?

     

    o meu esta da seguinte forma:

     

    function FindProxyForURL(url, host)
    {
       if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
          return "DIRECT";
       } else {
          if (shExpMatch(url, "http:*"))
             return "PROXY servidorproxy:8080" ;
          if (shExpMatch(url, "https:*"))
             return "PROXY servidorproxy:8080" ;
          if (shExpMatch(url, "ftp:*"))
             return "PROXY servidorproxy:8080" ;
          return "DIRECT";
       }
    }

     

    Alguem poderia me dar uma ideia de melhoria?

    Obrigada

    terça-feira, 29 de abril de 2008 20:14
  • Amigo,
    Eu desisti desta idéia. Ativei um recurso de VPN e agora mesmo fora da empresa os notebooks acessam pela o proxy interno pela VPN. Em casos extremos eu deixoa opção de configurção da LAN livre para alteração.
    Um abraço.
    • Sugerido como Resposta Diogo Campregher terça-feira, 27 de outubro de 2009 15:53
    • Não Sugerido como Resposta Fábio JrModerator sexta-feira, 13 de janeiro de 2012 11:10
    • Sugerido como Resposta Kristatus Kinsky quinta-feira, 20 de junho de 2013 02:51
    • Não Sugerido como Resposta Kristatus Kinsky quinta-feira, 20 de junho de 2013 02:51
    terça-feira, 27 de outubro de 2009 15:52
  • function FindProxyForURL(url, host)
    {

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Definição das variaveis

        var proxy_primary = "PROXY 192.168.74.15:3128";
        var proxy_secondary = "PROXY 192.168.74.15:3128";
        var proxy_no = "DIRECT";

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // converte todo o nome para minúsculo hosts e destinos

        host = host.toLowerCase();
        var resolved_IP = dnsResolve(host);


    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Se a url não conter pontos saia sem o proxy.

        if (isPlainHostName(host))
        {
            return proxy_no;
        }

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Endereços internos rcf 1918 que não passam pelo proxy.
    // 

        // Se a requisição for RCF 1918, vá diretamente. (Necessário colocar os 2 primeiros octetos)

        if (isInNet(resolved_IP, "10.8.0.0", "255.255.0.0") ||
       isInNet(resolved_IP, "10.5.0.0", "255.255.0.0") ||
       isInNet(resolved_IP, "10.6.0.0", "255.255.0.0") ||
                isInNet(resolved_IP, "10.132.0.0", "255.255.0.0") ||
                isInNet(resolved_IP, "192.168.0.0", "255.255.0.0") ||
                isInNet(resolved_IP, "191.6.7.0", "255.255.255.0") ||
       isInNet(resolved_IP, "127.0.0.0", "255.255.0.0") ||
       isInNet(resolved_IP, "186.202.137.155", "255.255.255.0") ||
       isInNet(resolved_IP, "172.28.0.0", "255.255.0.0"))  
        {
            return proxy_no;
        }


        // Se a requisição contiver as palavras santandernetibe.com.br, skype.com...etc, não passarão pelo Proxy. :
        if (shExpMatch(host, "*.santandernetibe.com.br") ||
       shExpMatch(host, "*.skype.com") ||
                shExpMatch(host, "*.receita.fazenda.gov.br") ||
                shExpMatch(host, "*.schibsted.com.br") ||
       shExpMatch(host, "*.skype.com") ||
       shExpMatch(host, "*.google.com") ||
       shExpMatch(host, "*.gstatic.com") ||
       shExpMatch(host, "*.googleusercontent.com") ||
       shExpMatch(host, "*.sgpiu.org.br"))


        {
            return proxy_no;
        }

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // Caso nenhuma das regras acima sejam verdadeiras envie para o proxy primário.

       else    
            return proxy_primary;


    }

    Amigo o meu funcionou muito bem assim.

                  
    segunda-feira, 9 de novembro de 2015 13:16