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
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
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
À 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é:
Voici à quoi cela ressemble lorsque le proxy est activé:
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.
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 ...
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
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 proxyportNumber
: 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
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
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.