Wie ändere ich in Windows 7 die Proxy-Einstellungen über die Befehlszeile?

46

Wie ändere ich die Proxy-Einstellungen über die Befehlszeile in Windows 7?

Ich spreche nicht nur über die http_proxy. Ich muss systemweite Proxy-Einstellungen festlegen (die Einstellungen in den Internet-Eigenschaften). Wie mache ich das?

Zinken
quelle
Falls der Proxy auch eine Autorisierung erfordert: stackoverflow.com/questions/26992886/…
Vadzim

Antworten:

15

Sie müssen ein Registrierungsskript konfigurieren, das die Änderungen vornimmt, die Sie normalerweise über die Systemsteuerung vornehmen würden, und das Skript dann zusammenführen, um den Proxy zu aktivieren. Sie benötigen außerdem ein Registrierungsskript "Rückgängig", um die Änderungen zu deaktivieren.

In meinem Fall habe ich zwei Skripte, enable.reg und disable.reg:

Proxy aktivieren:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"AutoConfigURL"="http://10.10.10.1/autoproxy/proxy.pac"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:16,00,00,00,05,02,00,00,0d,00,00,00,0e,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:36,00,00,00,46,1a,00,00,0d,00,00,00,0e,00,00,00,32,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

Proxy deaktivieren:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"AutoConfigURL"=-

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:16,00,00,00,05,02,00,00,0d,00,00,00,0e,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:36,00,00,00,46,1a,00,00,0d,00,00,00,0e,00,00,00,32,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

Im Skript " =-disable" löscht das am Ende von AutoConfigURL tatsächlich den Schlüssel aus der Registrierung.

Beachten Sie, dass die oben angezeigten Werte für die Zwecke dieser Antwort geändert werden. Die tatsächlichen Hex-Werte sind viel länger.

Um diese Skripte zu verwenden, hatte ich für jedes eine Batch-Datei, die ungefähr so ​​aussah:

@echo off
start /min reg import C:\Path\To\Registry\File\enable_proxy.reg

Das ist voll funktionsfähig von der Kommandozeile.


quelle
Am Ende habe ich so etwas gemacht. Ich wusste nicht, wie man die Registrierung über ein Batch-Skript manipuliert, also habe ich c#Code dafür geschrieben .. :). Danke sowieso ..
Zinken
Das scheint bei mir nicht zu funktionieren. Sollte das Kontrollkästchen "Automatisches Konfigurationsskript verwenden" in den "LAN-Einstellungen" aktiviert und deaktiviert sein?
Jonny
@prongs Ich bezweifle, dass Sie diesen C # -Code teilen werden ... richtig?
Tisaconundrum
61

Einfache und funktionierende Lösung, abgerufen von http://www.ehow.com/how_6887864_do-proxy-settings-command-prompt_.html

Befehl zum Aktivieren der Proxy-Nutzung:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyEnable /t REG_DWORD /d 1 /f

Befehl zum Deaktivieren der Proxy-Verwendung:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyEnable /t REG_DWORD /d 0 /f

Befehl zum Ändern der Proxy-Adresse:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
    /v ProxyServer /t REG_SZ /d proxyserveraddress:proxyport /f

Ich habe die Zeilenfortsetzung (^) hinzugefügt, um die Lesbarkeit zu verbessern. In diesem Fall ist dies eher eine benutzerspezifische als eine systemweite Einstellung.

sayap
quelle
3
IMO, das ist die eigentliche Antwort auf die Frage. Thanks @sayap
kmonsoor
4
+1. Dies ist eine viel elegantere Lösung für meine.
3
Hinweis: Die ^Zeichen sind nicht Bestandteil der Befehle.
Joshua Drake
6
Browser navigieren jedoch erst, wenn Sie das Fenster "LAN-Konfiguration" öffnen. Zumindest passiert mir das, wenn ich diese Methode verwende. Ich mache das, um Browser zu wecken, die der Proxy geändert hat, erst danach funktioniert die Verbindung.
Marcos Cassiano
1
@ Cricrazy das ist, was Sie gesucht haben, denke ich
Narzard
27

NetSh zur Rettung!

NetSh winhttp set proxy sollte hilfreich sein. Hier sind die Befehle:

netsh winhttp set proxy myproxy

