Exécuter un script lorsque Windows quitte l’état de suspension / veille prolongée?


13

Existe-t-il un moyen de demander à Windows (XP, Vista et 7) d’exécuter un script lorsqu’un ordinateur revient du mode Veille prolongée / Suspendre? Je serais d'accord si le script était exécuté après que l'utilisateur a déverrouillé une session verrouillée après la reprise de la machine.

J'ai un service qui doit être expulsé à la reprise d'une machine afin de le faire fonctionner correctement à la reprise.

Réponses:


14

Dans Windows 7, vous pouvez le faire avec une tâche planifiée. Configurez un script de lot pour effectuer les actions souhaitées, puis créez une tâche avec l'un des déclencheurs suivants:

  • Sur le poste de travail déverrouillé - Ignore la première connexion, mais démarrera après le déverrouillage.
  • Sur la connexion à la session utilisateur - Chaque connexion, peut être une connexion locale ou distante.
  • En cas d'événement - Dans le journal système, la source "Power-Troubleshooter" enregistrera un code d'événement de 1 lorsque vous sortez d'un état de veille.

Je ne les ai pas testées pour m'assurer qu'elles fonctionnent comme prévu, mais j'ai utilisé «le verrouillage du poste de travail» avec beaucoup de succès. D'après ce que je me souviens des tâches planifiées dans XP, il n'y a que "Quand je me connecte".

gagner 7 doc source

gagner le document source XP

J'espère que cela t'aides


2
Notez que les options de déclencheur "Sur le poste de travail verrouillé / déverrouillé" ne sont affichées que pour "Créer une tâche ..." et non pour "Créer une tâche de base ..."
rymo

La source "Power-Troubleshooter" fonctionne également avec Win 8.1.
Herb

1
Le Power-Troubleshooter ne fonctionne pas pour moi dans Win 10 Pro. Le déverrouillage du poste de travail fonctionne quand même
e-cloud

1
"On worklock unlock" fonctionne pour moi
sms247

Le code d'événement 107 fonctionne pour moi dans la victoire 10 pro
Alex78191 le

2

Utilisation de Win32_PowerManagementEvent ? Je viens de googler et trouvé le script suivant (sans garantie;).

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

Ajouter une tâche planifiée avec déclencheur: déverrouillage du poste de travail. Ça marche, je le lance après le réveil. Sous Windows 2008R2, le service audio doit être redémarré, sinon, il utilise parfois 100% de 1 cpu.


-1

En fait, j’ai écrit ce genre de scénario il ya quelque temps et blogué à ce sujet, mais je pense que c’est un peu après votre question. La prochaine fois que j'écrirai quelque chose comme ceci, je chercherai tout de suite dans Stack Overflow, car lorsque les gens recherchent de telles choses, ils ont tendance à consulter ce site aujourd'hui.


4
Bien qu'avoir un lien, c'est bien, pourriez-vous peut-être poster les parties importantes (même le script) ici, sur site? De cette façon, les utilisateurs n'auront pas à aller ailleurs et, au cas où le blog tomberait, nous avons une copie de sauvegarde.
Slhck
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.