Strumento di configurazione proxy ProxyCfg.exe

Importante

ProxyCfg.exe è stato deprecato da Windows Vista e Windows Server 2008. Viene sostituito da Netsh.exe (vedere Comandi Netsh.exe).

In questo argomento viene illustrato l'uso dello strumento ProxyCfg.exedi configurazione proxy Servizi HTTP (WinHTTP) di Microsoft Windows.

Esistono due modi per accedere ai server HTTP e Secure Hypertext Transfer Protocol (HTTPS) tramite un proxy tramite Servizi HTTP Di Microsoft Windows (WinHTTP). In primo luogo, è possibile specificare le impostazioni proxy dall'interno dell'applicazione WinHTTP. In secondo luogo, è possibile specificare le impostazioni proxy predefinite dall'esterno dell'applicazione usando l'utilità di configurazione proxy che si trova nella directory %windir%\system32.

È possibile impostare a livello di codice i dati proxy dall'interno dell'applicazione o dallo script. Se si scrive un'applicazione usando l'API WinHTTP, usare una delle due tecniche seguenti per modificare le impostazioni proxy.

  • Usare la funzione WinHttpOpen. Specificare il tipo di accesso nel secondo parametro, il nome del proxy nel terzo parametro e un elenco di bypass nel quarto parametro. L'esempio seguente illustra come usare la funzione WinHttpOpen per impostare i dati proxy.

    hSession = WinHttpOpen( L"WinHTTP Example/1.0",  
                            WINHTTP_ACCESS_TYPE_NAMED_PROXY,
                            L"proxy_name", 
                            L"<local>", 
                            0);
    
  • Usare la funzione WinHttpSetOption. Il flag WINHTTP_OPTION_PROXY consente di specificare le impostazioni proxy con una struttura WINHTTP_PROXY_INFO. Il codice di esempio seguente mostra come usare la funzione WinHttpSetOption per impostare i dati 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));
    

Se stai scrivendo uno script o un'applicazione usando l'oggetto WinHttpRequest , usa la tecnica seguente per modificare le impostazioni proxy.

  • Usare il metodo SetProxy. Specificare il tipo di accesso nel primo parametro, il nome del proxy nel secondo parametro e un elenco di bypass nel terzo parametro. Nell'esempio seguente viene illustrato come usare il metodo SetProxy nello script per impostare i dati proxy.

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

Per specificare le impostazioni predefinite ed eliminare la necessità di usare il metodo SetProxy o la funzione WinHttpSetOption, usare l'utilità di configurazione proxy. Usando questa utilità, è possibile specificare che l'applicazione possa accedere direttamente a una rete, tramite un proxy o tramite una combinazione di accesso diretto e proxy specificando un elenco di bypass. Quando si usa l'API WinHTTP, lo strumento di configurazione proxy determina solo le impostazioni quando si passa il flag WINHTTP_ACCESS_TYPE_DEFAULT all'API WinHttpOpen . L'oggetto WinHttpRequest usa le impostazioni dello strumento di configurazione proxy per impostazione predefinita.

Le impostazioni proxy per WinHTTP non sono le impostazioni proxy per Microsoft Internet Explorer. Non è possibile configurare le impostazioni proxy per WinHTTP in Microsoft Windows Pannello di controllo. L'uso dell'utilità di configurazione proxy WinHTTP non modifica le impostazioni usate per Internet Explorer.

Nota

Se si tenta di aprire e inviare una richiesta HTTP usando WinHTTP e le impostazioni proxy non sono corrette, si verifica un errore.

Parametri della riga di comando

Nella tabella seguente sono elencati i parametri della riga di comando disponibili per l'uso con lo strumento "ProxyCfg.exe".

Parametro Description
Nessuno Quando non vengono specificati parametri, vengono visualizzate le impostazioni del proxy WinHTTP correnti.
? Vengono visualizzate le informazioni della Guida.
d Specifica che le applicazioni WinHTTP accedono direttamente alla rete, senza un proxy.
p Specifica il server proxy. È anche possibile specificare un elenco facoltativo di server a cui si accede senza un proxy.
u Specifica che le applicazioni WinHTTP usano le impostazioni proxy dell'utente corrente per Internet Explorer. Questo parametro non funziona se Internet Explorer rileva automaticamente le impostazioni proxy o se usa un URL di configurazione automatica per impostare le informazioni sul proxy.
i Specifica che le applicazioni WinHTTP usano le impostazioni proxy dell'utente corrente per Internet Explorer. Questa operazione funziona solo quando ProxyCfg.exe non è stato usato in precedenza. Se ProxyCfg.exe è installato, specificare che il parametro della riga di comando "u" usi le impostazioni manuali. Questo parametro non funziona se Internet Explorer rileva automaticamente le impostazioni proxy o se usa un URL di configurazione automatica per impostare le informazioni sul proxy.

