ProxyCfg.exe Proxy 組態工具

重要

ProxyCfg.exe 自 Windows Vista 和 Windows Server 2008 以來已被取代。 它會取代 Netsh.exe 為 (請參閱 Netsh.exe 命令 )。

本主題說明如何使用 Microsoft Windows HTTP Services (WinHTTP) Proxy 組態工具 ProxyCfg.exe

有兩種方式可透過使用 Microsoft Windows HTTP 服務 (WinHTTP) 的 Proxy 存取 HTTP 和安全超文字傳輸通訊協定 (HTTPS) 伺服器。 首先,您可以從 WinHTTP 應用程式內指定 Proxy 設定。 其次,您可以使用位於 %windir%\system32 目錄中的 Proxy 組態公用程式,從應用程式外部指定預設 Proxy 設定。

您可以從應用程式或腳本內以程式設計方式設定 Proxy 資料。 如果您要使用 WinHTTP API 撰寫應用程式,請使用下列兩種技術之一來變更 Proxy 設定。

  • 使用 WinHttpOpen 函式。 在第二個參數中指定存取類型、第三個參數中的 Proxy 名稱,以及第四個參數中的略過清單。 下列範例示範如何使用 WinHttpOpen 函式來設定 Proxy 資料。

    hSession = WinHttpOpen( L"WinHTTP Example/1.0",  
                            WINHTTP_ACCESS_TYPE_NAMED_PROXY,
                            L"proxy_name", 
                            L"<local>", 
                            0);
    
  • 使用 WinHttpSetOption 函 式。 WINHTTP_OPTION_PROXY 旗標可讓您使用 WINHTTP_PROXY_INFO 結構來指定 Proxy 設定。 下列範例程式碼示範如何使用 WinHttpSetOption 函式來設定 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));
    

如果您要使用 WinHttpRequest 物件撰寫腳本或應用程式,請使用下列技術來變更 Proxy 設定。

  • 使用 SetProxy 方法。 在第一個參數中指定存取類型、第二個參數中的 Proxy 名稱,以及第三個參數中的略過清單。 下列範例示範如何在 腳本中使用 SetProxy 方法來設定 Proxy 資料。

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

若要指定預設設定,並不需要使用 SetProxy 方法或 WinHttpSetOption 函式,請使用 Proxy 組態公用程式。 使用此公用程式,您可以藉由指定略過清單來指定應用程式直接存取網路、透過 Proxy,或透過直接存取和 Proxy 存取的組合來存取網路。 當您使用 WinHTTP API 時,Proxy 組態工具只會決定當您將WINHTTP_ACCESS_TYPE_DEFAULT 旗標傳遞 WinHttpOpen API 時設定。 WinHttpRequest 物件預設會使用 Proxy 組態工具設定。

WinHTTP 的 Proxy 設定不是 Microsoft Internet Explorer 的 Proxy 設定。 您無法在 Microsoft Windows 主控台中設定 WinHTTP 的 Proxy 設定。 使用 WinHTTP Proxy 組態公用程式並不會改變您用於 Internet Explorer 的設定。

注意

如果您嘗試使用 WinHTTP 開啟並傳送 HTTP 要求,且 Proxy 設定不正確,就會發生錯誤。

命令列參數

下表列出可與 'ProxyCfg.exe' 工具搭配使用的命令列參數。

參數 描述
none 未指定任何參數時,會顯示目前的 WinHTTP Proxy 設定。
? 顯示說明資訊。
d 指定 WinHTTP 應用程式直接存取網路,而不使用 Proxy。
p 指定 Proxy 伺服器。 您也可以指定不使用 Proxy 存取的伺服器選擇性清單。
u 指定 WinHTTP 應用程式使用目前使用者的 Internet Explorer Proxy 設定。 如果 Internet Explorer 會自動偵測 Proxy 設定,或是使用自動組態 URL 來設定 Proxy 資訊,此參數將無法運作。
i 指定 WinHTTP 應用程式使用目前使用者的 Internet Explorer Proxy 設定。 這只適用于先前未使用 ProxyCfg.exe 時。 如果已安裝 ProxyCfg.exe,請指定 「u」 命令列參數使用手動設定。 如果 Internet Explorer 會自動偵測 Proxy 設定,或是使用自動組態 URL 來設定 Proxy 資訊,此參數將無法運作。

