Как запустить программу при подключении к определенной сети в Windows 7

19

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

Есть ли способ запустить программу или скрипт при подключении к беспроводной сети?

Я использую Windows 7, и я также буду рад использовать программу, которая решает эту задачу.

Лукас Уилсон-Рихтер
источник

Ответы:

16

У меня был именно этот вопрос, и ответ Даррена был на правильном пути, но не помог мне полностью. Вот что я в итоге сделал.

Сначала определите, какое событие вы хотите использовать для запуска задачи. Запустите программу просмотра событий и перейдите к: Applications and Services Logs > Microsoft > Windows > WLAN-AutoConfig > Operational

В моем случае я не хотел, чтобы моя задача выполнялась до тех пор, пока я фактически не подключился к определенной сети Wi-Fi, поэтому мне понадобился идентификатор события 8001. Быстрый способ создать задачу на основе этого события - щелкнуть правой кнопкой мыши событие и выбрать «Прикрепить задачу к этому событию ...»

вот скриншот

В появившемся окне назовите вашу задачу как-нибудь умно и добавьте описание, чтобы вы запомнили, что это позже. Пройдите по мастеру, выберите программу, которую вы хотите запустить, и т. Д., И когда она перейдет к последнему экрану, установите флажок «Открыть диалоговое окно Свойства для этой задачи, когда я нажму кнопку Готово».

На этом этапе задача будет запущена, когда компьютер успешно подключится к любой беспроводной сети. Чтобы ограничить его одной конкретной сетью, вам придется изменить задачу, чтобы отфильтровать что-то уникальное в метаданных, например SSID сети. В диалоговом окне свойств новой задачи перейдите на вкладку «Триггеры» и отредактируйте триггер.

Теперь запишите значения для основного триггера. Вы собираетесь переключиться на пользовательский триггер, и когда вы это сделаете, он станет пустым, и вам нужно будет снова ввести значения. После нажатия «Новый фильтр событий ...» заново создайте базовый фильтр, выбрав необходимый журнал событий, источник событий и введя идентификатор события.

Обратите внимание, что нет места для указания метаданных определенного события (например, SSID беспроводной сети). Вы должны будете отредактировать необработанный XML, чтобы это произошло, как я обнаружил в этой статье .

Чтобы выяснить, какие метаданные необходимо отфильтровать в журнале событий, вернитесь в средство просмотра событий и перейдите на вкладку «Сведения» для события. Переключитесь на представление XML. Для этого конкретного случая соответствующий бит выглядит примерно так:

<EventData>
  ...
  <Data Name="SSID">Your WiFi Network</Data>
  ...
</EventData>

Вернитесь в диалоговое окно «Фильтр новых событий», перейдите на вкладку XML и установите флажок «Редактировать запрос вручную».

Возвращаясь к статье, указанной выше, вы увидите, что строка, которую нужно добавить, будет выглядеть примерно так:

and *[EventData[Data[@Name='SSID']='Your WiFi Network']]

Вставьте это прямо перед </Select>

Boom. Вы сделали


Просто примечание, которое может сделать это проще, вместо того, чтобы редактировать XML для триггера, вы можете переключиться на вкладку Условия при вызове свойств для задачи. Здесь есть опция «Пуск только в том случае, если доступно следующее сетевое соединение:», и предоставляет раскрывающийся список сетей, к которым вы ранее подключались. Я подозреваю, что это также соответствующим образом отфильтрует триггер. Джастин

Кори МакКрилл
источник
В Windows 7 мне не удалось правильно запустить триггер с раскрывающимся списком «Пуск только в том случае, если [..]», но с пользовательским триггером и XML, который вы упомянули, он работал. При использовании выпадающего меню (в котором не отображался нужный мне SSID) я всегда останавливался из-за этого условия.
joweiser
«Доступность сетевого подключения» не означает, что клиент подключается или подключен к определенному сетевому подключению в соответствии с запросом OP.
Гея
6

Для этого вы можете использовать планировщик заданий Windows 7.

На вкладке «Триггеры» начните задачу On an event

Я не запускаю Windows 7 на ноутбуке, но считаю, что идентификатор события можно найти в Microsoft-Windows-WLAN-AutoConfig.

На вкладке Условия Start Only if the following network connection is availableи укажите нужную беспроводную сеть.

Затем вызовите программу в разделе Действия.

Даррен Холл
источник
«Доступность сетевого подключения» не означает, что клиент подключается или подключен к определенному сетевому подключению в соответствии с запросом OP.
Гея