Proxykonfigurationstool „ProxyCfg.exe“

Wichtig

ProxyCfg.exe ist seit Windows Vista und Windows Server 2008 veraltet. Es wurde durch Netsh.exe ersetzt (siehe Netsh.exe-Befehle).

In diesem Thema wird die Verwendung des Proxykonfigurationstools ProxyCfg.exe für Microsoft Windows HTTP-Dienste (WinHTTP) erläutert.

Es gibt zwei Möglichkeiten, über einen Proxy mit Microsoft Windows HTTP-Diensten (WinHTTP) auf HTTP- und HTTPS-Server (Secure Hypertext Transfer Protocol) zuzugreifen. Zum einen können Sie Proxyeinstellungen in Ihrer WinHTTP-Anwendung angeben. Zum anderen können Sie Standardproxyeinstellungen außerhalb Ihrer Anwendung mithilfe des Proxykonfigurationsprogramms im Verzeichnis „%windir%\system32“ angeben.

Sie können die Proxydaten programmgesteuert innerhalb Ihrer Anwendung oder Ihres Skripts festlegen. Wenn Sie eine Anwendung schreiben, in der die WinHTTP-API verwendet wird, wenden Sie eine der folgenden beiden Techniken an, um Proxyeinstellungen zu ändern.

  • Verwenden Sie die WinHttpOpen-Funktion. Geben Sie im zweiten Parameter den Zugriffstyp, im dritten Parameter den Namen des Proxys und im vierten Parameter eine Umgehungsliste an. Das folgende Beispiel zeigt, wie die WinHttpOpen-Funktion zum Festlegen von Proxydaten verwendet werden kann.

    hSession = WinHttpOpen( L"WinHTTP Example/1.0",  
                            WINHTTP_ACCESS_TYPE_NAMED_PROXY,
                            L"proxy_name", 
                            L"<local>", 
                            0);
    
  • Verwenden Sie die WinHttpSetOption-Funktion. Mit dem Flag WINHTTP_OPTION_PROXY können Sie Proxyeinstellungen mit einer WINHTTP_PROXY_INFO-Struktur angeben. Der folgende Beispielcode zeigt, wie die WinHttpSetOption-Funktion zum Festlegen von Proxydaten verwendet werden kann.

    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));
    

Wenn Sie ein Skript oder eine Anwendung mit dem WinHttpRequest-Objekt schreiben, verwenden Sie die folgende Technik, um Proxyeinstellungen zu ändern.

  • Verwenden Sie die SetProxy-Methode. Geben Sie im ersten Parameter den Zugriffstyp, im zweiten Parameter den Namen des Proxys und im dritten Parameter eine Umgehungsliste an. Das folgende Beispiel zeigt, wie die SetProxy-Methode in einem Skript zum Festlegen von Proxydaten verwendet werden kann.

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

Verwenden Sie das Proxykonfigurationsprogramm, um Standardeinstellungen anzugeben und die Verwendung der SetProxy-Methode oder der WinHttpSetOption-Funktion zu vermeiden. Mithilfe dieses Hilfsprogramms können Sie festlegen, dass Ihre Anwendung entweder direkt, über einen Proxy oder über eine Kombination aus direktem und Proxyzugriff auf ein Netzwerk zugreift, indem Sie eine Umgehungsliste angeben. Wenn Sie die WinHTTP-API verwenden, bestimmt das Proxykonfigurationstool nur die Einstellungen, wenn Sie das Flag WINHTTP_ACCESS_TYPE_DEFAULT an die WinHttpOpen-API übergeben. Das WinHttpRequest-Objekt verwendet standardmäßig die Einstellungen des Proxykonfigurationstools.

Die Proxyeinstellungen für WinHTTP sind nicht die Proxyeinstellungen für Microsoft Internet Explorer. Sie können die Proxyeinstellungen für WinHTTP nicht in der Systemsteuerung von Microsoft Windows konfigurieren. Das WinHTTP-Proxykonfigurationsprogramm ändert nicht die Einstellungen für Internet Explorer.

Hinweis

Wenn Sie versuchen, eine HTTP-Anforderung mit WinHTTP zu öffnen und zu senden, und die Proxyeinstellungen falsch sind, tritt ein Fehler auf.

Befehlszeilenparameter

In der folgenden Tabelle sind die Befehlszeilenparameter aufgeführt, die für die Verwendung mit dem Tool „ProxyCfg.exe“ zur Verfügung stehen.

Parameter Beschreibung des Dataflows
Keine Wenn keine Parameter angegeben wurden, werden die aktuellen WinHTTP-Proxyeinstellungen angezeigt.
? Zeigt Hilfeinformationen an.
d Gibt an, dass WinHTTP-Anwendungen direkt und ohne einen Proxy auf das Netzwerk zugreifen.
p Gibt den Proxyserver an. Sie können optional auch eine Liste von Servern angeben, auf die ohne Proxy zugegriffen wird.
n Gibt an, dass WinHTTP-Anwendungen die Proxyeinstellungen der aktuellen Benutzer*innen für Internet Explorer verwenden. Dieser Parameter funktioniert nicht, wenn Internet Explorer Proxyeinstellungen automatisch erkennt oder wenn der Browser eine automatische Konfigurations-URL verwendet, um Proxyinformationen festzulegen.
i Gibt an, dass WinHTTP-Anwendungen die Proxyeinstellungen der aktuellen Benutzer*innen für Internet Explorer verwenden. Dies funktioniert nur, wenn „ProxyCfg.exe“ zuvor nicht verwendet wurde. Wenn „ProxyCfg.exe“ installiert ist, geben Sie an, dass der Befehlszeilenparameter „u“ die manuellen Einstellungen verwendet. Dieser Parameter funktioniert nicht, wenn Internet Explorer Proxyeinstellungen automatisch erkennt oder wenn der Browser eine automatische Konfigurations-URL verwendet, um Proxyinformationen festzulegen.

