0

EDIT: найдено исправление без использования планировщика заданий.Автоматически подключаться к сети Wi-Fi, если интернет не обнаружен

@echo off 
:loop 
set addresses=192.168.1.1 
for %%a in (%addresses%) do ping %%a -n 1 > nul || netsh wlan add profile filename=C:\User\path\to\wireless\xml\profile.xml user=all 
timeout /t 5 
goto :loop 

это повторяется каждые 5 секунд


Я на полпути, но застревают. У меня уже есть пакетный файл, который может подключить ноутбук к сети при ручном запуске, но хотел, чтобы он запускался, когда интернет не был обнаружен. Поэтому я пошел вперед и привязал его к планировщику заданий, а триггер был «Microsoft-Windows-NetworkProfile/Operational» с идентификатором 10001 (который является идентификатором разъединения), но ему не повезло.

Я считаю, что это срабатывает только тогда, когда он вручную отключается от Интернета, а не когда беспроводная карта передает сигнал на свой собственный. Любые идеи относительно того, что я могу сделать?

ОС: Windows 8.1

Беспроводной интерфейс: Кабель Matters AC600 двухдиапазонный беспроводной адаптер (не позволяет Auto Connect к SSID и сохраняет разорвав соединение по неизвестным причинам)

+0

Пожалуйста, удалите свой рабочий код из вопроса и опубликуйте его как ответ. Затем примите ответ, чтобы показать, что проблема решена. – Stephan

ответ

1

Найденное решение!

@echo off 
:loop 
set addresses=192.168.1.1 
for %%a in (%addresses%) do ping %%a -n 1 > nul || netsh wlan add profile filename=C:\User\path\to\wireless\xml\profile.xml user=all 
timeout /t 5 
goto :loop 

Что это делает пинг адрес один раз (в этом случае внутренний адрес, так что я не получаю DDoS угроз с сайтов), и если она отвечает обратно с ошибкой, он будет загрузить профиль Wi-Fi. Чтобы получить профиль сначала вам нужно будет ввести

netsh wlan show profiles 

, чтобы посмотреть, что у вас есть профили (он загружает только профили для беспроводной карты в настоящее время используется). После просмотра названия профилей, которые можно загрузить профиль, набрав

netsh wlan export profile name=[profile name] 

Я считаю, что это позволит сэкономить на рабочий стол, а оттуда вы можете изменить код, указанный в верхней части этого комментария, чтобы соответствовать FilePath из xml-файл в соответствии с вашими потребностями.

Cheers!

0

Что о пакетном сценарии, который регулярно выполняет пинги, и вы проверяете результат?

ping some.host > pinged.txt 
find "some string which occurs if the network went down" pinged.txt 

Если% errorlevel% равно 0, чем была найдена строка, и соединение опустилось.