web-dev-qa-db-fra.com

Comment lancer une commande sur connexion / déconnexion réseau?

J'ai une connexion wifi qui nécessite une authentification à l'aide d'un formulaire Web une fois que la liaison sans fil est établie. Je sais comment automatiser l'authentification avec un script qui utilise curl/ curlI .

Mais comment puis-je demander à Windows d'appeler mon script chaque fois que je me connecte à une connexion réseau particulière?

Je souhaiterais également recevoir le nom du profil sans fil ou l'ESSID sur la ligne de commande de mon script.

58
dolmen

Dans Windows Vista et les versions ultérieures, vous pouvez utiliser une tâche planifiée avec un déclencheur de journal des événements. Le premier événement sera déclenché par la connexion au réseau et vous indiquerez le réseau auquel vous devez être connecté pour pouvoir être exécuté. Le deuxième événement sera déclenché lors de la déconnexion d'un réseau. Chaque événement exécutera une tâche spécifique que vous spécifiez. les scripts que vous avez mentionnés ont probablement été écrits.

Définition d'un événement pour votre connexion au réseau:

  1. Ouvrez le planificateur de tâches. Vous pouvez le trouver en tapant Task Scheduler dans la zone de recherche du menu Démarrer ou sous Programs | Accessories | System Tools.
  2. Dans la bibliothèque du Planificateur de tâches, créez une nouvelle tâche en cliquant sur Create Task dans le panneau Actions situé à droite.

    add task

  3. Attribuez à la tâche un nom du type "détecter le réseau" ou ce que vous choisissez

  4. Dans l'onglet Triggers, cliquez sur New... et sélectionnez On an Event dans la liste déroulante.

    dropdown trigger

  5. Choisissez les paramètres suivants:

    • Journal: Microsoft-Windows-NetworkProfile/Operational
    • Source: NetworkProfile
    • ID d'événement: 10000
  6. Cliquez sur OK, puis accédez à l'onglet Conditions.
  7. Cochez la case Start only if the following network connection is available et choisissez le réseau avec lequel vous voulez exécuter le script
  8. Sous l'onglet Actions, cliquez sur New... et sélectionnez Start a program. Entrez l'emplacement du fichier de script que vous souhaitez exécuter, puis cliquez sur OK.
  9. Définissez les autres paramètres de tâche que vous souhaitez, puis cliquez sur OK.

Définition d'un événement pour la déconnexion du réseau:

  1. Suivez les étapes 2 à 4 ci-dessus
  2. Utilisez les paramètres de déclenchement d'événement suivants:
    • Journal: Microsoft-Windows-NetworkProfile/Operational
    • Source: NetworkProfile
    • ID d'événement: 10001
  3. Ignorez les étapes 6 et 7, car vous ne serez plus connecté à aucun réseau. Cet événement aura donc lieu à tout moment au moment de votre déconnexion du de tout réseau .
  4. Suivez à nouveau les étapes 8 à 9
78
nhinkle

Il semble que Start only if the following network connection is available soit cassé après la mise à jour anniversaire de Windows 10. Utilisez plutôt ce déclencheur personnalisé:

<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>

Dans les réseaux d'entreprise, utilisez le nom du domaine au lieu du SSID. Dans ce cas, la catégorie de l'événement sera "Domain Authenticated" et non "Private".

9
krrr

Si vous utilisez un Thinkpad, vous pouvez tirer parti de ThinkVantage Access Connection, disponible pour Windows 7, Vista et XP.

ThinkVantage Access Connection est le logiciel de gestion de connexion réseau fourni avec ThinkPad. Si ce n'est pas le cas, il peut être téléchargé à partir de son site de support. Lorsque vous créez un nouveau profil pour votre emplacement, un assistant vous demande si vous souhaitez configurer une liste de programmes à démarrer lorsque cet emplacement est connecté . . Il propose également de supprimer le programme lorsque le réseau est désactivé.

Notez que le logiciel peut être configuré pour fonctionner sans aucun profil d'emplacement, ce qui est peut-être le statut initial. Dans ce cas, il n'y a aucun moyen de configurer une liste de programmes à démarrer lorsque le wifi est connecté: vous devez créer une connexion. profil pour contenir la liste.

Pour ma propre expérience, j’essaie d’éviter d’utiliser le logiciel - il faut beaucoup plus de temps pour se connecter que sans, et parfois, l’établissement d’une nouvelle connexion lors du démarrage (peut être corrigé manuellement).

Le logiciel ne fonctionne qu'avec le pilote WIFI fourni avec le thinkpad.

Par ailleurs, ce logiciel propose d’établir une connexion avant que l’utilisateur ne se connecte, en option lors de la création du profil. Je ne sais pas si c'est possible sans ça.

4
Tankman六四