62 votes

Comment lancer une commande lors d'une connexion/déconnexion réseau ?

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

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

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

87voto

Christian Points 1102

Dans Windows Vista et les versions ultérieures, vous pouvez le faire en utilisant une tâche planifiée avec un déclencheur de journal d'événements. Le premier événement sera déclenché par la connexion au réseau, et vous spécifierez à quel réseau vous devez être connecté pour qu'il s'exécute. Le deuxième événement sera déclenché lors de la déconnexion de n'importe quel réseau. Chaque événement exécutera une tâche spécifique que vous spécifiez ; probablement les scripts que vous avez mentionné avoir écrit.

Définir un événement pour le moment où vous vous connectez au réseau :

  1. Ouvrez le planificateur de tâches. Vous pouvez le trouver en tapant Task Scheduler dans le champ de recherche du menu de démarrage, 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 sur le côté droit.

    add task

  3. Donnez à la tâche un nom tel que "détecter une connexion réseau" ou tout autre nom de votre choix.

  4. Sur le Triggers cliquez sur New... et sélectionnez On an Event dans le menu déroulant.

    dropdown trigger

  5. Choisissez les paramètres suivants :

    • Journal : Microsoft-Windows-NetworkProfile/Operational
    • Source : NetworkProfile
    • ID de l'événement : 10000
  6. Cliquez sur OK, puis allez dans la section Conditions onglet.

  7. Cochez la case pour Start only if the following network connection is available et choisissez le réseau avec lequel vous voulez exécuter le script.

  8. En vertu de la Actions cliquez sur New... et sélectionnez Start a program . Saisissez l'emplacement du fichier script que vous souhaitez exécuter, puis cliquez sur. OK .

  9. Définissez tout autre paramètre de tâche que vous souhaitez, puis cliquez sur OK .

Définition d'un événement pour le moment où vous vous déconnectez du réseau :

  1. Suivez les étapes 2 à 4 ci-dessus
  2. Utilisez les paramètres de déclenchement d'événements suivants :
    • Journal : Microsoft-Windows-NetworkProfile/Operational
    • Source : NetworkProfile
    • ID de l'événement : 10001
  3. Passez les étapes 6-7, car vous ne serez plus rattaché à aucun réseau. Cet événement se déroulera donc tout lorsque vous vous déconnectez de tout réseau.
  4. Suivez à nouveau les étapes 8-9

16voto

krrr Points 260

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

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

3voto

Tankman六四 Points 409

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

ThinkVantage Access Connection est le logiciel de gestion des connexions réseau livré avec les ThinkPad - sinon, il peut être téléchargé sur le site d'assistance de l'entreprise. Lorsque vous créez un nouveau profil pour votre emplacement, il y a une qui vous demande si vous voulez configurer une liste de programmes à lancer lorsque cet emplacement est connecté. Il propose également d'arrêter le programme lorsque le réseau est coupé.

Notez que le logiciel peut être configuré pour fonctionner sans aucun profil de localisation, et c'est peut-être l'état initial - dans ce cas, il n'y a aucun moyen de configurer une liste de programmes à lancer lorsque le wifi est connecté : vous devez créer un profil de connexion pour contenir la liste.

Pour ma propre expérience, j'essaie d'éviter d'utiliser le logiciel - il prend beaucoup plus de temps pour se connecter que sans lui, et parfois ne parvient pas à établir une nouvelle connexion au démarrage (peut être résolu en se reconnectant manuellement).

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

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

0voto

Sam Washburn Points 530

Pour mettre à jour les réponses de @nhinkle et @KRR : J'ai dû utiliser la requête XML suivante car Windows définit parfois le champ "Name" comme "SSID_5G 2" pour le SSID "SSID_5G". Utilisation des correspondances "Description" à la place (Windows 10, version 20H2)

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X