none
Script para ver configuracion PROXY RRS feed

  • Pregunta

  • Hola a todos,

    Necesito un script (hta o vbs) para visualizar la configuración del proxy del usuario actual, que muestre:

    - Nombre/IP del Proxy

    - Si está habilitado o no

    - Excepciones

    Necesito que funcione en XP y Windows 7

    Gracias a todos de antemano.

    Saludos

    miércoles, 24 de agosto de 2011 7:14

Respuestas

  • A ver si esto te puede valer:

     

    Option Explicit
    
    Dim obj_SH
    Dim dbl_Enabled
    Dim str_Proxy
    Dim str_Excepciones
    Dim arr_Proxy
    Dim str_ProxyProtocolo
    Dim str_Devolucion
    Dim str_Excepcion
    Dim arr_Excepciones
    Dim obj_NW
    Dim str_DevolucionExcepciones
    Dim bol_OmitirLocal
    
    'Creamos un objeto WshShell
    Set obj_SH = CreateObject("WScript.Shell")
    
    'Obtenemos si el usuario tiene habilitado el servidor Proxy en IE
    dbl_Enabled = obj_SH.RegRead("HKCU\Software\Microsoft\Windows" & _
                   "\CurrentVersion\Internet Settin" & _
                   "gs\ProxyEnable")
    'Si el proxy está habilitado, debemos 
    If dbl_Enabled <> 0 Then
    
      'Obtenemos la configuración de servidor proxy
      str_Proxy = obj_SH.RegRead("HKCU\Software\Microsoft\Windows" & _
                   "\CurrentVersion\Internet Settings" & _
                   "\ProxyServer")
      'La configuración de proxy puede ser con todos los protocolos por
      'el mismo proxy o especificando el proxy para cada protocolo. Si
      'se especifica el mismo proxy para todos ls protocolos la entrada
      'será así:
      
      '<servidor>:<puerto>
      
      'Por ejemplo:
      
      'proxy1.tia.org:80
      
      'si hay configuración de proxy para cada puerto, la entrada será así:
      
      '<protocolo1>=<servidor1>:<puerto1>;<protocolo2>=<servidor2>:<puerto2>...
      
      'Por ejemplo:
      
      'ftp=pf.tia.org:21;http=ph.tia.org:80;https=phs.tia.org:443;socks=ps.tia.org:1080
      
      'Así pues, averiguamos si la entrada contiene punto y coma (que es
      'el separador de cada configuración de protocolo). Si la tiene es
      'que hay configuración por protocolo, si no es que es el mismo
      'proxy para todos los protocolos
      If InStr(1,str_Proxy,";") > 0 Then
      
        'La configuración es especificando servidor por protocolo
        
        'Montamos en la devolución la cabecera de la lista de configuraciones
        'de protocolos, con la leyenda de su significado
        str_Devolucion = "Servidores Proxy:" & vbcrlf & _
                 vbtab & "<Protocolo>=<Servidor>:<Puerto>"
        str_Devolucion = str_Devolucion & vbcrlf & vbTab & _
                 String(Len("<Protocolo>=<Servidor>:<Puerto>"),"=")
                 
        'Creamos un array con las configuraciones de los protocolos
        arr_Proxy = Split(str_Proxy,";")
        
        'Recorremos el array
        For Each str_ProxyProtocolo In arr_Proxy
          
          'Agregamos a la devolución la configuración del protocolo
          'actual
          str_Devolucion = str_Devolucion & vbCrLf & vbTab & _
            str_ProxyProtocolo
        Next
        
      Else
        
        'La configuración es la misma para todos los puertos. Agregamos
        'la configuración a la devolucion
        str_Devolucion = "Servidor Proxy: " & str_Proxy & vbCrLf & _
                 "Se usa el mismo servidor Proxy para todos los protocolos"
                 
      End If
      
      On Error Resume Next
      
      'Obtenemos las excepciones
      str_Excepciones = obj_SH.RegRead("HKCU\Software\Microsoft\W" & _
                   "indows\CurrentVersion\Internet Se" & _
                   "ttings\ProxyOverride")
      
      'Si hay excepciones
      If Len(str_Excepciones) > 0 Then
      
        'Creamos un array con las excepciones
        arr_Excepciones = Split(str_Excepciones,";")
        
        'Ponemos a false la booleana que indica si se omite el uso de proxy
        'en direcciones locales
        bol_OmitirLocal = False
        
        'Recorremos el array
        For Each str_Excepcion In arr_Excepciones
        
          'Comprobamos que el valor no sea "<local>", pues este
          'valor indica que se ha activado la casilla de omitir proxy
          'en direcciones locales, no es una excepción que se configure
          'en la caja de texto de excepciones
          If LCase(str_Excepcion) <> "<local>" Then
          
            'Agregamos la excepción a la devolución de excepciones
            str_DevolucionExcepciones = str_DevolucionExcepciones & vbCrLf _
                          & vbTab & str_Excepcion
                     
          Else
          
            'Marcamos a true la booleana que indica si se omite el uso
            'de proxy en direcciones locales 
            bol_OmitirLocal = True
            
          End If
          
        Next
        
        'Si se han econtrado excepciones las agregamos a la devolución
        If Len(str_DevolucionExcepciones) > 0 Then
        
          str_Devolucion = str_Devolucion & vbCrLf & "Excepciones:" & _
                   str_DevolucionExcepciones
          
        Else
        
          'Se muestra que no hay definidas excepciones
          str_Devolucion = str_Devolucion & vbCrLf & _
                   "Excepciones: No definidas"
        
        End If
        
        'Agregamos a la devolución si se omite o no el proxy en las direcciones
        'locales
        If bol_OmitirLocal Then
        
          str_Devolucion = str_Devolucion & vbCrLf & _
                "Se omitirá el uso de proxy en direcciones locales"
                
        Else
        
          str_Devolucion = str_Devolucion & vbCrLf & _
                "No se omitirá el uso de proxy en direcciones locales"
                
        End If
      
      Else
      
        'Se muestra que no hay definidas excepciones
        str_Devolucion = str_Devolucion & vbCrLf & _
                 "Excepciones: No definidas" & vbCrLf & _
                 "No se omitirá el uso de proxy en direcciones locales"
        
      End If
      
    End If
    
    'Ponemos al principio de la devolución si el proxy está o no habilitado
    str_Devolucion = "Proxy habilitado: " & CBool(dbl_Enabled) & vbCrLf & _
             str_Devolucion
    
    'Ponemos al principio de la devolución el nombre de equipo y de usuario.
    'Para obtenerlos usaremos un objeto WshNetwork
    Set obj_NW = CreateObject("WScript.Network")
    str_Devolucion = "Equipo: " & obj_NW.ComputerName & vbCrLf & _
             "Usuario: " & obj_NW.UserDomain & "\" & _
                    obj_NW.UserName & vbCrLf & _
             str_Devolucion
    
    'Mostramos los resultados
    WScript.Echo str_Devolucion  


     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marcado como respuesta ZIDAC jueves, 25 de agosto de 2011 6:19
    miércoles, 24 de agosto de 2011 11:06
    Moderador

