Compartir a través de


herramienta de configuración de proxy de ProxyCfg.exe

Importante

ProxyCfg.exe ha quedado en desuso desde Windows Vista y Windows Server 2008. Se reemplaza por Netsh.exe (consulte Netsh.exe comandos).

En este tema se explica el uso de la herramienta de configuración de proxy Servicios HTTP de Microsoft Windows (WinHTTP) ProxyCfg.exe.

Hay dos maneras de acceder a los servidores HTTP y Secure Hypertext Transfer Protocol (HTTPS) a través de un proxy mediante servicios HTTP de Microsoft Windows (WinHTTP). En primer lugar, puede especificar la configuración del proxy desde la aplicación WinHTTP. En segundo lugar, puede especificar la configuración de proxy predeterminada desde fuera de la aplicación mediante la utilidad de configuración de proxy ubicada en el directorio %windir%\system32.

Puede establecer mediante programación los datos de proxy desde la aplicación o el script. Si va a escribir una aplicación mediante la API de WinHTTP, use una de las dos técnicas siguientes para cambiar la configuración del proxy.

  • Use la funciónWinHttpOpen. Especifique el tipo de acceso en el segundo parámetro, el nombre del proxy en el tercer parámetro y una lista de omisión en el cuarto parámetro. En el ejemplo siguiente se muestra cómo se puede usar la función WinHttpOpen para establecer datos de proxy.

    hSession = WinHttpOpen( L"WinHTTP Example/1.0",  
                            WINHTTP_ACCESS_TYPE_NAMED_PROXY,
                            L"proxy_name", 
                            L"<local>", 
                            0);
    
  • Use la funciónWinHttpSetOption. La marca WINHTTP_OPTION_PROXY permite especificar la configuración del proxy con una estructura WINHTTP_PROXY_INFO. En el código de ejemplo siguiente se muestra cómo se puede usar la funciónWinHttpSetOption para establecer datos de proxy.

    WINHTTP_PROXY_INFO proxyInfo;
    proxyInfo.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
    proxyInfo.lpszProxy = L"proxy_name";
    proxyInfo.lpszProxyBypass = L"<local>";
    
    // Set the proxy information for this session.
    WinHttpSetOption( hSession, 
                      WINHTTP_OPTION_PROXY, 
                      &proxyInfo, 
                      sizeof(proxyInfo));
    

Si va a escribir un script o una aplicación mediante el objeto WinHttpRequest, use la técnica siguiente para cambiar la configuración del proxy.

  • Use el métodoSetProxy. Especifique el tipo de acceso en el primer parámetro, el nombre del proxy en el segundo parámetro y una lista de omisión en el tercer parámetro. En el ejemplo siguiente se muestra cómo se puede usar el método SetProxy en el script para establecer datos de proxy.

    WinHttpReq.SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, 
                         "proxy_server:80", 
                         "*.microsoft.com");
    

Para especificar la configuración predeterminada y eliminar la necesidad de usar el métodosetProxy deo la función WinHttpSetOption, use la utilidad de configuración de proxy. Con esta utilidad, puede especificar que la aplicación acceda directamente a una red, a través de un proxy o a través de una combinación de acceso directo y proxy especificando una lista de omisión. Cuando se usa la API de WinHTTP, la herramienta de configuración de proxy solo determina la configuración al pasar la marca de WINHTTP_ACCESS_TYPE_DEFAULT a la API de WinHttpOpen. El objeto WinHttpRequest usa la configuración de la herramienta de configuración de proxy de forma predeterminada.

La configuración de proxy para WinHTTP no es la configuración de proxy para Microsoft Internet Explorer. No puede configurar las opciones de proxy para WinHTTP en el Panel de control de Microsoft Windows. El uso de la utilidad de configuración de proxy WinHTTP no modifica la configuración que usa para Internet Explorer.

Nota

Si intenta abrir y enviar una solicitud HTTP mediante WinHTTP y la configuración del proxy es incorrecta, se produce un error.

Parámetros de línea de comandos

En la tabla siguiente se enumeran los parámetros de línea de comandos disponibles para su uso con la herramienta "ProxyCfg.exe"".

Parámetro Descripción
ninguno Cuando no se especifica ningún parámetro, se muestra la configuración actual del proxy WinHTTP.
? Se muestra la información de ayuda.
d Especifica que las aplicaciones WinHTTP acceden a la red directamente, sin un proxy.
p Especifica el servidor proxy. También puede especificar una lista opcional de servidores a los que se accede sin un proxy.
u Especifica que las aplicaciones WinHTTP usan la configuración de proxy del usuario actual para Internet Explorer. Este parámetro no funciona si Internet Explorer detecta automáticamente la configuración del proxy o si usa una dirección URL de configuración automática para establecer la información del proxy.
Yo Especifica que las aplicaciones WinHTTP usan la configuración de proxy del usuario actual para Internet Explorer. Esto solo funciona cuando no se usó anteriormente ProxyCfg.exe. Si ProxyCfg.exe está instalado, especifique que el parámetro de línea de comandos "u" use la configuración manual. Este parámetro no funciona si Internet Explorer detecta automáticamente la configuración del proxy o si usa una dirección URL de configuración automática para establecer la información del proxy.

