miércoles, 26 de febrero de 2014

Bat para activar y desactivar proxy en Windows

Las necesidades surgen y .bat da para todo, estos archivos son uno de los puntos de apoyo fundamentales para muchas de nuestras labores diarias.

Nuestro requerimiento era sencillo, acababa de implementar el servidor proxy y se encontraba configurado en modo transparente, (navega normalmente por el puerto 80) esto no permite que la restricción sea completa o satisfactoria ya que no deja aplicar ciertos parámetros sobre las configuraciones establecidas, por lo cual era necesario activar el proxy  completamente.

El problema: la mayoría de usuarios manejan sus portátiles personales, y al hacer la activación del proxy se debería configurar todas las mañanas y desactivar todas las tardes en cada equipo.

La solución: UN .BAT =)
No olvides reemplazar XX.XX.XX.XX:PPPP por la direccion IP del proxy seguida del puerto del tipo 192.168.1.2:8080
Los comentarios inician con la palabra REM seguir instrucciones de estos comentarios

(Actualizado 04 de Agosto de 2017)
Se realiza inclusión de Exepciones  por solicitud de talamiles
(Actualizado 26 de Mayo de 2017)
Se realiza inclusión de activación casilla "no usar proxy para direcciones locales"  por solicitud de ricardinhos


@echo off
:menu
cls
echo.
REM Creamos un menu
echo Seleccione una opcion:
echo.
echo 1: Activar Proxy.
echo.
echo 2: Quitar Proxy.
echo.
echo.
REM de acuerdo a nuestra eleccion se realiza la accion solicitada.
@set /p opcion=
echo.
REM opcion 1 comando para activar el proxy por registro
if %opcion%==1 (
cls
@echo Estado
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
REM remplazamos las X por la direccion IP de servidor proxy y las P por el puerto a utilizar en el proxy
REM NO OLVIDAR LOS DOS PUNTOS
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "XX.XX.XX.XX:PPPP" /f
REM si se tiene algunas IPs para exepcion cambiar las x1 y las x2 por la ip 1 e ip 2, se pueden adicional las ip que se deseen separadas por punto y coma
REM si no se van a añadir exepciones y solo  eliminar todo menos <local>
REM si no se requiere "no usar proxy para direcciones locales"  eliminar toda la linea siguiente
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "x1.x1.x1.x1;x2.x2.x2.x2;<local>" /f
@echo Proxy activado y configurado
pause
REM iniciamos internet explorer para poder confirmar la configuracion en todo el sistema (otros browser)
"%programfiles%\Internet Explorer\iexplore.exe"
goto salida)
REM la opcion 2 deshabilita el proxy.
if %opcion%==2 (@echo Estado
cls
@echo off
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
echo.
@echo Proxy desactivado
pause
REM iniciamos internet explorer para poder confirmar la configuracion en todo el sistema (otros browser)
"%programfiles%\Internet Explorer\iexplore.exe"
goto salida)
:salida


(la version anterior presentaba fallas de interlineado lo cual proporcionaba errores al momento de su ejecucion)
Tomamos este código o pegamos en un block de notas y lo guardamos como proxy.bat. y lo distribuimos a los usuarios que requieran esta configuración.

Para dejarlo mas "Bonito" podemos usar bat2exe para convertirlo en un ejecutable e impedir así la modificación del código.



 "Si te fue útil la información HAZ CLICK EN LA PUBLICIDAD DE GOOGLE" visitando nuestros anunciantes, agradeces nuestro trabajo...