Todas las respuestas

  • A ver si esto te puede valer:

     

    Option Explicit
    
    Dim obj_SH
    Dim dbl_Enabled
    Dim str_Proxy
    Dim str_Excepciones
    Dim arr_Proxy
    Dim str_ProxyProtocolo
    Dim str_Devolucion
    Dim str_Excepcion
    Dim arr_Excepciones
    Dim obj_NW
    Dim str_DevolucionExcepciones
    Dim bol_OmitirLocal
    
    'Creamos un objeto WshShell
    Set obj_SH = CreateObject("WScript.Shell")
    
    'Obtenemos si el usuario tiene habilitado el servidor Proxy en IE
    dbl_Enabled = obj_SH.RegRead("HKCU\Software\Microsoft\Windows" & _
                   "\CurrentVersion\Internet Settin" & _
                   "gs\ProxyEnable")
    'Si el proxy está habilitado, debemos 
    If dbl_Enabled <> 0 Then
    
      'Obtenemos la configuración de servidor proxy
      str_Proxy = obj_SH.RegRead("HKCU\Software\Microsoft\Windows" & _
                   "\CurrentVersion\Internet Settings" & _
                   "\ProxyServer")
      'La configuración de proxy puede ser con todos los protocolos por
      'el mismo proxy o especificando el proxy para cada protocolo. Si
      'se especifica el mismo proxy para todos ls protocolos la entrada
      'será así:
      
      '<servidor>:<puerto>
      
      'Por ejemplo:
      
      'proxy1.tia.org:80
      
      'si hay configuración de proxy para cada puerto, la entrada será así:
      
      '<protocolo1>=<servidor1>:<puerto1>;<protocolo2>=<servidor2>:<puerto2>...
      
      'Por ejemplo:
      
      'ftp=pf.tia.org:21;http=ph.tia.org:80;https=phs.tia.org:443;socks=ps.tia.org:1080
      
      'Así pues, averiguamos si la entrada contiene punto y coma (que es
      'el separador de cada configuración de protocolo). Si la tiene es
      'que hay configuración por protocolo, si no es que es el mismo
      'proxy para todos los protocolos
      If InStr(1,str_Proxy,";") > 0 Then
      
        'La configuración es especificando servidor por protocolo
        
        'Montamos en la devolución la cabecera de la lista de configuraciones
        'de protocolos, con la leyenda de su significado
        str_Devolucion = "Servidores Proxy:" & vbcrlf & _
                 vbtab & "<Protocolo>=<Servidor>:<Puerto>"
        str_Devolucion = str_Devolucion & vbcrlf & vbTab & _
                 String(Len("<Protocolo>=<Servidor>:<Puerto>"),"=")
                 
        'Creamos un array con las configuraciones de los protocolos
        arr_Proxy = Split(str_Proxy,";")
        
        'Recorremos el array
        For Each str_ProxyProtocolo In arr_Proxy
          
          'Agregamos a la devolución la configuración del protocolo
          'actual
          str_Devolucion = str_Devolucion & vbCrLf & vbTab & _
            str_ProxyProtocolo
        Next
        
      Else
        
        'La configuración es la misma para todos los puertos. Agregamos
        'la configuración a la devolucion
        str_Devolucion = "Servidor Proxy: " & str_Proxy & vbCrLf & _
                 "Se usa el mismo servidor Proxy para todos los protocolos"
                 
      End If
      
      On Error Resume Next
      
      'Obtenemos las excepciones
      str_Excepciones = obj_SH.RegRead("HKCU\Software\Microsoft\W" & _
                   "indows\CurrentVersion\Internet Se" & _
                   "ttings\ProxyOverride")
      
      'Si hay excepciones
      If Len(str_Excepciones) > 0 Then
      
        'Creamos un array con las excepciones
        arr_Excepciones = Split(str_Excepciones,";")
        
        'Ponemos a false la booleana que indica si se omite el uso de proxy
        'en direcciones locales
        bol_OmitirLocal = False
        
        'Recorremos el array
        For Each str_Excepcion In arr_Excepciones
        
          'Comprobamos que el valor no sea "<local>", pues este
          'valor indica que se ha activado la casilla de omitir proxy
          'en direcciones locales, no es una excepción que se configure
          'en la caja de texto de excepciones
          If LCase(str_Excepcion) <> "<local>" Then
          
            'Agregamos la excepción a la devolución de excepciones
            str_DevolucionExcepciones = str_DevolucionExcepciones & vbCrLf _
                          & vbTab & str_Excepcion
                     
          Else
          
            'Marcamos a true la booleana que indica si se omite el uso
            'de proxy en direcciones locales 
            bol_OmitirLocal = True
            
          End If
          
        Next
        
        'Si se han econtrado excepciones las agregamos a la devolución
        If Len(str_DevolucionExcepciones) > 0 Then
        
          str_Devolucion = str_Devolucion & vbCrLf & "Excepciones:" & _
                   str_DevolucionExcepciones
          
        Else
        
          'Se muestra que no hay definidas excepciones
          str_Devolucion = str_Devolucion & vbCrLf & _
                   "Excepciones: No definidas"
        
        End If
        
        'Agregamos a la devolución si se omite o no el proxy en las direcciones
        'locales
        If bol_OmitirLocal Then
        
          str_Devolucion = str_Devolucion & vbCrLf & _
                "Se omitirá el uso de proxy en direcciones locales"
                
        Else
        
          str_Devolucion = str_Devolucion & vbCrLf & _
                "No se omitirá el uso de proxy en direcciones locales"
                
        End If
      
      Else
      
        'Se muestra que no hay definidas excepciones
        str_Devolucion = str_Devolucion & vbCrLf & _
                 "Excepciones: No definidas" & vbCrLf & _
                 "No se omitirá el uso de proxy en direcciones locales"
        
      End If
      
    End If
    
    'Ponemos al principio de la devolución si el proxy está o no habilitado
    str_Devolucion = "Proxy habilitado: " & CBool(dbl_Enabled) & vbCrLf & _
             str_Devolucion
    
    'Ponemos al principio de la devolución el nombre de equipo y de usuario.
    'Para obtenerlos usaremos un objeto WshNetwork
    Set obj_NW = CreateObject("WScript.Network")
    str_Devolucion = "Equipo: " & obj_NW.ComputerName & vbCrLf & _
             "Usuario: " & obj_NW.UserDomain & "\" & _
                    obj_NW.UserName & vbCrLf & _
             str_Devolucion
    
    'Mostramos los resultados
    WScript.Echo str_Devolucion  


     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marcado como respuesta ZIDAC jueves, 25 de agosto de 2011 6:19
    miércoles, 24 de agosto de 2011 11:06
    Moderador
  • Perfecto, era lo que estaba buscando.

     

    Saludos

    jueves, 25 de agosto de 2011 6:20
  • Más explicadito:

    Script VbScript para obtener la configuración de Proxy de IE del usuario que lo ejecuta
    http://urpiano.wordpress.com/2011/08/25/script-vbscript-para-obtener-la-configuracion-de-proxy-de-ie-del-usuario-que-lo-ejecuta/


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    jueves, 25 de agosto de 2011 9:32
    Moderador
  • Hola a todos,

    Necesito un script (hta o vbs) para visualizar la configuración del proxy del usuario actual, que muestre:

    - Nombre/IP del Proxy

    - Si está habilitado o no

    - Excepciones

    Necesito que funcione en XP y Windows 7

    Gracias a todos de antemano.

    Saludos

    Buenas Tardes, y si a este pedido quisiera cambiar el proxy y tambien sus excepciones como podría hacerlo.

    Gracias de antemano

    martes, 8 de septiembre de 2015 17:28