È possibile specificare proxy in una stringa delimitata da spazi. Gli elenchi proxy possono contenere il numero di porta usato per accedere al proxy. Per elencare un proxy per un protocollo specifico, la stringa deve seguire il formato protocol<>=https://< proxy_name>. I protocolli validi sono HTTP e HTTPS. Ad esempio, per elencare un proxy HTTP, una stringa valida è http=https://http_proxy_name:80, dove http_proxy_name è il nome del server proxy e 80 è il numero di porta che è necessario usare per accedere al proxy. Se il proxy usa il numero di porta predefinito per tale protocollo, è possibile omettere il numero di porta. Se un nome proxy è elencato da se stesso, è possibile usarlo come proxy predefinito per tutti i protocolli che non dispongono di un proxy specificato. Ad esempio, http=https://http_proxy other_proxy usa http_proxy per qualsiasi operazione HTTP, mentre il protocollo HTTPS usa il proxy denominato other_proxy.

È possibile elencare i nomi host noti in locale o gli indirizzi IP nell'elenco di bypass del proxy. Questo elenco può contenere caratteri jolly, ad esempio "*", che causano il bypass del server proxy dell'applicazione per gli indirizzi che soddisfano il modello specificato, ad esempio "*.microsoft.com" o "*.org". I caratteri jolly devono essere i caratteri più a sinistra nell'elenco. Ad esempio, "aaa.*" non è supportato. Per elencare più indirizzi e nomi host, separarli con spazi vuoti o punti e virgola nella stringa di bypass del proxy. Se si specifica la <macro locale> , la funzione ignora qualsiasi nome host che non contiene un punto.

Avviso

Dopo l'esecuzione di Proxycfg.exe, non è possibile ripristinare le impostazioni proxy precedenti. Tuttavia, è possibile rimuovere completamente le impostazioni proxy.

Utilizzo

Per usare lo strumento di configurazione proxy, aprire una finestra del prompt dei comandi ed eseguire l'utilità di configurazione proxy con i parametri della riga di comando appropriati. Nella sezione seguente vengono forniti esempi di sintassi.

Sintassi di esempio

Esempio 1: Usare un proxy solo per le risorse esterne

Di seguito è riportato l'uso più comune per Proxycfg.exe. Questo comando specifica che sia i server HTTP che HTTPS sono accessibili tramite il server proxy denominato "proxy_server", ad eccezione dei nomi host che non contengono un punto.

proxycfg -p proxy_server "<local>"

Esempio 2: Usare un proxy per tutte le risorse

L'esempio seguente specifica che sia i server HTTP che HTTPS sono accessibili tramite il server proxy denominato "proxy_server". Non viene specificato alcun elenco di bypass.

proxycfg -p proxy_server

Esempio 3: Usare un proxy diverso per le risorse sicure

Nell'esempio seguente viene specificato che l'accesso ai server HTTP tramite il proxy di http_proxy e i server HTTPS sono accessibili tramite https_proxy. I siti Intranet locali e qualsiasi sito nel dominio *.microsoft.com ignorano il proxy.

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

Rimozione di ProxyCfg.exe

Dopo aver usato lo strumento di configurazione proxy, non è possibile ripristinare le impostazioni proxy originali. Tuttavia, se necessario, è possibile rimuovere le impostazioni del Registro di sistema create dall'utilità. Per rimuovere le voci del Registro di sistema create da ProxyCfg.exe, è necessario eliminare il valore WinHttp Impostazioni dalla chiave del Registro di sistema seguente.

\HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Impostazioni\ Connessione ions\WinHttp Impostazioni

L'eliminazione del valore WinHttp Impostazioni rimuove tutte le configurazioni proxy.

ProxyCfg.exe e autenticazione

L'utilità di configurazione proxy imposta i criteri di autenticazione predefiniti. Poiché non è consigliabile eseguire l'autenticazione NTLM con host non attendibili, per impostazione predefinita, l'autenticazione NTLM viene eseguita automaticamente solo con gli host nell'elenco di bypass proxy. Se non è presente alcun proxy, è comunque possibile usare ProxyCfg.exe per specificare un elenco di bypass degli host attendibili per eseguire l'autenticazione NTLM. Per questo scopo è necessario un nome proxy quando si usa ProxyCfg.exe, ma è possibile usare qualsiasi stringa valida al posto di un nome proxy reale.

Per altre informazioni sui criteri di accesso automatico, vedere Criteri di accesso automatico.