Eseguire uno script quando Windows riprende dallo stato di sospensione / ibernazione?


14

Esiste un modo per far eseguire uno script a Windows (XP, Vista e 7) quando una macchina ritorna dalla modalità di sospensione / sospensione? Per me andrebbe bene se lo script viene eseguito dopo che l'utente ha sbloccato una sessione bloccata dopo il riavvio della macchina.

Ho un servizio che deve essere calciato quando riprendo una macchina per farlo funzionare correttamente al riavvio.

Risposte:


14

In Windows 7, puoi farlo con un'attività pianificata. Configurare uno script batch per eseguire le azioni desiderate, quindi creare un'attività con uno dei seguenti trigger:

  • Sblocco workstation: ignora il primo accesso, ma verrà avviato dopo lo sblocco.
  • Alla connessione alla sessione utente: ogni accesso può essere una connessione locale o remota.
  • In caso di evento: nel registro di sistema, l'origine "Risoluzione dei problemi di alimentazione" registra un codice evento di 1 quando ti svegli da uno stato di sospensione.

Non li ho testati per assicurarsi che funzionino come previsto, ma ho usato "Blocco workstation" con successo. Da quello che ricordo delle attività pianificate in XP, ha solo "Quando accedo".

vinci 7 fonte doc

vinci il documento sorgente XP

Spero che sia di aiuto


2
Si noti che le opzioni di trigger "Blocco / sblocco workstation" vengono visualizzate solo per "Crea attività ..." e non "Crea attività di base ..."
rymo

La fonte "Power-Troubleshooter" funziona anche con Win 8.1.
Herb,

1
Lo strumento di risoluzione dei problemi di alimentazione non funziona per me in Win 10 Pro. Lo sblocco della workstation funziona comunque
e-cloud

1
"On workstation unlock" funziona per me
sms247,

Il codice evento 107 funziona per me nella vittoria 10 pro
Alex78191 del

2

Utilizzando Win32_PowerManagementEvent ? Ho appena cercato su Google e ho trovato il seguente script (nessuna garanzia;).

Set oShell = CreateObject("WScript.Shell")

Set colMonitoredEvents = GetObject("winmgmts:")._
ExecNotificationQuery("Select * from Win32_PowerManagementEvent")

Do
  Set objLatestEvent = colMonitoredEvents.NextEvent

  Select Case objLatestEvent.EventType

    Case 4
      oShell.Run "Calc.exe", 1, False
      MsgBox "Entering suspend, Calc started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 7
      oShell.Run "Notepad.exe", 1, False
      MsgBox "Resuming from suspend, notepad started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 11
      MsgBox "OEM Event happened, OEMEventCode = " _
      & strLatestEvent.OEMEventCode

    Case 18
      MsgBox "Resume Automatic happened"

  End Select
Loop

1

Aggiungi un'attività pianificata con trigger: allo sblocco della workstation. Funziona, lo eseguo dopo il risveglio dal sonno. Nella mia finestra di Windows 2008 R2 il servizio audio deve essere riavviato, altrimenti a volte utilizza il 100% di 1 cpu.


-1

In realtà ho scritto una sceneggiatura del genere qualche tempo fa e ne ho scritto un blog , ma credo che sia stato un po 'dopo la tua domanda qui. La prossima volta che scrivo qualcosa del genere cercherò subito Stack Overflow, perché quando le persone cercano tali cose, oggi tendono a visitare questo sito.


4
Anche se avere un link è bello, potresti pubblicare qui le parti importanti (anche la sceneggiatura), sul posto? In questo modo gli utenti non dovranno andare altrove, e nel caso in cui il blog dovesse andare in malora abbiamo un backup.
slhck,
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.