Skript ausführen, wenn Windows aus dem Standby- / Ruhezustand zurückkehrt?

13

Gibt es eine Möglichkeit, Windows (XP, Vista und 7) ein Skript ausführen zu lassen, wenn ein Computer aus dem Ruhezustand / Suspend-Modus zurückkehrt? Es wäre in Ordnung für mich, wenn das Skript ausgeführt würde, nachdem der Benutzer eine gesperrte Sitzung entsperrt, nachdem sein Computer fortgesetzt wurde.

Ich habe einen Dienst, der gekickt werden muss, wenn ich einen Computer wieder aufnehme, damit er bei Wiederaufnahme ordnungsgemäß ausgeführt wird.

Ian C.
quelle

Antworten:

14

In Windows 7 können Sie dies mit einer geplanten Aufgabe tun. Richten Sie ein Stapelskript ein, um die gewünschten Aktionen auszuführen, und erstellen Sie dann eine Aufgabe mit einem der folgenden Auslöser:

  • Beim Entsperren der Arbeitsstation - Ignoriert die erste Anmeldung, wird jedoch nach dem Entsperren gestartet.
  • Bei Verbindung zur Benutzersitzung - Bei jeder Anmeldung kann es sich um eine lokale oder eine Remoteverbindung handeln.
  • Bei einem Ereignis - Im Systemprotokoll protokolliert die Quelle "Power-Troubleshooter" einen Ereigniscode von 1, wenn Sie aus einem Ruhezustand aufwachen.

Ich habe diese nicht getestet, um sicherzustellen, dass sie wie erwartet funktionieren, aber ich habe "On Workstation Lock" mit großem Erfolg verwendet. Soweit ich mich an geplante Aufgaben in XP erinnere, hat es nur "Wenn ich mich anmelde".

Gewinnen Sie 7 Quelldokumente

Win XP-Quelldokument

Hoffe das hilft

Doltknuckle
quelle
2
Beachten Sie, dass die Auslöseoptionen für das Sperren / Entsperren der Arbeitsstation nur für "Aufgabe erstellen ..." und nicht für "
Grundaufgabe
Die "Power-Troubleshooter" -Quelle funktioniert auch mit Win 8.1.
Herb
1
Der Power-Troubleshooter funktioniert bei mir in Win 10 Pro nicht. Die Entsperrung der Workstation funktioniert trotzdem
E-Cloud
1
"On Workstation Unlock" funktioniert bei mir
sms247
Event Code 107 funktioniert für mich in Win 10 Pro
Alex78191
2

Verwenden Sie Win32_PowerManagementEvent ? Ich habe es nur gegoogelt und folgendes Skript gefunden (keine 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
Andy
quelle
1

Hinzufügen einer geplanten Aufgabe mit Auslöser: Beim Entsperren der Arbeitsstation. Es funktioniert, ich laufe es nach dem Aufwachen aus dem Schlaf. Auf meiner Windows 2008R2-Box muss der Audiodienst neu gestartet werden, andernfalls wird manchmal 100% von 1 CPU verwendet.

ed m
quelle
-1

Ich habe tatsächlich vor einiger Zeit ein solches Skript geschrieben und darüber gebloggt , aber ich glaube, es war ein bisschen nach Ihrer Frage hier. Wenn ich das nächste Mal so etwas schreibe, werde ich sofort nach Stack Overflow suchen, denn wenn Leute nach solchen Dingen suchen, gehen sie heutzutage eher auf diese Site.

regeter
quelle
4
Könnten Sie vielleicht die wichtigen Teile (sogar das Skript) hier vor Ort posten, obwohl es nett ist, einen Link zu haben? Auf diese Weise müssen Benutzer nicht woanders hingehen und für den Fall, dass der Blog jemals ausfällt, haben wir ein Backup.
Slhck