Пакетный файл для отключения параметров прокси-сервера

В 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 

Инструкции:

  1. Создайте папку с именем "C:\Users\YOUR_USERNAME\Proxy Settings"
  2. Создайте файл "toggle_proxy_on_off.vbs", как показано выше, в этой папке.
  3. Создайте папку "Значки" здесь: "C:\Users\YOUR_USERNAME\ Настройки прокси \ Значки"
  4. Загрузите следующие два.png изображения:
  5. Преобразуйте эти изображения в значки (файлы.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"
  6. Теперь дважды щелкните файл "C:\Users\Gabriel\Proxy Settings\toggle_proxy_on_off.vbs", чтобы запустить его. Он автоматически создаст файл ярлыка "Proxy On-Off" на рабочем столе с соответствующим значком, чтобы указать, включен ли прокси-сервер или выключен.

С этого момента, просто нажмите на ярлык "Proxy On-Off" на рабочем столе, чтобы включить или выключить Proxy.

Вот как это выглядит, когда прокси выключен:

введите описание изображения здесь

Вот как это выглядит, когда прокси включен:

введите описание изображения здесь

Вот пример 1-секундного всплывающего окна, которое появляется всякий раз, когда вы щелкаете по значку ярлыка для включения / выключения прокси.

введите описание изображения здесь

Рекомендации:

  1. /questions/36235590/paketnyij-fajl-dlya-otklyucheniya-parametrov-proksi-servera/36235598#36235598 <- научил меня, как использовать скрипт.vbs для включения и выключения прокси
  2. /questions/32687460/vidzhet-rabochego-stola-windows-dlya-vklyucheniya-i-vyiklyucheniya-proksi/32687475#32687475 <- научил меня оригинальной технике, как заставить скрипт.vbs действовать как виджет, создав ярлык Windows и меняя его значок каждый раз, когда вы нажимаете на него
  3. Приуроченные сообщения:

Сделать:

Может кто-нибудь, пожалуйста, помогите мне разобраться, как усовершенствовать этот шаг еще дальше, заставляя его также каждый раз менять имя значка?- т.е. вместо того, чтобы произносить "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). Подробнее см. Здесь .

Другие вопросы по тегам