web-dev-qa-db-fra.com

Fichier batch pour désactiver le serveur proxy des options Internet

Dans Windows, je souhaite désactiver le paramètre du serveur proxy dans Options Internet à l'aide d'un script de traitement par lots. Quelle commande puis-je utiliser pour ce faire?

Si vous ne savez pas de quoi je parle, voir

Internet Properties > Connections > LAN Settings >Proxy Server

Je vous remercie

17
DextrousDave

Il se trouve dans le registre, sous [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]

vous pouvez soit utiliser la commande REG dans votre BAT, soit préparer quelques .REG fichiers, pour automatiser les modifications.

par exemple, pour désactiver le proxy, essayez

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
19
PA.

Voici un moyen d'utiliser un simple script .vbs comme raccourci de bureau de type "widget". La première fois que vous souhaitez exécuter le script, cliquez sur le fichier .vbs que vous créez. Cela générera automatiquement un raccourci sur le bureau pour vous avec une icône appropriée. Chaque fois que vous cliquez sur le raccourci par la suite, il bascule le paramètre de proxy, affiche une boîte contextuelle temporisée pendant 1 seconde pour vous dire si le proxy est [~ # ~] sur [~ # ~] ou [~ # ~] désactivé [~ # ~] maintenant, et change l'icône de raccourci en ON ou OFF symbole pour indiquer le nouvel état du proxy.

Fichier: "C:\Users\YOUR_USERNAME\Proxy Settings\toggle_proxy_on_off.vbs"

'Toggle your Proxy on and off 
'Gabriel Staples - www.ElectricRCAircraftGuy.com
'Written: 21 June 2017 
'Updated: 25 June 2017 
'References: 
' 1) https://stackoverflow.com/a/27092872/4561887 
' 2) https://stackoverflow.com/a/26708451/4561887 
' Timed message boxes:
' - *****https://technet.Microsoft.com/en-us/library/ee156593.aspx
' - https://stackoverflow.com/questions/14105157/automatically-close-msgbox-in-vbscript
' Debug output:
' - ex: Wscript.Echo "here is your message"

Option Explicit 

'Variables & Constants:
Dim ProxySettings_path, VbsScript_filename 
ProxySettings_path = "C:\Users\Gabriel\Proxy Settings"
VbsScript_filename = "toggle_proxy_on_off.vbs"
Const MESSAGE_BOX_TIMEOUT = 1 'sec; change this value to set how long the message box displays when you toggle the proxy setting 
Const PROXY_OFF = 0

Dim WSHShell, proxyEnableVal, username 
Set WSHShell = WScript.CreateObject("WScript.Shell")
'get the username string for use in path names, since trying to use the "%USERNAME%" variable directly in path names throws an error
username = WSHShell.ExpandEnvironmentStrings("%USERNAME%") 

'Determine current proxy setting and toggle to opposite setting
proxyEnableVal = wshshell.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable")
If proxyEnableVal = PROXY_OFF Then 
  TurnProxyOn
Else
  TurnProxyOff
End If

'Subroutine to Toggle Proxy Setting to ON
Sub TurnProxyOn 
  'turn proxy on via a registry entry 
  WSHShell.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD"
  'create/update desktop shortcut 
  CreateOrUpdateDesktopShortcut("on")
  'notify user via an auto-timed popup box 
  WSHShell.Popup "Internet proxy is now ON", MESSAGE_BOX_TIMEOUT, "Proxy Settings"
End Sub

'Subroutine to Toggle Proxy Setting to OFF
Sub TurnProxyOff 
  'turn proxy off via a registry entry 
  WSHShell.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 0, "REG_DWORD"
  'create/update desktop shortcut 
  CreateOrUpdateDesktopShortcut("off")
  'notify user via an auto-timed popup box 
  WSHShell.Popup "Internet proxy is now OFF", MESSAGE_BOX_TIMEOUT, "Proxy Settings"
End Sub

