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?
Vous devrez configurer un script de registre qui apportera les modifications habituelles 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", le =-
à la fin d'AutoConfigURL supprime en réalité la clé 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 batch 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.
Solution simple et fonctionnelle extraite de 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.
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"
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:
Écrire dans le registre "Paramètres HKCU\Software\Microsoft\Windows\CurrentVersion\Internet" sur ProxyEnable: 1 pour activer, 0 pour désactiver
É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)
Après avoir effectué 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 modifie donc la valeur de l'octet 8 de 09 à 0B et inversement pour activer et désactiver le proxy.
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