Пакетный файл для отключения параметров прокси-сервера
В Windows я хочу отключить настройку прокси-сервера в окне " Свойства обозревателя" с помощью пакетного сценария. Какую команду я могу использовать для этого?
Если вы не уверены, что я имею в виду, см.
Internet Properties > Connections > LAN Settings >Proxy Server
Спасибо
8 ответов
Он находится в реестре в разделе [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
Вы можете использовать REG
командуйте в своей НИМ или подготовьте пару .REG
файлы, чтобы автоматизировать изменения.
например, чтобы отключить прокси, попробуйте
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
Вот способ использования простого скрипта.vbs в качестве ярлыка на рабочем столе. При первом запуске сценария щелкните созданный вами файл.vbs. Это автоматически создаст для вас ярлык на рабочем столе с соответствующим значком. Каждый раз, когда вы щелкаете по ярлыку, он переключает настройку прокси, вызывает всплывающее временное окно на 1 секунду, чтобы сообщить вам, включен ли прокси сейчас или выключен, и меняет значок ярлыка на символ ON или OFF, чтобы указать новый прокси. государство.
Файл: "C:\Users\YOUR_USERNAME\ Настройки прокси \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://stackru.com/a/27092872/4561887
' 2) https://stackru.com/a/26708451/4561887
' Timed message boxes:
' - *****https://technet.microsoft.com/en-us/library/ee156593.aspx
' - https://stackru.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
Инструкции:
- Создайте папку с именем "C:\Users\YOUR_USERNAME\Proxy Settings"
- Создайте файл "toggle_proxy_on_off.vbs", как показано выше, в этой папке.
- Создайте папку "Значки" здесь: "C:\Users\YOUR_USERNAME\ Настройки прокси \ Значки"
- Загрузите следующие два.png изображения:
- Изображение значка ON: http://s30.postimg.org/sgoerz0od/image.png
- Изображение значка OFF: http://s13.postimg.org/9zha38zkj/off.png
- Преобразуйте эти изображения в значки (файлы.ico), используя, например, http://icoconvert.com/. Выберите Файл (выберите.png сверху) -> Загрузить -> выберите формат "ICO для Windows 7, Windows 8, Vista и XP" -> нажмите "Преобразовать ICO" -> нажмите "Загрузить значок (и))"
- Сохраните значок ON как "C:\Users\YOUR_USERNAME\ Настройки прокси \Icons\on.ico"
- Сохраните значок OFF как "C:\Users\YOUR_USERNAME\ Настройки прокси \Icons\off.ico"
- Теперь дважды щелкните файл "C:\Users\Gabriel\Proxy Settings\toggle_proxy_on_off.vbs", чтобы запустить его. Он автоматически создаст файл ярлыка "Proxy On-Off" на рабочем столе с соответствующим значком, чтобы указать, включен ли прокси-сервер или выключен.
С этого момента, просто нажмите на ярлык "Proxy On-Off" на рабочем столе, чтобы включить или выключить Proxy.
Вот как это выглядит, когда прокси выключен:
Вот как это выглядит, когда прокси включен:
Вот пример 1-секундного всплывающего окна, которое появляется всякий раз, когда вы щелкаете по значку ярлыка для включения / выключения прокси.
Рекомендации:
- /questions/36235590/paketnyij-fajl-dlya-otklyucheniya-parametrov-proksi-servera/36235598#36235598 <- научил меня, как использовать скрипт.vbs для включения и выключения прокси
- /questions/32687460/vidzhet-rabochego-stola-windows-dlya-vklyucheniya-i-vyiklyucheniya-proksi/32687475#32687475 <- научил меня оригинальной технике, как заставить скрипт.vbs действовать как виджет, создав ярлык Windows и меняя его значок каждый раз, когда вы нажимаете на него
- Приуроченные сообщения:
Сделать:
Может кто-нибудь, пожалуйста, помогите мне разобраться, как усовершенствовать этот шаг еще дальше, заставляя его также каждый раз менять имя значка?- т.е. вместо того, чтобы произносить "Proxy On-Off" на ярлыке, пусть он говорит "Proxy включен" или "Прокси выключен", в соответствии с его текущим состоянием. Я не уверен, как сделать еще один шаг вперед, и сейчас я уделил этому достаточно времени...
Включите и выключите прокси с помощью.vbs
Этот.vbs MS Script Определяет текущую настройку прокси и переключается на противоположную настройку очень удобно, если вы хотите включать и выключать прокси
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 и Google Chrome используют одни и те же настройки прокси. Так что если мы изменим настройку в Internet Explorer, то это также повлияет на Google Chrome. Мы можем изменить настройку прокси из CMD (приглашение командной строки).
Отключить настройку прокси:
@ECHO OFF
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
Включить настройку прокси:
@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
: Новый адрес проксиportNumber
: Номер порта
Сохраните команды в командном файле и выполните его. Это отключит / включит настройку прокси для браузера.
Я нашел этот ответ по адресу: http://langbasics.blogspot.in/2012/11/disable-or-enable-proxy-for-internet.html
Спасибо за ответ от @Gabriel Staples /questions/36235590/paketnyij-fajl-dlya-otklyucheniya-parametrov-proksi-servera/36235594#36235594
Просто делайте сначала шаги,
но следует обратить внимание на две вещи:
1. Как сказал @afxentios в комментарии:
Требуется исправление. Добавьте строку: ProxySettings_path = "C:\Users\" + имя пользователя + >"\Proxy Settings" под строкой username = >WSHShell.ExpandEnvironmentStrings("%USERNAME%") и удалите жестко заданный путь.
Исправить шаги
a) Поместите эту строку в toggle_proxy_on_off.vbs под строкой 26:
ProxySettings_path = "C:\Users\" + username + "\Proxy Settings"
б) Удалите строку 18 ProxySettings_path = "C:\Users\Gabriel\Proxy Settings".
2, вы увидите, что сценарий действительно обновляет реестр, но он не будет работать, пока вы не откроете / не закроете IE один раз. Итак, я нашел здесь ответ: /questions/3326779/ie-vklyuchit-otklyuchit-nastrojki-proksi-cherez-reestr/3326791#3326791
Исправить шаги
а) Скопируйте сценарий продувки и сохраните в 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
б) Поместите файл Refresh-System.ps1 в "C: \ Users \ ИМЯ_ПОЛЬЗОВАТЕЛЯ \ Настройки прокси".
c) Добавьте эту строку в toggle_proxy_on_off.vbs в разделе "End If"(примерно строка 35)
WSHShell.run("powershell -windowstyle hidden -file """ + ProxySettings_path + "\Refresh-System.ps1""")
Скрипт будет работать без IE.
.
Но теперь, когда сценарий vbs вызывает сценарий PowerShell, на короткое время появляется окно PowerShell.
Кто знает, как настроить никогда не показывать окно PowerShell? пожалуйста, добавьте комментарий.
Отключить прокси
REG ДОБАВИТЬ "HKCU\ Программное обеспечение \Microsoft\Windows\CurrentVersion\ Настройки Интернета" /v ProxyEnable /t REG_DWORD /d 0 /f
Включить прокси
рег добавьте "HKCU\ Программное обеспечение \Microsoft\Windows\CurrentVersion\ Настройки Интернета" ^ /v ProxyEnable /t REG_DWORD /d 1 /f
Установите прокси
reg добавить "HKCU\ Программное обеспечение \Microsoft\Windows\CurrentVersion\ Настройки Интернета" ^ /v ProxyServer /t REG_SZ /d ProxyServerIP: Порт / f
Я написал сценарий с параметрами "включить / отключить прокси", который запускается от имени администратора. вам просто нужно скопировать его в файл.bat:
@echo off
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
@echo off
Setlocal EnableDelayedExpansion
:MAIN_M
ECHO
ECHO
ECHO 0. QUIT
ECHO 1. ENABLE PROXY 10.10.10.10:8181
ECHO 2. DISABLE PROXY
set /p choice=CHOISE....
if ´%choice%´==´0´ goto EXIT_M
if ´%choice%´==´1´ goto ENABLE_PROXY
if ´%choice%´==´2´ goto DISABLE_PROXY
:EXIT_M
exit
:DISABLE_PROXY
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
goto MAIN_M
:ENABLE_PROXY
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 10.10.10.10:8181 /f
goto MAIN_M
Попробуйте отключить прокси:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings" /v ProxyEnable /t REG_DWORD /d 0 /f
start /w /b iexplore.exe
taskkill /f /im iexplore.exe
Это единственное, что мне помогло (Windows 7). Подробнее см. Здесь .