您可以在以空格分隔的字串中指定 Proxy。 Proxy 清單可以包含用來存取 Proxy 的埠號碼。 若要列出特定通訊協定的 Proxy,字串必須遵循 protocol > =HTTPs:// < 格式 < proxy_name > 。 有效的通訊協定為 HTTP 和 HTTPS。 例如,若要列出 HTTP Proxy,有效的字串是 HTTP= https://http_proxy_name:80 ,其中 HTTP_proxy_name 是 Proxy 伺服器的名稱,80 是您必須用來存取 Proxy 的埠號碼。 如果 Proxy 使用該通訊協定的預設埠號碼,您可以省略埠號碼。 如果 Proxy 名稱本身列出,您可以使用它作為任何沒有指定 Proxy 之通訊協定的預設 Proxy。 例如,HTTP= https://http_proxy other_proxy會針對任何 HTTP 作業使用 HTTP_proxy,而 HTTPS 通訊協定則使用名為 other_proxy 的 Proxy。

您可以在 Proxy 略過清單中列出本機已知的主機名稱或 IP 位址。 此清單可以包含萬用字元,例如 「*」,導致應用程式針對符合指定模式的位址略過 Proxy 伺服器,例如 「*.microsoft.com」 或 「*.org」。 萬用字元必須是清單中最左邊的字元。 例如,不支援 「aaa.*」。 若要列出多個位址和主機名稱,請在 Proxy 略過字串中以空格或分號分隔它們。 如果您指定本機 <> 宏,函式會略過不包含句點的任何主機名稱。

警告

執行 Proxycfg.exe 之後,您無法還原先前的 Proxy 設定。 不過,您可以完全移除 Proxy 設定。

使用方式

若要使用 Proxy 組態工具,請開啟命令提示字元視窗,並使用適當的命令列參數執行 Proxy 設定公用程式。 下一節提供語法範例。

範例語法

範例 1:僅針對外部資源使用 Proxy

以下是 Proxycfg.exe 最常見的用法。 此命令指定 HTTP 和 HTTPS 伺服器都是透過名為 「proxy_server」 的 Proxy 伺服器存取,但不包含句點的主機名稱除外。

proxycfg -p proxy_server 「 < local > 」

範例 2:針對所有資源使用 Proxy

下列範例會指定 HTTP 和 HTTPS 伺服器都是透過名為 「proxy_server」 的 Proxy 伺服器存取。 未指定略過清單。

proxycfg -p proxy_server

範例 3:使用不同的 Proxy 來保護資源

下列範例會指定 HTTP 伺服器是透過 HTTP_proxy Proxy 存取,而 HTTPS 伺服器是透過 HTTPs_proxy 存取的。 本機內部網路網站和 *.microsoft.com 網域中的任何網站會略過 Proxy。

proxycfg -p 「HTTP=HTTP_proxy HTTPs=HTTPs_proxy」 「 < local > ;*.microsoft.com」

移除 ProxyCfg.exe

使用 Proxy 組態工具之後,您無法還原原始 Proxy 設定。 不過,如有必要,您可以移除公用程式所建立的登錄設定。 若要移除 ProxyCfg.exe 建立的登錄專案,您必須從下列登錄機碼中刪除 WinHttp設定 值。

\ HKEY_LOCAL_MACHINE SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Internet 設定 \ 連線ions \ WinHttp設定

刪除 WinHttp設定 值會移除所有 Proxy 組態。

ProxyCfg.exe 和驗證

Proxy 組態公用程式會設定預設驗證原則。 因為您不應該對不受信任的主機執行 NTLM 驗證,根據預設,NTLM 驗證只會在 Proxy 略過清單上的主機上自動發生。 如果沒有 Proxy,您仍然可以使用 ProxyCfg.exe 來指定您信任以執行 NTLM 驗證的主機略過清單。 針對此目的使用 ProxyCfg.exe 時,需要 Proxy 名稱,但您可以使用任何有效的字串來取代真正的 Proxy 名稱。

如需自動登入原則的詳細資訊,請參閱 自動登入原則