Войти

Показать полную графическую версию : Отключение ethernet при подключении к WiFi и изменение proxy


Duke30
04-10-2017, 20:51
Добрый день! Прошу помощи. Неделю не могу справиться. Надо написать батник который будет запускаться по событию в планировщике. Суть такова, при подключении к WiFi, локальное соединение должно отключиться и выключиться proxy который прописан в винде. При отключении от WiFi, включается локальное соединение и proxy. Либо вместо отключения локального соединения пустить трафик через Wi-Fi и выключить proxy. Windows 7 x64. На 10 вроде можно приоритет выставлять, а тут такого не нашёл.

alpap
05-10-2017, 00:44
Беспроводная сеть: Настроить-Дополнительно-Свойства-Отключить после установления проводной связи=Включить
Если в биосе включено LAN/WLAN switching, то вообще автоматом должно происходить

Duke30
05-10-2017, 10:44
alpap, Так надо наоборот) при подключении к WiFi, локальное соединение должно отключиться и выключиться proxy который прописан в винде. На рабочем компе интернет раздается через локалку и proxy. Когда подключаюсь к смартфону на котором открыта точка доступа, локалка
и proxy должны отключиться, а после отключения от точки вернуть все обратно.

alpap
05-10-2017, 14:53
если а настройках драйвера wifi нет ничего подходящего, то некоторым помогло, если убрать шлюз локалки

Duke30
05-10-2017, 15:12
alpap, Если честно я не совсем понимаю почему Вы предлагаете копать настройки WIFI. Шлюз локалки не прописан (не понимаю как он должен повлиять). Попробую описать алгоритм необходимый:
1. Подключились к Wifi
2. Локальное соединение разорвалось (выключить адаптер или просто разорвать соединение)
3. Отключилась настройка "использовать прокси"

Дальше когда Wifi отключается, снова включается локальная сеть и прописывается прокси который был.

На работе используют прокси который блокирует необходимые ресурсы,поэтому часто нужно использовать мобильный интернет через смартфон с точкой доступа. Но приходиться вручную убирать прокси и выключать локалку, что бы трафик шел через точку доступа. Извините, если в начале не достаточно понятно объяснил что требуется.

Я предполагаю что можно реализовать через планировщик, если знать какой event отвечает за подключение к wifi. При этом событии запускается батник, который отключает адаптер (возможно через devcon) и отключает прокси. А при отключении от wifi запускается второй батник который включает адаптер локалки и прописывает прокси.

alpap
06-10-2017, 00:30
предлагаете на основе

netsh interface show interface

отключать или подключать

netsh interface set interface name="Имя адаптера" admin=DISABLED
netsh interface set interface name="Имя адаптера" admin=ENABLED


но что-то незаметно чтобы кто-то шел таким путем, видимо есть проблемы

к примеру, вот реальное состояние и отсюда можно делать нужные условия:

@echo off
for /f "delims=" %%p in ('"wmic path Win32_NetworkAdapter get NetConnectionID, NetConnectionStatus, NetEnabled /value|find "^=""') do (
for /f "delims=" %%a in ("%%p") do set "%%a"
call :N "%%NetConnectionID%%" "%%NetConnectionStatus%%" "%%NetEnabled%%"
)
pause& exit

:N
if "%~1" neq "" if "%~3" neq "" echo %~1[%~2]=%~3
exit /b

Duke30
06-10-2017, 11:04
alpap, Пошел таким путем
netsh interface set interface name="LOCAL" admin=DISABLED
Reg Add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /V ProxyEnable /T REG_DWORD /D 0 /F
inetcpl.cpl,4
timeout 1 /nobreak
Nircmdc sendkeypress y
timeout 1 /nobreak
Nircmdc sendkeypress enter
timeout 1 /nobreak
Nircmdc sendkeypress esc

Основная проблема заключается в применении настроек прокси, обновление политик не работает при отключенном laN поэтому пришлось делать костыль в виде
inetcpl.cpl,4
timeout 1 /nobreak
Nircmdc sendkeypress y
timeout 1 /nobreak
Nircmdc sendkeypress enter
timeout 1 /nobreak
Nircmdc sendkeypress esc

Два батника написал. Теперь осталось как-то запускать их автоматически при подключении и отключении от Wifi. В журнале нашел события wifi адаптера (в аттаче фото), но там есть только connect, disconect нет. Вот и не знаю, как дальше быть

alpap
06-10-2017, 17:37
автоматически при подключении и отключении от Wifi »
выше показывал как можно с помощью wmic

wmic path Win32_networkadapter where NetConnectionID='Имя адаптера' get NetConnectionStatus /value|>nul find "2" && (echo Подключено) || (echo Не подключено)

FunnnyFly
21-04-2021, 10:30
на работе такая-же проблема, не пускает на многие сайты так-как подключение идет через прокси
излазил кучу форумов, толком не нашел ничего. Сам в этом деле дубовый орешек. поэтому расписываю все максимально для не понимающих :D

Если еще актуально то вот:

set REGDIR="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
ping vk.com -n 1 -w 1
if "%errorlevel%"=="0" ( REG ADD %REGDIR% /v ProxyEnable /t REG_DWORD /d 1 /f
netsh interface set interface name="Ethernet" admin=ENABLED
netsh interface set interface name="Беспроводная сеть" admin=DISABLED
) else ( REG ADD %REGDIR% /v ProxyEnable /t REG_DWORD /d 0 /f
netsh interface set interface name="Ethernet" admin=DISABLED
netsh interface set interface name="Беспроводная сеть" admin=ENABLED
REG ADD %REGDIR% /v ProxyEnable /t REG_DWORD /d 0 /f
)


мой прокси сервер не пингует vk.com, вы можете указать другой сайт который не будет пинговать ваш.
также в этой строке
netsh interface set interface name="Беспроводная сеть" admin=DISABLED
указать вместо "Беспроводная сеть" ваше имя адаптера, которое вы можете посмотреть
введя в CMD команду:

netsh interface show interface

если у вас также написано русским языком, то вам надо поставить кодировку OEM 866
как это сделать: я работаю через редактор txt файлов - нотепад++, поэтому могу только сказать как делать в данной программе.

1.открываем файл через нотепад++
2.вверхней строке нажимаем "Кодировки" - "кодировки >" - "кириллица" - OEM 866

готово! 1 фаил - 2 возможности! вы восхитительны!

моя ОС: Windows 10 Home Single Language x64 (2009 build 19042)




© OSzone.net 2001-2012