Comment exécuter un programme lors de la connexion à un réseau spécifique dans Windows 7

19

Je veux faire exécuter un exécutable chaque fois que je me connecte à mon réseau sans fil à la maison. Le but est de synchroniser un dossier sur mon ordinateur portable avec ma machine de bureau.

Existe-t-il un moyen d'exécuter un programme ou un script lorsque vous rejoignez un réseau sans fil?

J'utilise Windows 7 et je serais également heureux d'utiliser un programme qui prend en charge ce type de tâche.

Lucas Wilson-Richter
la source

Réponses:

16

J'avais cette question exacte, et la réponse de Darren était sur la bonne voie, mais ne m'a pas conduit jusque-là. Voici ce que j'ai fini par faire.

Déterminez d'abord quel événement vous souhaitez utiliser pour déclencher la tâche. Exécutez le programme Observateur d'événements et accédez à: Applications and Services Logs > Microsoft > Windows > WLAN-AutoConfig > Operational

Dans mon cas, je ne voulais pas que ma tâche s'exécute jusqu'à ce que je sois réellement connecté à un réseau WiFi spécifique, donc l'ID d'événement dont j'avais besoin était 8001. Le moyen rapide de créer une tâche basée sur cet événement est de cliquer avec le bouton droit sur l'événement et de sélectionner "Attacher la tâche à cet événement ..."

voici une capture d'écran

Dans la fenêtre qui apparaît, nommez votre tâche quelque chose d'intelligent et ajoutez une description afin que vous vous souveniez de ce que c'est plus tard. Parcourez l'assistant, sélectionnez le programme que vous souhaitez exécuter, etc., et quand il arrive au dernier écran, cochez la case "Ouvrir la boîte de dialogue Propriétés pour cette tâche lorsque je clique sur Terminer".

À ce stade, la tâche s'exécutera lorsque l'ordinateur se connectera avec succès à un réseau sans fil. Pour le limiter à un réseau particulier, vous devrez modifier la tâche pour filtrer quelque chose d'unique dans les métadonnées, comme le SSID du réseau. Dans la boîte de dialogue des propriétés de la nouvelle tâche, accédez à l'onglet Déclencheurs et modifiez le déclencheur.

Maintenant, notez les valeurs du déclencheur de base. Vous allez passer à un déclencheur personnalisé, et lorsque vous le ferez, il commencera à être vide et vous devrez saisir à nouveau les valeurs. Après avoir cliqué sur "Nouveau filtre d'événements ..." recréez le filtre de base en sélectionnant le journal des événements, la source d'événements et en saisissant l'ID d'événement.

Notez qu'il n'y a pas de place pour spécifier les métadonnées d'un événement particulier (comme le SSID du réseau sans fil). Vous devrez modifier le XML brut pour y arriver, comme je l'ai découvert dans cet article .

Pour déterminer quelles métadonnées vous devez filtrer dans le journal des événements, revenez à l'Observateur d'événements et cliquez sur l'onglet Détails de l'événement. Basculez vers la vue XML. Pour ce cas particulier, le bit correspondant ressemble à ceci:

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

De retour dans la boîte de dialogue Nouveau filtre d'événements, basculez vers l'onglet XML et cochez la case en regard de "Modifier la requête manuellement".

En vous référant à l'article lié ci-dessus, vous verrez que la chaîne que vous devez ajouter ressemblera à ceci:

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

Collez-le juste avant </Select>

Boom. Vous avez terminé.


Juste une note qui pourrait rendre cela plus facile, plutôt que de modifier le XML du déclencheur, vous pouvez basculer vers l'onglet Conditions lors de l'affichage des propriétés de la tâche. Ici, il existe une option pour «Démarrer uniquement si la connexion réseau suivante est disponible:» et fournit une liste déroulante des réseaux auxquels vous vous êtes déjà connecté. Je soupçonne que cela filtrerait également le déclencheur de manière appropriée. Justin

Corey McKrill
la source
Avec Windows 7, je n'ai pas réussi à faire fonctionner correctement le déclencheur avec la liste déroulante "Démarrer uniquement si [..]" mais avec le déclencheur personnalisé et le XML que vous avez mentionné, cela fonctionnait. Lorsque j'utilisais le menu déroulant (qui ne montrait pas le SSID dont j'avais besoin), je m'arrêtais toujours à cause de cette condition.
joweiser
"La connexion réseau étant disponible" ne signifie pas que le client se connecte ou est connecté à une connexion réseau déterminée, conformément à la demande OP.
Gaia
6

Vous pouvez utiliser le Planificateur de tâches de Windows 7 pour cela.

Sous l'onglet Déclencheurs, commencez la tâche On an event

Je n'exécute pas Windows 7 sur un ordinateur portable, mais je pense que l'ID d'événement se trouve dans Microsoft-Windows-WLAN-AutoConfig.

Sous l'onglet Conditions Start Only if the following network connection is available, et spécifiez le réseau sans fil souhaité.

Appelez ensuite le programme sous Actions.

Darren Hall
la source
"La connexion réseau étant disponible" ne signifie pas que le client se connecte ou est connecté à une connexion réseau déterminée, conformément à la demande OP.
Gaia