Как запустить команду на сетевое подключение / отключение?


59

У меня есть Wi-Fi-соединение, которое требует аутентификации с помощью веб-формы после установления беспроводной связи. Я знаю, как автоматизировать аутентификацию с помощью скрипта, который использует curl/ curlIE .

Но как я могу попросить Windows вызывать мой скрипт каждый раз, когда я подключаюсь к определенному сетевому соединению?

Мне также было бы интересно получить имя беспроводного профиля или ESSID в командной строке моего скрипта.


1
Вероятно, бесполезно, но я нашел это через поиск в Google. Он явно перечисляет ваши соединения и может предоставить что-то, что вы можете запросить с помощью скрипта, чтобы определить, когда адаптер подключается / отключается. msdn.microsoft.com/en-us/library/ms739931%28v=VS.85%29.aspx
CreeDorofl

Я не хочу проверять состояние каждые несколько секунд. Уведомления о сетевом расположении интересны, но я не вижу простого способа использовать их только с помощью сценариев.
дольмен

Дольмен - есть ли способ опубликовать сценарий, который вы написали для аутентификации тоже. этот вопрос был бы намного более полным с этим в этом.
квест49

@ quest49 Я понимаю, что мой сценарий может вас заинтересовать, но это не имеет отношения к вопросу.
дольмен

Вы когда-нибудь получали ответ на этот вопрос, который удовлетворил ваш вопрос?
Менашех

Ответы:


80

В Windows Vista и более поздних версиях это можно сделать с помощью запланированной задачи с триггером журнала событий. Первое событие будет вызвано подключением к сети, и вы укажете, к какой сети вы должны подключиться, чтобы он работал. Второе событие будет запущено при отключении от любой сети. Каждое событие будет запускать определенную задачу, которую вы укажете; скорее всего, сценарии, которые вы упомянули написав.

Настройка события при подключении к сети:

  1. Откройте планировщик задач. Вы можете найти его, введя Task Schedulerв поле поиска меню «Пуск» или под Programs | Accessories | System Tools.
  2. В библиотеке планировщика заданий создайте новое задание, щелкнув Create Taskпанель «Действия» с правой стороны.

    добавить задачу

  3. Дайте заданию имя типа «обнаружение сетевого подключения» или что-то другое.

  4. На Triggersвкладке нажмите New...и выберите On an Eventиз выпадающего списка.

    выпадающий триггер

  5. Выберите следующие настройки:

    • Журнал: Microsoft-Windows-NetworkProfile/Operational
    • Источник: NetworkProfile
    • Идентификатор события: 10000
  6. Нажмите OK, затем перейдите на Conditionsвкладку.
  7. Установите флажок Start only if the following network connection is availableи выберите сеть, с которой вы хотите запустить скрипт
  8. Под Actionsвкладкой нажмите New...и выберите Start a program. Введите местоположение файла скрипта, который вы хотите запустить, затем нажмите OK.
  9. Установите любые другие параметры задачи, которые вы хотите, затем нажмите OK.

Установка события, когда вы отключаетесь от сети:

  1. Выполните шаги 2-4 выше
  2. Используйте следующие настройки триггера событий:
    • Журнал: Microsoft-Windows-NetworkProfile/Operational
    • Источник: NetworkProfile
    • Идентификатор события: 10001
  3. Пропустите шаги 6-7, так как вы больше не будете подключены ни к одной сети. Таким образом , это событие будет работать любое время отключения от любой сети.
  4. Выполните шаги 8-9 снова

1
Большой! Спасибо за подробный ответ! Это намного больше, чем я ожидал. Я обнаружил, что могу даже использовать условие для имени сетевого подключения, поэтому могу выполнять команду только для определенного профиля WLAN.
дольмен

Где вы взяли значения из того, что вы указали в шаге 5? Можно обработать их методом проб и ошибок в журнале событий, но мне интересно, есть ли лучший способ идентифицировать конкретное событие, например, с помощью некоторой документации.
Адам Миллерчип

1
@AdamMillerchip Я просто открыл окно просмотра событий, отключил / снова подключился, а затем осмотрелся.
nhinkle

1
Странно, я пробовал это и ничего ...
Менелаос Бакопулос

1
Для записи я должен был указать в качестве «источника» Microsoft-Windows-NetworkProfile(W10 1709)
Joril

11

Похоже, что Start only if the following network connection is availableсломался после Windows 10 юбилейное обновление. Используйте этот пользовательский триггер вместо:

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="Microsoft-Windows-NetworkProfile/Operational">
     *[System[(EventID=10000)]] and *[EventData[(Data[@Name="Name"]="YOUR-SSID-HERE")]]
    </Select>
  </Query>
</QueryList>

В корпоративных сетях вместо имени SSID используется имя домена. В этом случае категория события будет «Домен Аутентифицирован», а не «Частный».


Start only if the following network connection is availableкажется сломанным действительно. Если установить эту опцию и выполнить задачу по требованию я получаю эту ошибку: Task Scheduler Service is not available. Task scheduler will attempt to reconnect to it.
Федерико Дестефанис,

Эта ошибка все еще существует в Windows 10 1803 или более поздней версии?
кррр

4

Если вы используете Thinkpad, вы можете воспользоваться преимуществами ThinkVantage Access Connection, доступными для Windows 7, Vista и XP.

ThinkVantage Access Connection - это программное обеспечение для управления сетевыми соединениями, поставляемое с ThinkPad, в противном случае его можно загрузить с их сайта поддержки. Когда вы создаете новый профиль для своего местоположения, есть мастер, который спрашивает, хотите ли вы настроить список программ для запуска, когда это местоположение подключено. Он также предлагает убить программу, когда сеть отсутствует.

Обратите внимание, что программное обеспечение может быть настроено на работу без какого-либо профиля местоположения вообще, и это, возможно, начальный статус - в этом случае нет способа настроить список программ для запуска при подключении Wi-Fi: вам необходимо создать соединение профиль, чтобы содержать список.

Исходя из собственного опыта, я стараюсь избегать использования программного обеспечения - для подключения требуется гораздо больше времени, чем без него, а иногда не удается установить новое соединение при загрузке (это можно исправить путем повторного подключения вручную).

Программное обеспечение работает только с драйвером WIFI, поставляемым с ThinkPad.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.