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 と Secure HTTPS (HTTPS) のサーバーにアクセスするには、2 つの方法があります。 1 つ目は、WinHTTP アプリケーション内からプロキシ設定を指定できます。 2 つ目は、%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 を使用する場合、プロキシ構成ツールは、WINHTTP_ACCESS_TYPE_DEFAULT フラグを WinHttpOpen API に渡すときにのみ設定を決定します。 WinHttpRequest オブジェクトは、既定でプロキシ構成ツールの設定を使用します。

WinHTTP のプロキシ設定は、Microsoft Internet Explorer のプロキシ設定ではありません。 Microsoft Windows のコントロール パネルで WinHTTP のプロキシ設定を構成することはできません。 WinHTTP プロキシ構成ユーティリティを使用しても、Internet Explorer に使用する設定は変更されません。

Note

WinHTTP を使用して HTTP 要求を開いて送信しようとしたときに、プロキシ設定が正しくないと、エラーが発生します。

コマンド ライン パラメーター

次の表は、'ProxyCfg.exe' ツールで使用できるコマンド ライン パラメーターを一覧表示したものです。

パラメーター 説明設定
なし パラメーターが指定されていない場合は、現在の WinHTTP プロキシ設定が表示されます。
? ヘルプ情報が表示されます。
d WinHTTP アプリケーションがプロキシなしでネットワークに直接アクセスするように指定します。
P プロキシ サーバーを指定します。 プロキシなしでアクセスするサーバーのオプションのリストを指定することもできます。
u WinHTTP アプリケーションが現在のユーザーのプロキシ設定を Internet Explorer に使用するように指定します。 Internet Explorer がプロキシ設定を自動的に検出している場合、または自動構成 URL を使用してプロキシ情報を設定している場合、このパラメーターは機能しません。
i WinHTTP アプリケーションが現在のユーザーのプロキシ設定を Internet Explorer に使用するように指定します。 これは、ProxyCfg.exe が以前に使用されていない場合にのみ機能します。 ProxyCfg.exe がインストールされている場合は、"u" コマンド ライン パラメーターで手動設定を使用するように指定します。 Internet Explorer がプロキシ設定を自動的に検出している場合、または自動構成 URL を使用してプロキシ情報を設定している場合、このパラメーターは機能しません。

スペース区切りの文字列でプロキシを指定できます。 プロキシのリストには、プロキシへのアクセスに使用されるポート番号を含めることができます。 特定のプロトコルのプロキシを一覧表示するには、文字列が <protocol>=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_proxy を介して HTTPS サーバーにアクセスするように指定しています。 ローカル イントラネット サイトと *.microsoft.com ドメイン内のすべてのサイトでプロキシをバイパスします。

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

ProxyCfg.exe の削除

プロキシ構成ツールを使用した後、元のプロキシ設定を復元することはできません。 ただし、必要に応じて、ユーティリティによって作成されるレジストリ設定を削除できます。 ProxyCfg.exe によって作成されたレジストリ エントリを削除するには、次のレジストリ キーから WinHttpSettings 値を削除する必要があります。

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

WinHttpSetting 値を削除すると、すべてのプロキシ構成が削除されます。

ProxyCfg.exe と認証

プロキシ構成ユーティリティによって、既定の認証ポリシーが設定されます。 信頼されていないホストでは NTLM 認証を実行しないでください。既定では、NTLM 認証はプロキシのバイパス リストにあるホストでのみ自動的に行われます。 プロキシがない場合でも、ProxyCfg.exe を使用して、信頼できるホストのバイパス リストを指定して、NTLM 認証を実行できます。 この目的で ProxyCfg.exe を使用する場合はプロキシ名が必要ですが、実際のプロキシ名の代わりに任意の有効な文字列を使用できます。

自動ログオン ポリシーの詳細については、自動ログオン ポリシーに関する記事を参照してください。