Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
ProxyCfg.exe
ist seit Windows Vista und Windows Server 2008 veraltet. Sie wird durch Netsh.exe
ersetzt (siehe Netsh.exe Befehle).
In diesem Thema wird die Verwendung des Microsoft Windows HTTP Services (WinHTTP) Proxykonfigurationstools ProxyCfg.exe
erläutert.
Es gibt zwei Möglichkeiten, über einen Proxy mit Microsoft Windows HTTP Services (WinHTTP) auf HTTP- und HTTPS-Server (Secure Hypertext Transfer Protocol) zuzugreifen. Zunächst können Sie Proxyeinstellungen in Ihrer WinHTTP-Anwendung angeben. Zweitens können Sie standardproxyeinstellungen von 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 mit der WinHTTP-API schreiben, verwenden Sie eine der folgenden beiden Techniken, um Proxyeinstellungen zu ändern.
Verwenden Sie die WinHttpOpen--Funktion. Geben Sie den Zugriffstyp im zweiten Parameter, den Namen des Proxys im dritten Parameter und eine Umgehungsliste im vierten Parameter 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 WINHTTP_OPTION_PROXY-Flag 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 Methode, um Proxyeinstellungen zu ändern.
Verwenden Sie die SetProxy--Methode. Geben Sie den Zugriffstyp im ersten Parameter, den Namen des Proxys im zweiten Parameter und eine Umgehungsliste im dritten Parameter an. Das folgende Beispiel zeigt, wie die SetProxy--Methode in 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 angeben, 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 WINHTTP_ACCESS_TYPE_DEFAULT Flag 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 Microsoft Windows-Systemsteuerung konfigurieren. Die Verwendung des WinHTTP-Proxykonfigurationsprogramms ändert nicht die Einstellungen, die Sie für Internet Explorer verwenden.
Anmerkung
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"" verfügbar sind.
Parameter | Beschreibung |
---|---|
nichts | Wenn keine Parameter angegeben werden, werden die aktuellen WinHTTP-Proxyeinstellungen angezeigt. |
? | Hilfeinformationen werden angezeigt. |
d | Gibt an, dass WinHTTP-Anwendungen direkt ohne Proxy auf das Netzwerk zugreifen. |
p | Gibt den Proxyserver an. Sie können auch eine optionale Liste von Servern angeben, auf die ohne Proxy zugegriffen wird. |
u | Gibt an, dass WinHTTP-Anwendungen die Proxyeinstellungen des aktuellen Benutzers für Internet Explorer verwenden. Dieser Parameter funktioniert nicht, wenn Internet Explorer Proxyeinstellungen automatisch erkennt oder wenn er eine automatische Konfigurations-URL verwendet, um die Proxyinformationen festzulegen. |
Ich | Gibt an, dass WinHTTP-Anwendungen die Proxyeinstellungen des aktuellen Benutzers 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 eine automatische Konfigurations-URL zum Festlegen der Proxyinformationen verwendet. |
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 auflisten zu können, muss die Zeichenfolge dem Format entsprechen, <Protokoll>=https://<proxy_name>. Die gültigen Protokolle sind HTTP und HTTPS. Um beispielsweise einen HTTP-Proxy auflisten zu können, ist 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 ein Proxyname selbst aufgeführt wird, können Sie ihn als Standardproxy für alle Protokolle verwenden, die keinen angegebenen Proxy besitzen. Beispielsweise verwendet http=https://http_proxy other_proxy http_proxy für alle HTTP-Vorgänge, während das HTTPS-Protokoll den Proxy namens other_proxy verwendet.
Sie können lokal bekannte Hostnamen oder IP-Adressen in der Proxyumgehungsliste auflisten. Diese Liste kann Platzhalter enthalten, z. B. "*", die dazu führen, dass die Anwendung den Proxyserver für Adressen umgeht, die dem angegebenen Muster entsprechen, z. B. "*.microsoft.com" oder "*.org". Als Wildcardzeichen muss es sich bei den meisten Zeichen in der Liste um die meisten Zeichen handeln. Beispielsweise wird "aaa.*" nicht unterstützt. Wenn Sie mehrere Adressen und Hostnamen auflisten möchten, trennen Sie sie durch Leerzeichen oder Semikolons in der Proxyumgehungszeichenfolge. Wenn Sie das <lokalen> Makros 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 Sie das Proxykonfigurationsprogramm mit den entsprechenden Befehlszeilenparametern aus. Im folgenden Abschnitt finden Sie Syntaxbeispiele.
Beispielsyntax
Beispiel 1: Verwenden eines Proxys nur für externe Ressourcen
Im Folgenden finden Sie die am häufigsten verwendete Verwendung für Proxycfg.exe. Dieser Befehl gibt an, dass sowohl http- als auch HTTPS-Server über den Proxyserver mit dem Namen "proxy_server" zugegriffen werden, mit Ausnahme von Hostnamen, die keinen Punkt enthalten.
proxycfg -p proxy_server "<lokalen>"
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 über den http_proxy Proxy- und HTTPS-Server über https_proxy auf HTTP-Server zugegriffen wird. Lokale Intranetwebsites und alle Websites in der Domäne *.microsoft.com umgehen den Proxy.
proxycfg -p "http=http_proxy https=https_proxy"<lokalen>;*.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 von ProxyCfg.exe erstellten Registrierungseinträge zu entfernen, müssen Sie den wert WinHttpSettings aus dem folgenden Registrierungsschlüssel löschen.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Interneteinstellungen\Connections\WinHttpSettings
Beim Löschen des WinHttpSettings Wert werden alle Proxykonfigurationen entfernt.
ProxyCfg.exe und 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 nur automatisch mit Hosts in der Proxyumgehungsliste. Wenn kein Proxy vorhanden ist, können Sie weiterhin ProxyCfg.exe verwenden, um eine Umgehungsliste von Hosts anzugeben, denen Sie vertrauen, um die NTLM-Authentifizierung durchzuführen. Ein Proxyname ist erforderlich, wenn Sie ProxyCfg.exe zu diesem Zweck verwenden, aber Sie können 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.