Puede especificar servidores proxy en una cadena delimitada por espacios. Las listas de proxy pueden contener el número de puerto que se usa para acceder al proxy. Para enumerar un proxy para un protocolo específico, la cadena debe seguir el formato, <protocolo>=https://<proxy_name>. Los protocolos válidos son HTTP y HTTPS. Por ejemplo, para enumerar un proxy HTTP, una cadena válida es http=https://http_proxy_name:80, donde http_proxy_name es el nombre del servidor proxy y 80 es el número de puerto que debe usar para acceder al proxy. Si el proxy usa el número de puerto predeterminado para ese protocolo, puede omitir el número de puerto. Si un nombre de proxy aparece por sí mismo, puede usarlo como proxy predeterminado para cualquier protocolo que no tenga un proxy especificado. Por ejemplo, http=https://http_proxy other_proxy usa http_proxy para las operaciones HTTP, mientras que el protocolo HTTPS usa el proxy denominado other_proxy.

Puede enumerar nombres de host o direcciones IP conocidos localmente en la lista de omisión de proxy. Esta lista puede contener caracteres comodín, como "*", lo que hace que la aplicación omita el servidor proxy para las direcciones que se ajusten al patrón especificado, por ejemplo, "*.microsoft.com" o "*.org". Los caracteres comodín deben ser los caracteres más a la izquierda de la lista. Por ejemplo, no se admite "aaa.*". Para enumerar varias direcciones y nombres de host, separe con espacios en blanco o punto y coma en la cadena de omisión de proxy. Si especifica la <macro de> local, la función omite cualquier nombre de host que no contenga un punto.

Advertencia

Después de ejecutar Proxycfg.exe, no se puede restaurar la configuración de proxy anterior. Sin embargo, puede quitar la configuración del proxy por completo.

Uso

Para usar la herramienta de configuración de proxy, abra una ventana del símbolo del sistema y ejecute la utilidad de configuración de proxy con los parámetros de línea de comandos adecuados. En la sección siguiente se proporcionan ejemplos de sintaxis.

Sintaxis de ejemplo

Ejemplo 1: Usar un proxy solo para recursos externos

A continuación se muestra el uso más común de Proxycfg.exe. Este comando especifica que se accede a los servidores HTTP y HTTPS a través del servidor proxy denominado "proxy_server", excepto los nombres de host que no contienen un punto.

proxycfg -p proxy_server "<>local "

Ejemplo 2: Usar un proxy para todos los recursos

En el ejemplo siguiente se especifica que se accede a los servidores HTTP y HTTPS a través del servidor proxy denominado "proxy_server". No se especifica ninguna lista de omisión.

proxycfg -p proxy_server

Ejemplo 3: Uso de un proxy diferente para recursos seguros

En el ejemplo siguiente se especifica que se accede a los servidores HTTP a través del proxy http_proxy y se accede a los servidores HTTPS a través de https_proxy. Los sitios de intranet locales y cualquier sitio del dominio *.microsoft.com omiten el proxy.

proxycfg -p "http=http_proxy https=https_proxy" "<>local ;*.microsoft.com"

Quitar ProxyCfg.exe

Después de usar la herramienta de configuración de proxy, no puede restaurar la configuración del proxy original. Sin embargo, si es necesario, puede quitar la configuración del Registro que crea la utilidad. Para quitar las entradas del Registro que ProxyCfg.exe crea, debe eliminar el valor de WinHttpSettings de la siguiente clave del Registro.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\WinHttpSettings

Al eliminar el valor de WinHttpSettings, se quitan todas las configuraciones de proxy.

autenticación y ProxyCfg.exe

La utilidad de configuración de proxy establece la directiva de autenticación predeterminada. Dado que no debe realizar la autenticación NTLM con hosts que no son de confianza, la autenticación NTLM solo se produce automáticamente con hosts en la lista de omisión de proxy. Si no hay ningún proxy, todavía puede usar ProxyCfg.exe para especificar una lista de omisión de hosts que confía para realizar la autenticación NTLM. Se requiere un nombre de proxy al usar ProxyCfg.exe para este propósito, pero puede usar cualquier cadena válida en lugar de un nombre de proxy real.

Para obtener más información sobre la directiva de inicio de sesión automático, consulte Directiva de inicio de sesión automático.