netsh winhttp set proxy myproxy:80 "<local>bar"

netsh winhttp set proxy proxy-server="http=myproxy;https=sproxy:88" bypass-list="*.contoso.com"

Charles Oppermann
quelle
Löschen des Proxys mit Netsh: Netsh Winhttp Reset Proxy
Kevin Driedger
9
Ich denke, dies gilt nur für Anwendungen, die die WinHTTP-Bibliothek verwenden. Nach einem kurzen Test sieht es so aus, als ob keine gängige Anwendung auf meinem System dies verwendet.
29.
4

Ich habe es in C # gemacht, aber die Philosophie ist dieselbe, in der ich in die Registrierung schreibe, sodass die folgenden Anweisungen auf den Zeilenbefehl hochgerechnet werden können. Es sollen drei Dinge getan werden:

  1. In die Registrierung "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings" auf ProxyEnable schreiben: 1 zum Aktivieren, 0 zum Deaktivieren

  2. In die Registrierung "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings" auf ProxyServer schreiben: xxx.xxx.xxx.xxxx: yyyy (xxx ... ist die IP, yy .. ist der Port)

  3. Nachdem Sie die Schritte 1 und 2 ausgeführt haben, müssen Sie die Aktivierung des Proxys sowie die IP und den Port registrieren. Wenn Sie jedoch den Browser öffnen, werden Sie feststellen, dass dies nicht ausreicht. Sie können jedoch noch nicht navigieren. Der dritte Schritt besteht darin, die Registrierung hinsichtlich der Verbindungseinstellungen zu ändern:

"Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Connections" unter "DefaultConnectionSettings".

Beachten Sie, dass diese Registrierung zwar (zumindest für W7) 204 Byte enthält, Sie jedoch nur Byte 8 ändern müssen (9., da Byte 0 das erste ist). Der Wert in Byte 8 enthält nicht nur Informationen zum Aktivieren / Deaktivieren des Proxys, sondern auch zu anderen Funktionen:

        //09 when only 'Automatically detect settings' is enabled 
        //03 when only 'Use a proxy server for your LAN' is enabled
        //0B when both are enabled
        //05 when only 'Use automatic configuration script' is enabled
        //0D when 'Automatically detect settings' and 'Use automatic      configuration script' are enabled
        //07 when 'Use a proxy server for your LAN' and 'Use automatic configuration script' are enabled
        //0F when all the three are enabled. 
        //01 when none of them are enabled. 

In meinem Fall ist die Option "Einstellungen automatisch erkennen" immer aktiviert. Daher ändere ich den Wert von Byte 8 von 09 auf 0B und umgekehrt, um den Proxy zu aktivieren und zu deaktivieren.

Ivan
quelle
1
Ich habe auf SO eine Antwort gefunden, die die DefaultConnectionSettings-Einstellung mithilfe von Powershell aktualisiert. Ich dachte, es könnte für jemanden nützlich sein. stackoverflow.com/a/15914470/1158180
paulH
2

Erstellen Sie eine Batch-Datei und fügen Sie den folgenden Inhalt ein (der Proxy-Status wird umgeschaltet).

@echo off

FOR /F "tokens=2* delims=    " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable') DO SET currentProxy=%%B
rem ECHO currentProxy=%currentProxy%

if %currentProxy%==0x1 (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
echo Proxy Disabled
) else (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
echo Proxy Enabled
  )

pause
Dinesh Gupta
quelle
1
Dies ist der Antwort von @ sayap sehr ähnlich.
-3

Ich hoffe, ich weise Sie hier in die richtige Richtung, aber wenn Sie versuchen, über "Internetoptionen" auf die Proxy-Einstellungen zuzugreifen, öffnen Sie einfach das Startmenü und geben Sie "Internetoption" ein (jede Einstellung oder Anwendung, die Sie auch auf diese Weise finden können) Beispiel "Proxy"). Sie sollten dieses Menü dann erkennen und in der Lage sein, Ihre erforderlichen Einstellungen hinzuzufügen.

Luke Russell
quelle
1
Alter ... Sie haben den Titel nicht richtig gesehen ... Ich weiß, was Sie mir sagen wollen. Ich möchte es von der Kommandozeile aus machen.
Zinken
Es tut mir leid, aber mein Freund hat Sie
Luke Russell,