Jak uruchomić program podczas łączenia się z określoną siecią w systemie Windows 7

19

Chcę uruchamiać plik wykonywalny za każdym razem, gdy łączę się z moją siecią bezprzewodową w domu. Celem jest zsynchronizowanie folderu na moim laptopie z komputerem stacjonarnym.

Czy istnieje jakiś sposób uruchomienia programu lub skryptu po dołączeniu do sieci bezprzewodowej?

Korzystam z systemu Windows 7 i chętnie skorzystam z programu, który zajmuje się tego rodzaju zadaniami.

Lucas Wilson-Richter
źródło

Odpowiedzi:

16

Miałem dokładnie to pytanie i odpowiedź Darrena była na dobrej drodze, ale nie doprowadziła mnie do końca. Oto co skończyłem.

Najpierw określ, które zdarzenie chcesz użyć do uruchomienia zadania. Uruchom program Podgląd zdarzeń i przejdź do: Applications and Services Logs > Microsoft > Windows > WLAN-AutoConfig > Operational

W moim przypadku nie chciałem, aby moje zadanie zostało uruchomione, dopóki nie będę faktycznie podłączony do określonej sieci Wi-Fi, więc potrzebowałem identyfikatora zdarzenia 8001. Szybkim sposobem utworzenia zadania na podstawie tego wydarzenia jest kliknięcie wydarzenia prawym przyciskiem myszy i wybranie „Załącz zadanie do tego wydarzenia ...”

oto zrzut ekranu

W oknie, które się pojawi, nazwij swoje zadanie czymś sprytnym i dodaj opis, aby zapamiętać, co to będzie później. Przejdź przez kreatora, wybierając program, który chcesz uruchomić itp., A gdy dojdzie do ostatniego ekranu, zaznacz pole „Otwórz okno dialogowe Właściwości dla tego zadania po kliknięciu przycisku Zakończ”.

W tym momencie zadanie zostanie uruchomione, gdy komputer pomyślnie połączy się z dowolną siecią bezprzewodową. Aby ograniczyć go do jednej konkretnej sieci, musisz zmodyfikować zadanie, aby filtrować w poszukiwaniu czegoś unikalnego w metadanych, np. SSID sieci. W oknie dialogowym właściwości nowego zadania przejdź do karty Wyzwalacze i edytuj wyzwalacz.

Teraz zanotuj wartości dla wyzwalacza podstawowego. Przejdziesz na niestandardowy wyzwalacz, a kiedy to zrobisz, zacznie on być pusty i będziesz musiał ponownie wpisać wartości. Po kliknięciu „Nowy filtr zdarzeń ...” ponownie utwórz filtr podstawowy, wybierając niezbędny dziennik zdarzeń, źródło zdarzeń i wprowadzając identyfikator zdarzenia.

Pamiętaj, że nie ma miejsca na określenie metadanych z określonego zdarzenia (np. SSID sieci bezprzewodowej). Aby to się stało, musisz edytować nieprzetworzony kod XML, co odkryłem w tym artykule .

Aby dowiedzieć się, które metadane należy filtrować w dzienniku zdarzeń, wróć do Podglądu zdarzeń i kliknij kartę Szczegóły zdarzenia. Przejdź do widoku XML. W tym konkretnym przypadku odpowiedni bit wygląda mniej więcej tak:

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

Wróć do okna dialogowego Nowy filtr zdarzeń, przejdź do karty XML i zaznacz pole obok opcji „Edytuj zapytanie ręcznie”.

Odwołując się do artykułu, do którego prowadzi link powyżej, zobaczysz, że ciąg, który musisz dodać, będzie wyglądał mniej więcej tak:

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

Wklej to tuż przed </Select>

Bum. Jesteś skończony.


Tylko uwaga, która może to ułatwić, zamiast edytowania XML dla wyzwalacza, możesz przejść do karty Warunki podczas wywoływania właściwości dla zadania. Tutaj dostępna jest opcja „Uruchom tylko, jeśli dostępne jest następujące połączenie sieciowe:” i zawiera rozwijaną listę sieci, z którymi wcześniej się łączyłeś. Podejrzewam, że to również odpowiednio odfiltruje wyzwalacz. Justin

Corey McKrill
źródło
W systemie Windows 7 nie udało mi się sprawić, by wyzwalacz działał poprawnie z menu rozwijanym „Uruchom tylko, jeśli [..]”, ale z wyzwalaczem niestandardowym i kodem XML, o którym wspominałeś, że działa. Podczas korzystania z menu rozwijanego (które nie wyświetlało wymaganego identyfikatora SSID) zawsze zatrzymywałem się z powodu tego stanu.
joweiser
„Połączenie sieciowe jest dostępne” nie oznacza, że ​​klient łączy się lub jest podłączony do określonego połączenia sieciowego, zgodnie z żądaniem OP.
Gaia,
6

Możesz do tego użyć Harmonogramu zadań systemu Windows 7.

W zakładce Triggers rozpocznij zadanie On an event

Nie uruchamiam systemu Windows 7 na laptopie, ale wierzę, że identyfikator zdarzenia można znaleźć w Microsoft-Windows-WLAN-AutoConfig.

W zakładce Warunki Start Only if the following network connection is available, i określ żądaną sieć bezprzewodową.

Następnie wywołaj program w obszarze Działania.

Darren Hall
źródło
„Połączenie sieciowe jest dostępne” nie oznacza, że ​​klient łączy się lub jest podłączony do określonego połączenia sieciowego, zgodnie z żądaniem OP.
Gaia,