Come avviare un comando sulla connessione di rete / disconnessione?


56

Ho una connessione Wi-Fi che richiede l'autenticazione tramite un modulo Web una volta stabilito il collegamento wireless. So come automatizzare l'autenticazione con uno script che utilizza curl / Curlie .

Ma come posso chiedere a Windows di chiamare il mio script ogni volta che mi collego a una particolare connessione di rete?

Sarei anche interessato a ricevere il nome del profilo wireless o l'ESSID sulla riga di comando del mio script.


1
Probabilmente inutile ma ho trovato questo attraverso googling. Apparentemente elenca le tue connessioni e potrebbe fornire qualcosa che puoi interrogare con uno script per determinare quando un adattatore si connette / disconnette. msdn.microsoft.com/en-us/library/ms739931%28v=VS.85%29.aspx
CreeDorofl

Non voglio dover controllare lo stato ogni pochi secondi. Notifiche sulla consapevolezza della posizione di rete è interessante, ma non vedo un modo semplice per usarlo con solo script.
dolmen

dolmen: c'è un modo per pubblicare anche lo script che hai scritto per l'autenticazione. questa domanda sarebbe molto più completa con essa.
quest49

@ quest49 Capisco che la mia sceneggiatura possa interessarti, ma è irrilevante per la domanda.
dolmen

Hai mai avuto una risposta a questo che ha soddisfatto la tua domanda?
Menasheh

Risposte:


75

In Windows Vista e versioni successive, è possibile farlo utilizzando un'attività pianificata con un trigger del registro eventi. Il primo evento verrà attivato connettendosi alla rete e verrà specificato a quale rete è necessario connettersi per l'esecuzione. Il secondo evento verrà attivato quando si disconnette da qualsiasi rete. Ogni evento eseguirà un'attività specifica specificata dall'utente; probabilmente gli script che hai citato che hai scritto.

Impostazione di un evento per quando ti connetti alla rete:

  1. Aprire l'Utilità di pianificazione. Puoi trovarlo digitando Task Scheduler nella casella di ricerca del menu Start o sotto Programs | Accessories | System Tools.
  2. Nella libreria Utilità di pianificazione, creare una nuova attività facendo clic su Create Task nel pannello Azioni sul lato destro.

    add task

  3. Assegna al compito un nome come "rileva connessione di rete" o qualsiasi cosa tu scelga

  4. Sul Triggers scheda, fare clic New... e selezionare On an Event dalla casella a discesa.

    dropdown trigger

  5. Scegli le seguenti impostazioni:

    • log: Microsoft-Windows-NetworkProfile/Operational
    • Fonte: NetworkProfile
    • ID evento: 10000
  6. Fare clic su OK, quindi andare al Conditions scheda.
  7. Seleziona la casella per Start only if the following network connection is available e scegli la rete con cui vuoi eseguire lo script
  8. Sotto il Actions scheda, fare clic New... e selezionare Start a program. Immettere la posizione del file di script che si desidera eseguire, quindi fare clic su OK.
  9. Impostare le altre impostazioni dell'attività che si desidera, quindi fare clic su OK.

Impostazione di un evento per quando ci si disconnette dalla rete:

  1. Segui i passaggi 2-4 sopra
  2. Utilizzare le seguenti impostazioni di attivazione evento:
    • log: Microsoft-Windows-NetworkProfile/Operational
    • Fonte: NetworkProfile
    • ID evento: 10001
  3. Salta i passaggi 6-7, poiché non sarai più collegato a nessuna rete. Questo evento verrà quindi eseguito qualunque dal momento in cui ti disconnetti qualunque Rete.
  4. Seguire di nuovo i passaggi 8-9

1
Grande! Grazie per questa risposta dettagliata! Questo è molto più di quanto mi aspettassi. Ho scoperto che posso persino usare una condizione sul nome della connessione di rete, quindi posso eseguire il comando solo per un particolare profilo WLAN.
dolmen

Dove hai preso i valori che hai fornito nel passaggio 5? È possibile risolverli tramite prove ed errori nel registro eventi, ma mi chiedo se esiste un modo migliore per identificare un evento specifico, tramite la documentazione ad esempio.
Adam Millerchip

1
@AdamMillerchip Ho appena aperto il visualizzatore di eventi, disconnesso / riconnesso e poi guardato in giro.
nhinkle

Sì, sembra che sia il modo in cui deve essere fatto. Grazie. :-)
Adam Millerchip

Quali parametri otterrà il mio script? Puoi dare un esempio di tale script che, ad esempio, fa apparire una finestra di messaggio con i suoi parametri? O li aggiunge ad alcuni file?
einpoklum

7

Sembra che Start only if the following network connection is available è rotto dopo l'aggiornamento dell'anniversario di Windows 10. Utilizza invece questo trigger personalizzato:

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

Nelle reti aziendali utilizzare il nome del dominio anziché il SSID. In questo caso la categoria dell'evento sarà "Domain Authenticated" e non "Private".


Start only if the following network connection is available sembra davvero rotto. Se imposto questa opzione ed eseguo l'attività su richiesta, ottengo questo errore: Task Scheduler Service is not available. Task scheduler will attempt to reconnect to it.
Federico Destefanis

4

Se si utilizza un Thinkpad, è possibile usufruire di ThinkVantage Access Connection, disponibile per Windows 7, Vista e XP.

ThinkVantage Access Connection è il software di gestione delle connessioni di rete fornito con ThinkPad, se non è scaricabile dal loro sito di supporto. Quando crei un nuovo profilo per la tua posizione, c'è un procedura guidata che chiede se si desidera configurare un elenco di programmi da avviare quando tale posizione è collegato. Offre di uccidere il programma anche quando la rete è fuori.

Si noti che il software può essere configurato per funzionare senza alcun profilo di posizione, e questo è forse lo stato iniziale - in tal caso, non c'è modo di configurare un elenco di programmi da avviare quando il Wi-Fi è connesso: è necessario creare una connessione profilo per contenere la lista.

Per la mia esperienza personale, cerco di evitare l'utilizzo del software: richiede più tempo per collegarsi che senza, e talvolta non riesce a stabilire una nuova connessione all'avvio (può essere riparata manualmente ricollegandosi).

Il software funziona solo con il driver WIFI fornito con il thinkpad.

Nota a margine, questo software offre la possibilità di stabilire una connessione prima dell'accesso dell'utente, come opzione quando si crea il profilo. Non so se questo è possibile senza di esso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.