'Subroutine to create or update a shortcut on the desktop 
Sub CreateOrUpdateDesktopShortcut(onOrOff)
  'create a shortcut 
  Dim shortcut, iconStr
  Set shortcut = WSHShell.CreateShortcut("C:\Users\" + username + "\Desktop\Proxy On-Off.lnk")
  'Set the target path (target file) to run when the shortcut is clicked 
  shortcut.TargetPath = ProxySettings_path + "\" + VbsScript_filename
  'Set the working directory. This is necessary in case you ever make this shortcut call a batch (.bat) file, for instance, which in turn calls a .vbs script. In order to know where the .vbs script file/command is located, the shortcut must be operating in the working directory where the .vbs scripts are located. Otherwise, calls to the .vbs scripts from a .bat file this shortcut points to, for instance, won't work since their directories are not in the Windows %PATH% variable, and you'll get an error which states: "'name_of_vbs_script_file' is not recognized as an internal or external command, operable program or batch file."
  shortcut.WorkingDirectory = ProxySettings_path 
  'Set the icon to associate with this shortcut 
  If onOrOff = "on" Then
    iconStr = "on.ico"
  ElseIf onOrOff = "off" Then
    iconStr = "off.ico"
  End If 
  shortcut.IconLocation = ProxySettings_path + "\Icons\" + iconStr
  'Save the shortcut 
  shortcut.Save
End Sub 

Instructions:

  1. Créez un dossier appelé "C:\Users\YOUR_USERNAME\Proxy Settings"
  2. Créez le fichier "toggle_proxy_on_off.vbs", comme illustré ci-dessus, dans ce dossier.
  3. Créez un dossier "Icônes" ici: "C:\Users\YOUR_USERNAME\Proxy Settings\Icons"
  4. Téléchargez les deux images .png suivantes:
  5. Convertissez ces images en icônes (fichiers .ico) en utilisant http://icoconvert.com/ , par exemple. Choisissez Fichier (choisissez un .png ci-dessus) -> Télécharger -> choisissez le format "ICO pour Windows 7, Windows 8, Vista et XP" -> cliquez sur "Convertir ICO" -> cliquez sur "Télécharger votre icône (s ) "
    • Enregistrez l'icône ON sous "C:\Users\YOUR_USERNAME\Proxy Settings\Icons\on.ico"
    • Enregistrez l'icône OFF sous "C:\Users\YOUR_USERNAME\Proxy Settings\Icons\off.ico"
  6. Maintenant, double-cliquez sur le fichier "C:\Users\Gabriel\Proxy Settings\toggle_proxy_on_off.vbs" pour l'exécuter. Il créera automatiquement un fichier de raccourci "Proxy On-Off" sur votre bureau, avec l'icône appropriée pour indiquer si le proxy est activé ou désactivé.

À partir de là, cliquez simplement sur le raccourci du bureau "Proxy On-Off" pour activer ou désactiver le proxy.

Voici à quoi cela ressemble lorsque le proxy est désactivé:

enter image description here

Voici à quoi cela ressemble lorsque le proxy est activé:

enter image description here

Voici un exemple de la fenêtre contextuelle d'une seconde qui s'affiche chaque fois que vous cliquez sur l'icône de raccourci pour activer/désactiver le proxy.

enter image description here

Les références:

  1. https://stackoverflow.com/a/27092872/4561887 <- m'a appris à utiliser un script .vbs pour activer et désactiver le proxy
  2. https://stackoverflow.com/a/26708451/4561887 <- m'a appris la technique ingénieuse sur la façon de faire un script .vbs agir comme un widget en créant un raccourci Windows et en changeant son icône chaque chaque fois que vous cliquez dessus
  3. Boîtes de message chronométrées:

Faire:

Quelqu'un peut-il m'aider à comprendre comment améliorer encore cette étape en lui faisant également changer le nom de l'icône à chaque fois? - c'est-à-dire: au lieu de dire "Proxy On-Off" sur le raccourci , faites-le dire "Le proxy est activé" ou "Le proxy est désactivé", selon son état actuel. Je ne sais pas comment aller encore plus loin, et j'ai mis assez de temps pour l'instant ...

11
Gabriel Staples

Désactiver le proxy et désactiver avec un .vbs

Ce script MS .vbs Détermine le paramètre de proxy actuel et bascule vers le paramètre d'oppisite très pratique si vous souhaitez activer et désactiver le proxy

Option Explicit 
Dim WSHShell, strSetting
Set WSHShell = WScript.CreateObject("WScript.Shell")

'Determine current proxy setting and toggle to oppisite setting
strSetting = wshshell.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable")
If strSetting = 1 Then 
NoProxy
Else Proxy
End If

'Subroutine to Toggle Proxy Setting to ON
Sub Proxy 
WSHShell.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD"
End Sub

'Subroutine to Toggle Proxy Setting to OFF
Sub NoProxy 
WSHShell.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 0, "REG_DWORD"
End Sub
10
BOB

Internet Explorer et Google chrome partage les mêmes paramètres de proxy. Donc, si nous modifions les paramètres dans Internet Explorer, cela affecte également Google Chrome. Nous pouvons modifier les paramètres de proxy à partir de CMD (invite de ligne de commande).

Désactiver le paramètre proxy:

@ECHO OFF

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f

Activer le paramètre proxy:

@ECHO OFF

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d address:portNumber /f

address: Nouvelle adresse proxy
portNumber: Numéro de port

Enregistrez les commandes dans un fichier de commandes et exécutez-le. Il désactivera/activera le paramètre proxy pour le navigateur.

J'ai trouvé cette réponse sur: http://langbasics.blogspot.in/2012/11/disable-or-enable-proxy-for-internet.html

7
Vikky Jain

Désactiver le proxy

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"/v ProxyEnable/t REG_DWORD/d 0/f

Activer le proxy

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

Définissez le proxy

reg ajouter "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^/v ProxyServer/t REG_SZ/d ProxyServerIP: Port/f

1
EKNATH KULKARNI

Merci la réponse de @Gabriel Staples https://stackoverflow.com/a/44752679/6070417

Faites d'abord les étapes,

mais il y a deux choses à surveiller:

1, comme @afxentios l'a dit dans le commentaire:

Une correction est nécessaire. Ajoutez la ligne: ProxySettings_path = "C:\Users \" + username +> "\ Proxy Settings" sous la ligne username => WSHShell.ExpandEnvironmentStrings ("% USERNAME%") et supprimez le chemin codé en dur.

Étapes de correction

a) Mettez cette ligne à toggle_proxy_on_off.vbs sous la ligne 26:

