ProxyCfg.exe Proxy 組態工具
重要
自 Windows Vista 和 Windows Server 2008 以來,ProxyCfg.exe
已被取代。 它由 Netsh.exe
取代(請參閱 Netsh.exe 命令)。
本主題說明使用 Microsoft Windows HTTP 服務 (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'' 工具搭配使用的命令行參數。
參數 | 描述 |
---|---|
沒有 | 未指定任何參數時,會顯示目前的 WinHTTP Proxy 設定。 |
? | 顯示說明資訊。 |
d | 指定 WinHTTP 應用程式直接存取網路,而不使用 Proxy。 |
p | 指定 Proxy 伺服器。 您也可以指定不使用 Proxy 存取的伺服器選擇性清單。 |
u | 指定 WinHTTP 應用程式使用目前使用者的 Internet Explorer Proxy 設定。 如果 Internet Explorer 會自動偵測 Proxy 設定,或是使用自動組態 URL 來設定 Proxy 資訊,此參數將無法運作。 |
我 | 指定 WinHTTP 應用程式使用目前使用者的 Internet Explorer Proxy 設定。 這隻適用於先前未使用 ProxyCfg.exe 時。 如果已安裝 ProxyCfg.exe,請指定 「u」 命令行參數使用手動設定。 如果 Internet Explorer 會自動偵測 Proxy 設定,或是使用自動組態 URL 來設定 Proxy 資訊,此參數將無法運作。 |
您可以在以空白分隔的字串中指定 Proxy。 Proxy 清單可以包含用來存取 Proxy 的埠號碼。 若要列出特定通訊協定的 Proxy,字串必須遵循格式,<通訊協定>=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 建立的登錄專案,您必須從下列登錄機碼中刪除 WinHttpSettings 值。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\\WinHttpSettings
刪除 WinHttpSettings 值會移除所有 Proxy 組態。
ProxyCfg.exe 和驗證
Proxy 組態公用程式會設定預設驗證原則。 因為您不應該對不受信任的主機執行NTLM驗證,根據預設,NTLM驗證只會在 Proxy 略過清單上的主機上自動發生。 如果沒有 Proxy,您仍然可以使用 ProxyCfg.exe 來指定您信任以執行 NTLM 驗證的主機略過清單。 針對此目的使用 ProxyCfg.exe 時,需要 Proxy 名稱,但您可以使用任何有效的字串來取代真正的 Proxy 名稱。
如需自動登入原則的詳細資訊,請參閱 自動登入原則。