Dans Windows 7, comment modifier les paramètres du proxy à partir de la ligne de commande?

46

Comment modifier les paramètres de proxy à partir de la ligne de commande dans Windows 7?

Je ne parle pas seulement du http_proxy. Je dois définir des paramètres de proxy à l'échelle du système (ceux définis dans les propriétés Internet). Comment je fais ça?

griffes
la source
Dans le cas où le proxy requiert également une autorisation: stackoverflow.com/questions/26992886/…
Vadzim

Réponses:

15

Vous devrez configurer un script de registre qui apportera les modifications que vous feriez normalement via le Panneau de configuration, puis le fusionner pour activer le proxy. Vous aurez également besoin d'un script de registre "annuler" pour désactiver les modifications.

Dans mon cas, j'ai deux scripts, enable.reg et disable.reg:

Activer le proxy:

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

Désactiver le proxy:

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

Dans le script "disable", =-à la fin d'AutoConfigURL, la clé est effectivement supprimée du registre.

Notez que les valeurs que vous voyez ci-dessus sont modifiées pour les besoins de cette réponse. Les valeurs hexadécimales réelles sont beaucoup plus longues.

Pour utiliser ces scripts, j'avais un fichier de commandes pour chacun d'eux, ressemblant à ceci:

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

Cela est entièrement réalisable à partir de la ligne de commande.


la source
J'ai fini par faire quelque chose comme ça. Je ne savais pas comment manipuler le registre à partir d'un script batch, j'ai donc écrit du c#code pour cela .. :). merci quand même ..
broches
Cela ne semble pas fonctionner pour moi. Devrais-je réellement voir la case "Utiliser le script de configuration automatique" cochée et décochée dans "Paramètres réseau"?
Jonny
@prongs Je doute que vous partagiez ce code C # ... non?
Tisaconundrum
61

Solution simple et pratique récupérée à l' adresse http://www.ehow.com/how_6887864_do-proxy-settings-command-prompt_.html

Commande pour activer l'utilisation du proxy:

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

Commande pour désactiver l'utilisation du proxy:

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

Commande pour changer l'adresse proxy:

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

J'ai ajouté la continuation de ligne (^) pour une meilleure lisibilité. De plus, dans ce cas, il s’agit plus d’un paramètre par utilisateur que d’un paramètre à l’échelle du système.

sayap
la source
3
OMI, c'est la réponse réelle à la question. Merci @sayap
kmonsoor
4
+1 C'est une solution beaucoup plus élégante à la mienne.
3
Remarque: Les ^caractères ne font pas partie des commandes.
Joshua Drake
6
Mais les navigateurs ne naviguent que lorsque vous ouvrez la fenêtre "Configuration du réseau local". Au moins, cela m’arrive lorsque j’utilise cette méthode. Je fais ceci pour réveiller les navigateurs que le proxy a changé, mais après cela, la connexion fonctionne.
Marcos Cassiano
1
@ Cricrazy, c'est ce que vous cherchiez, je pense
Narzard
27

NetSh à la rescousse!

NetSh winhttp set proxy devrait être utile. Voici les commandes:

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
la source
Effacer le proxy en utilisant netsh: netsh winhttp réinitialiser le proxy
Kevin Driedger
9
Je pense que cela ne concerne que les applications qui utilisent la bibliothèque WinHTTP. Après un test rapide, il ne semble pas qu'une application courante sur mon système l'utilise.
sayap
4

Je l'ai fait en C #, mais la philosophie est la même, en écrivant au registre, afin que les instructions suivantes puissent être extrapolées à la commande line. Il sera fait trois choses:

  1. Écrire dans le registre "Paramètres HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet" sur ProxyEnable: 1 pour activer, 0 pour désactiver

  2. Écrivez dans le registre "Paramètres HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet" sur ProxyServer: xxx.xxx.xxx.xxxx: yyyy (xxx ... est l'adresse IP, yy .. est le port)

  3. Après avoir exécuté les étapes 1 et 2, vous aurez écrit dans le registre l'activation du proxy, l'adresse IP et le port, mais si vous ouvrez le navigateur, vous remarquerez que cela ne suffit pas, vous ne pouvez pas encore naviguer. La troisième étape consiste à modifier le registre en ce qui concerne les paramètres de connexion:

"Logiciel \ Microsoft \ Windows \ CurrentVersion \ Paramètres Internet \ Connexions" sur "DefaultConnectionSettings".

Notez que même si (au moins pour W7), il y a 204 octets dans ce registre, il vous suffit de modifier l'octet 8 (le neuvième octet puisque l'octet 0 est le premier). La valeur de l'octet 8 contient non seulement des informations sur l'activation / la désactivation du proxy, mais également sur d'autres fonctionnalités:

        //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. 

Dans mon cas, l'option 'Détecter automatiquement les paramètres' est toujours activée. Je change donc la valeur de l'octet 8 de 09 à 0B et inversement pour activer et désactiver le proxy.

Ivan
la source
1
J'ai trouvé une réponse sur SO qui met à jour le paramètre DefaultConnectionSettings à l'aide de powershell. J'ai pensé que cela pourrait être utile à quelqu'un. stackoverflow.com/a/15914470/1158180
paulH
2

Créez un fichier de commandes et collez le contenu suivant (cela changera l'état du proxy),

@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
la source
1
Ceci est très similaire à la réponse de @ sayap.
-3

J'espère vous diriger dans la bonne direction ici, mais si vous essayez d'accéder aux paramètres de proxy via "Options Internet", ouvrez simplement le menu Démarrer et tapez "option Internet" (tout paramètre ou application que vous pouvez localiser de cette manière exemple "proxy"). Vous devriez alors reconnaître ce menu et pouvoir ajouter les paramètres nécessaires.

Luke Russell
la source
1
mec ... tu n'as pas vu le titre proprement ... Je sais ce que tu veux me dire. Je veux le faire en ligne de commande.
broches
Désolé mec, on dirait que mon pote a tout
Luke Russell