ProxySettings_path = "C:\Users\" + username + "\Proxy Settings"

b) Supprimez la ligne 18 ProxySettings_path = "C:\Users\Gabriel\Proxy Settings".

2, vous verrez le script mettre à jour le registre, mais cela ne fonctionnera pas tant que vous n'aurez pas ouvert/fermé IE une fois. J'ai donc trouvé la réponse ici: https: // stackoverflow.com/a/39079005/6070417

Étapes de correction

a) Copiez le coup de script et enregistrez-le dans Refresh-System.ps1

function Refresh-System
{
  $signature = @'
[DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
'@

$INTERNET_OPTION_SETTINGS_CHANGED   = 39
$INTERNET_OPTION_REFRESH            = 37
$type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru
$a = $type::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
$b = $type::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0)
return $a -and $b
}
Refresh-System

b) Mettez le fichier Refresh-System.ps1 dans "C:\Users\YOUR_USERNAME\Proxy Settings"

c) Ajoutez cette ligne à toggle_proxy_on_off.vbs sous "End If" (à propos de la ligne 35)

WSHShell.run("powershell -windowstyle hidden -file """ + ProxySettings_path + "\Refresh-System.ps1""")

Le script fonctionnera sans IE.

.

Mais maintenant, lorsque le script vbs appelle le script powershell, la fenêtre powershell apparaîtra un court instant.

Qui sait comment configurer la fenêtre PowerShell pour qu'elle ne s'affiche jamais? veuillez ajouter un commentaire.

0
YOUNG