33 comentarios:

  1. gracias por este aporte, funciona excelente con unas pequenas nodificaciones que se tiene que hacer en el copiado del codigo al editor.
    Gracias

    ResponderEliminar
  2. cuales son las modificaciones me sale error

    ResponderEliminar
  3. me sale el error


    ERROR: sintaxis incorrecta.
    Escriba "REG ADD /?" para obtener detalles de uso.
    "ProxyEnable" no se reconoce como un comando interno o externo,
    programa o archivo por lotes ejecutable.

    Proxy desactivado
    Presione una tecla para continuar . . .

    ResponderEliminar
  4. Ya se realizo actualizacion del codigo el cual fallaba por un espaciado en los comentarios y unos saltos de linea en la inclusion de los registros lo que generaba errores

    ResponderEliminar
  5. Buen dia, quiero poner Chrome en vez iexplorer para realizar la prueba como lo hago.

    ResponderEliminar
    Respuestas
    1. Buen dia Rodolfo,
      Generalmente se instala la version de chrome de 32 bit para lo cual deberias cambiar la antepenultima linea que dice:

      "%programfiles%\Internet Explorer\iexplore.exe"

      por

      "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

      y si tienes la version de 64bit esta deberia funcionar:
      "%programfiles%\Google\Chrome\Application\chrome.exe"

      aunque te puedes asegurar haciendo click derecho sobre el acceso directo de chrome y copiando la linea de la opcion destino, (target para widows en ingles)

      Eliminar
  6. Buena info aunque tuve que hacer algunas modificaciones adicionales porque siempre tenía que abrir la configuración de proxy y darle a aceptar para que tomara los cambios después de ejecutar el batch.Solucion, hacer copia del registro con proxy habilitado y luego deshabilitado y ahora ejecuto los archivos reg. Gracias ARKANGEL

    ResponderEliminar
    Respuestas
    1. Es satisfactorio saber que estas publicaciones sirven de guia para seguir solucionando pequeñas necesidades diarias. A ti gracias por leerme.

      Eliminar
    2. Tantan Javv, que fue lo que tuviste que hacer para no tener que darle aceptar a la configuracion de proxy????

      Eliminar
  7. ¿SE puede añadir alguna linea en el bat para que la opcion "no usar proxy para direcciones locales" se active tambien cuando se activa el proxy?
    Gracias y un saludo.

    ResponderEliminar
    Respuestas
    1. Buen dia, ricardinhos, claro que si se puede, ya fue modificado el código para que active la casilla solicitada, pruebalo y nos cuentas.
      Solo se debía agregar en la entrada ProxyOverride

      Eliminar
    2. Muchas gracias, esta pefecto.

      Eliminar
  8. Hola esta buenísimo el bat, te quería consultar como puedo hacer para que se agreguen también las excepciones?

    ResponderEliminar
    Respuestas
    1. Hola talamiles disculpa la demora en contestar pero
      ya actualice la entrada dando indicaciones de como realizar esta accion
      Ojala aun te sea util el dato

      Eliminar
    2. Busca en el bat este comentario:
      REM si se tiene algunas IPs para exepcion cambiar las x1 y las x2 por la ip 1 e ip 2, se pueden adicional las ip que se deseen separadas por punto y coma

      Eliminar
  9. Excelente aporte me funciono al cien y si solo modificas alas necesidades de cada quien en su contexto muy bueno...

    ResponderEliminar
  10. estimados, sigo los pasos me modifica el proxy pero al momento de desabitarlo ahun asi sigo navegando ne internet por favor me pueden ayudar

    @echo off
    :menu
    cls
    echo.
    REM Creamos un menu
    echo Seleccione una opcion:
    echo.
    echo 1: Activar Proxy.
    echo.
    echo 2: Quitar Proxy.
    echo.
    echo.
    REM de acuerdo a nuestra eleccion se realiza la accion solicitada.
    @set /p opcion=
    echo.
    REM opcion 1 comando para activar el proxy por registro
    if %opcion%==1 (
    cls
    @echo Estado
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
    REM remplazamos las X por la direccion IP de servidor proxy y las P por el puerto a utilizar en el proxy
    REM NO OLVIDAR LOS DOS PUNTOS
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d http://pac.zscalertwo.net/bbraun.com/bbmclvzen.pac /f
    REM si se tiene algunas IPs para exepcion cambiar las x1 y las x2 por la ip 1 e ip 2, se pueden adicional las ip que se deseen separadas por punto y coma
    REM si no se van a añadir exepciones y solo eliminar todo menos
    REM si no se requiere "no usar proxy para direcciones locales" eliminar toda la linea siguiente
    @echo Proxy activado y configurado
    pause
    REM iniciamos internet explorer para poder confirmar la configuracion en todo el sistema (otros browser)
    "%programfiles%\Internet Explorer\iexplore.exe"
    goto salida)
    REM la opcion 2 deshabilita el proxy.
    if %opcion%==2 (@echo Estado
    cls
    @echo off
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
    echo.
    @echo Proxy desactivado
    pause
    REM iniciamos internet explorer para poder confirmar la configuracion en todo el sistema (otros browser)
    "%programfiles%\Internet Explorer\iexplore.exe"
    goto salida)
    :salida-------------------------------------------

    ResponderEliminar
  11. excelente lo adecuas a tus necesidades, es sencillo y funciona perfecto

    ResponderEliminar
    Respuestas
    1. Me alegra que aun con el tiempo, les siga siendo util este Bat

      Eliminar
  12. Muy bueno, Funciona excelente.. Gracias...

    ResponderEliminar
  13. Funciona, lo modifique a mis necesidades, muchas gracias.

    ResponderEliminar
  14. Amigo, para mi fue de utilidad, gracias por compartir!

    ResponderEliminar
  15. Muchisimas gracias!!!
    hace tiempo estaba buscando algo asi porque trabajo en tres lugares y los tres lugares tienen proxy distintos. Modifique el archivo y le agrege dos entradas mas al menu, en cada una activo un proxy con direccion diferente.
    GRACIAS!! SALUDOS DESDE CORRIENTES ARGENTINA.

    ResponderEliminar
    Respuestas
    1. Fernando, me alegra que te haya sido util este pequeño aporte. Saludos.

      Eliminar
  16. funciono perfecto!! y muy bien indicado la parte custom!!
    +10!!

    ResponderEliminar
  17. moltes gràcies per la teua aportació

    ResponderEliminar
  18. Buen día;
    Excelente aporte, me sirvió bastante.
    Mi duda es como puedo confirmar los cambios para todo el sistema sin abrir iexplorer

    ResponderEliminar
  19. Hola, muy buena info, si bien funciona perfecto y activa o desactiva visualmente el proxy revisando las opciones de internet, es como que no hace efectiva la configuración hasta que abro las opciones de internet, es decir ejecuto el bat, activo proxy y no navega, reviso las opciones de internet, el proxy efectivamente esta activo, entonces cierro las opciones de internet y ya puedo navegar, y para desactivar el proxy lo mismo, ejecuto bat, sigo navegando, reviso opciones de internet, figura desactivado, cierro opciones de internet y ya dejo de navegar.
    Lo probe en varias maquinas con win 7 y win 10, como se podria solucionar esto?

    Gracias, saludos.

    ResponderEliminar
    Respuestas
    1. LAPA muchas gracias por tu comentario, estoy haciendo pruebas, 0dejame esta semana, y si encuentro solucion, la publico aqui como actualizacion al blog.

      Eliminar
  20. Despues de darle una vuelta llegue a esto:

    @echo off
    color a
    :menu
    cls
    echo.
    echo Seleccione una opcion
    echo.
    echo 1: Activar Proxy
    echo.
    echo 2: Desactivar Proxy.
    echo.
    echo 3: Salir.
    echo.
    echo.
    @set /p opcion=Elija una opcion segun desee [1 - 3]:
    cls
    if %opcion%==1 goto activar
    if %opcion%==2 goto desactivar
    if %opcion%==3 goto exit
    :activar
    cls
    color a
    echo.
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "XXX.XXX.XXX.XXX:PPPP" /f
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "*.XX1;*.XX2;*.XX3;*.XX4" /f
    echo.
    echo Proxy activado y configurado
    echo.
    "%programfiles%\Internet Explorer\iexplore.exe"
    goto exit
    cls
    color a
    echo.
    :desactivar
    cls
    color a
    echo.
    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
    echo.
    echo Proxy desactivado
    echo.
    "%programfiles%\Internet Explorer\iexplore.exe"
    goto exit
    cls
    echo.
    :exit
    echo "Gracias por utilizar nuestra app"
    pause
    echo.
    cls
    exit

    ResponderEliminar
  21. buena tarde, una forma de que no tengas que interactuar con el bat, que automático lo active y configure?
    muchas gracias.-

    ResponderEliminar
  22. Muchas gracias. Se activaba solo el proxy por políticas de la empresa, y tenia que estar activando/ desactivando segun lo que vaya necesitando y era bastante tedioso. Solo le saque lo de que se abra internet explorer...capaz a futuro lo divida en dos, activar y desactivar, para no tener que seleccionar opcion, y que haga todo de una.

    ResponderEliminar

Comentar tambien es agradecer