Sie können Proxys in einer durch Leerzeichen getrennten Zeichenfolge angeben. Die Proxyauflistungen können die Portnummer enthalten, die für den Zugriff auf den Proxy verwendet wird. Um einen Proxy für ein bestimmtes Protokoll aufzulisten, muss die Zeichenfolge dem Format <protocol>=https://<Proxyname> folgen. Die gültigen Protokolle sind HTTP und HTTPS. Um beispielsweise einen HTTP-Proxy aufzulisten, lautet eine gültige Zeichenfolge „http=https://http_proxy_name:80“, wobei „http_proxy_name“ der Name des Proxyservers und „80“ die Portnummer ist, die Sie für den Zugriff auf den Proxy verwenden müssen. Wenn der Proxy die Standardportnummer für dieses Protokoll verwendet, können Sie die Portnummer weglassen. Wenn der Proxyname selbst aufgeführt ist, können Sie ihn als Standardproxy für alle Protokolle verwenden, die keinen angegebenen Proxy besitzen. Beispielsweise verwendet „http=https://http_proxy other_proxy“ den „http_proxy“ für alle HTTP-Vorgänge, während für das HTTPS-Protokoll ein Proxy namens „other_proxy“ verwendet wird.

Sie können in der Proxyumgehungsliste lokal bekannte Hostnamen oder IP-Adressen auflisten. Diese Liste kann Platzhalter enthalten, z. B. „*“, der dazu führt, dass die Anwendung den Proxyserver für Adressen umgeht, die dem angegebenen Muster entsprechen, z. B. „*.microsoft.com“ oder „*.org“. Platzhalterzeichen müssen ganz links in der Liste stehen. Beispielsweise wird „aaa.*“ nicht unterstützt. Wenn Sie mehrere Adressen und Hostnamen auflisten möchten, trennen Sie sie in der Proxyumgehungszeichenfolge durch Leerzeichen oder Semikolons voneinander ab. Wenn Sie das <lokale> Makro angeben, umgeht die Funktion alle Hostnamen, die keinen Punkt enthalten.

Warnung

Nachdem „Proxycfg.exe“ ausgeführt wurde, können Sie die vorherigen Proxyeinstellungen nicht wiederherstellen. Sie können die Proxyeinstellungen jedoch vollständig entfernen.

Verwendung

Um das Proxykonfigurationstool zu verwenden, öffnen Sie ein Eingabeaufforderungsfenster und führen das Proxykonfigurationsprogramm mit den entsprechenden Befehlszeilenparametern aus. Im folgenden Abschnitt finden Sie Syntaxbeispiele.

Beispielsyntax

Beispiel 1: Verwenden eines Proxys nur für externe Ressourcen

Nachfolgend finden Sie die gängigste Verwendung für „Proxycfg.exe“. Dieser Befehl gibt an, dass sowohl auf HTTP- als auch auf HTTPS-Server über den Proxyserver mit dem Namen „proxy_server“ zugegriffen wird, mit Ausnahme von Hostnamen, die keinen Punkt enthalten.

proxycfg -p proxy_server "<local>"

Beispiel 2: Verwenden eines Proxys für alle Ressourcen

Im folgenden Beispiel wird angegeben, dass auf HTTP- und HTTPS-Server über den Proxyserver „proxy_server“ zugegriffen wird. Es wird keine Umgehungsliste angegeben.

proxycfg -p proxy_server

Beispiel 3: Verwenden eines anderen Proxys für sichere Ressourcen

Im folgenden Beispiel wird angegeben, dass auf HTTP-Server über den Proxy „http_proxy“ und auf HTTPS-Server über den Proxy „https_proxy“ zugegriffen wird. Lokale Intranetwebsites und alle Websites in der Domäne „*.microsoft.com“ umgehen den Proxy.

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

Entfernen von „ProxyCfg.exe“

Nachdem Sie das Proxykonfigurationstool verwendet haben, können Sie Ihre ursprünglichen Proxyeinstellungen nicht wiederherstellen. Bei Bedarf können Sie jedoch die Registrierungseinstellungen entfernen, die das Hilfsprogramm erstellt. Um die Registrierungseinträge zu entfernen, die „ProxyCfg.exe“ erstellt, müssen Sie den Wert von WinHttpSettings aus dem folgenden Registrierungsschlüssel löschen.

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

Durch das Löschen des Werts von WinHttpSettings werden alle Proxykonfigurationen entfernt.

„ProxyCfg.exe“ und die Authentifizierung

Das Proxykonfigurationsprogramm legt die Standardauthentifizierungsrichtlinie fest. Da Sie die NTLM-Authentifizierung nicht mit nicht vertrauenswürdigen Hosts ausführen sollten, erfolgt die NTLM-Authentifizierung standardmäßig ausschließlich automatisch mit Hosts in der Proxyumgehungsliste. Wenn kein Proxy vorhanden ist, können Sie „ProxyCfg.exe“ trotzdem verwenden, um eine Umgehungsliste von Hosts anzugeben, denen Sie vertrauen, um die NTLM-Authentifizierung durchzuführen. Wenn Sie „ProxyCfg.exe“ zu diesem Zweck verwenden, ist ein Proxyname erforderlich. Sie können aber eine beliebige gültige Zeichenfolge anstelle eines echten Proxynamens verwenden.

Weitere Informationen zur Richtlinie für die automatische Anmeldung finden Sie unter Richtlinie für die automatische Anmeldung.