ProxyCfg.exe プロキシ構成ツール
大事な
ProxyCfg.exe
は、Windows Vista および Windows Server 2008 以降非推奨になりました。
Netsh.exe
に置き換えられます (Netsh.exe コマンドを参照)。
このトピックでは、Microsoft Windows HTTP Services (WinHTTP) プロキシ構成ツール ProxyCfg.exe
の使用について説明します。
Microsoft Windows HTTP サービス (WinHTTP) を使用してプロキシを介して HTTP サーバーとセキュリティで保護されたハイパーテキスト転送プロトコル (HTTPS) サーバーにアクセスするには、2 つの方法があります。 最初に、WinHTTP アプリケーション内からプロキシ設定を指定できます。 次に、%windir%\system32 ディレクトリにあるプロキシ構成ユーティリティを使用して、アプリケーションの外部から既定のプロキシ設定を指定できます。
アプリケーションまたはスクリプト内からプロキシ データをプログラムで設定できます。 WinHTTP API を使用してアプリケーションを作成する場合は、次の 2 つの手法のいずれかを使用してプロキシ設定を変更します。
WinHttpOpen 関数を使用します。 2 番目のパラメーターにはアクセスの種類、3 番目のパラメーターにはプロキシの名前、4 番目のパラメーターにはバイパス リストを指定します。 次の例は、WinHttpOpen 関数を使用してプロキシ データを設定する方法を示しています。
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 構造でプロキシ設定を指定できます。 次のコード例は、WinHttpSetOption 関数を使用してプロキシ データを設定する方法を示しています。
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 オブジェクトを使用してスクリプトまたはアプリケーションを作成する場合は、次の手法を使用してプロキシ設定を変更します。
SetProxy メソッドを使用します。 最初のパラメーターにアクセスの種類、2 番目のパラメーターにプロキシの名前、3 番目のパラメーターにバイパス リストを指定します。 次の例は、SetProxy メソッドをスクリプトで使用してプロキシ データを設定する方法を示しています。
WinHttpReq.SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, "proxy_server:80", "*.microsoft.com");
既定の設定を指定し、SetProxy メソッドまたは WinHttpSetOption 関数を使用する必要をなくすには、プロキシ構成ユーティリティを使用します。 このユーティリティを使用すると、アプリケーションが直接、プロキシを介して、またはバイパス リストを指定して直接およびプロキシ アクセスの組み合わせを介してネットワークにアクセスすることを指定できます。 WinHTTP API を使用する場合、プロキシ構成ツールは、WinHttpOpen API に WINHTTP_ACCESS_TYPE_DEFAULT フラグを渡すときにのみ設定を決定します。 WinHttpRequest オブジェクトは、既定でプロキシ構成ツールの設定を使用します。
WinHTTP のプロキシ設定は、Microsoft Internet Explorer のプロキシ設定ではありません。 Microsoft Windows コントロール パネルで WinHTTP のプロキシ設定を構成することはできません。 WinHTTP プロキシ構成ユーティリティを使用しても、Internet Explorer で使用する設定は変更されません。
手記
WinHTTP を使用して HTTP 要求を開いて送信しようとして、プロキシ設定が正しくない場合は、エラーが発生します。
コマンド ライン パラメーター
次の表に、'ProxyCfg.exe'' ツールで使用できるコマンド ライン パラメーターを示します。
パラメーター | 形容 |
---|---|
何一つ | パラメーターが指定されていない場合は、現在の WinHTTP プロキシ設定が表示されます。 |
? | ヘルプ情報が表示されます。 |
d | WinHTTP アプリケーションがプロキシなしでネットワークに直接アクセスすることを指定します。 |
p | プロキシ サーバーを指定します。 プロキシなしでアクセスするサーバーのオプションリストを指定することもできます。 |
u | WinHTTP アプリケーションが Internet Explorer に現在のユーザーのプロキシ設定を使用することを指定します。 Internet Explorer がプロキシ設定を自動的に検出している場合、または自動構成 URL を使用してプロキシ情報を設定している場合、このパラメーターは機能しません。 |
私 | WinHTTP アプリケーションが Internet Explorer に現在のユーザーのプロキシ設定を使用することを指定します。 これは、ProxyCfg.exe が以前に使用されていない場合にのみ機能します。 ProxyCfg.exe がインストールされている場合は、"u" コマンド ライン パラメーターで手動設定を使用することを指定します。 このパラメーターは、Internet Explorer がプロキシ設定を自動的に検出する場合、または自動構成 URL を使用してプロキシ情報を設定する場合は機能しません。 |
スペース区切りの文字列でプロキシを指定できます。 プロキシ リストには、プロキシへのアクセスに使用されるポート番号を含めることができます。 特定のプロトコルのプロキシを一覧表示するには、文字列がプロトコル>=https://<proxy_name><形式に従う必要があります。 有効なプロトコルは HTTP と HTTPS です。 たとえば、HTTP プロキシを一覧表示するには、有効な文字列は http=https://http_proxy_name:80です。ここで、http_proxy_nameはプロキシ サーバーの名前、80 はプロキシへのアクセスに使用する必要があるポート番号です。 プロキシがそのプロトコルの既定のポート番号を使用している場合は、ポート番号を省略できます。 プロキシ名が単独で一覧表示されている場合は、指定したプロキシを持たないプロトコルの既定のプロキシとして使用できます。 たとえば、http=https://http_proxy other_proxy では任意の HTTP 操作にhttp_proxyが使用され、HTTPS プロトコルでは other_proxy という名前のプロキシが使用されます。
ローカルで既知のホスト名または IP アドレスをプロキシ バイパス リストに一覧表示できます。 この一覧には、"*" などのワイルドカードを含めることができます。これにより、アプリケーションは、指定したパターンに適合するアドレス ("*.microsoft.com" や "*.org" など) に対してプロキシ サーバーをバイパスします。 ワイルドカード文字は、一覧の左端の文字である必要があります。 たとえば、"aaa.*" はサポートされていません。 複数のアドレスとホスト名を一覧表示するには、プロキシ バイパス文字列で空白またはセミコロンで区切ります。 <ローカル> マクロを指定した場合、この関数はピリオドを含まないホスト名をバイパスします。
警告
Proxycfg.exe の実行後、以前のプロキシ設定を復元することはできません。 ただし、プロキシ設定は完全に削除できます。
使い
プロキシ構成ツールを使用するには、コマンド プロンプト ウィンドウを開き、適切なコマンド ライン パラメーターを使用してプロキシ構成ユーティリティを実行します。 次のセクションでは、構文の例を示します。
構文の例
例 1: 外部リソースにのみプロキシを使用する
Proxycfg.exeの最も一般的な用途を次に示します。 このコマンドは、ピリオドを含まないホスト名を除き、"proxy_server" という名前のプロキシ サーバーを介して HTTP サーバーと HTTPS サーバーの両方にアクセスすることを指定します。
proxycfg -p proxy_server "<local>"
例 2: すべてのリソースにプロキシを使用する
次の例では、"proxy_server" という名前のプロキシ サーバーを介して HTTP サーバーと HTTPS サーバーの両方にアクセスすることを指定します。 バイパス リストは指定されません。
proxycfg -p proxy_server を する
例 3: セキュリティで保護されたリソースに別のプロキシを使用する
次の例では、HTTP_PROXY プロキシを介して HTTP サーバーにアクセスし、HTTPS サーバーに https_proxy 経由でアクセスすることを指定します。 ローカル イントラネット サイトと *.microsoft.com ドメイン内の任意のサイトがプロキシをバイパスします。
proxycfg -p "http=http_proxy https=https_proxy"<ローカル>;*.microsoft.com"
ProxyCfg.exe の削除
プロキシ構成ツールを使用した後、元のプロキシ設定を復元することはできません。 ただし、必要に応じて、ユーティリティによって作成されるレジストリ設定を削除できます。 作成 ProxyCfg.exe レジストリ エントリを削除するには、次のレジストリ キーから winHttpSettings 値 を削除する必要があります。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\インターネット設定\接続\WinHttpSettings
WinHttpSettings 値を削除すると、すべてのプロキシ構成が削除されます。
ProxyCfg.exe と認証
プロキシ構成ユーティリティは、既定の認証ポリシーを設定します。 信頼されていないホストでは NTLM 認証を実行しないでください。既定では、NTLM 認証はプロキシ バイパス リストのホストでのみ自動的に行われます。 プロキシがない場合でも、ProxyCfg.exe を使用して、NTLM 認証を実行するために信頼できるホストのバイパス リストを指定できます。 この目的で ProxyCfg.exe を使用する場合はプロキシ名が必要ですが、実際のプロキシ名の代わりに任意の有効な文字列を使用できます。
自動ログオン ポリシーの詳細については、「自動ログオン ポリシーの」を参照してください。