¿Ejecutar un script cuando Windows reanuda el estado de suspensión / hibernación?


14

¿Hay alguna manera de hacer que Windows (XP, Vista y 7) ejecute un script cuando una máquina vuelve del modo de hibernación / suspensión? Estaría bien conmigo si el script se ejecuta después de que el usuario desbloquee una sesión bloqueada después de que se reanude su máquina.

Tengo un servicio que debe ser pateado cuando se reinicia una máquina para que funcione correctamente en el currículum.

Respuestas:


14

En Windows 7, puede hacer esto con una tarea programada. Configure un script por lotes para realizar las acciones que desee y luego cree una tarea con uno de los siguientes desencadenantes:

  • En el desbloqueo de la estación de trabajo: ignora el primer inicio de sesión, pero comenzará después del desbloqueo.
  • En la conexión a la sesión del usuario: cada inicio de sesión puede ser una conexión local o remota.
  • En un evento: en el registro del sistema, la fuente de "Solucionador de problemas de energía" registrará un código de evento de 1 cuando se despierte de un estado de suspensión.

No los he probado para asegurarme de que funcionen como se esperaba, pero he usado "On workstation lock" con gran éxito. Por lo que recuerdo de las tareas programadas en XP, solo tiene "Cuando inicio sesión".

ganar 7 fuente doc

ganar XP fuente doc

Espero que esto ayude


2
Tenga en cuenta que las opciones de activación "En el bloqueo / desbloqueo de la estación de trabajo" solo se muestran para "Crear tarea ..." y no "Crear tarea básica ..."
rymo

La fuente "Solucionador de problemas de energía" también funciona con Win 8.1.
Hierba

1
El solucionador de problemas de energía no funciona para mí en win 10 pro. El desbloqueo de la estación de trabajo funciona de todos modos
e-cloud

1
"Desbloquear estación de trabajo" funciona para mí
sms247

El código de evento 107 funciona para mí en win 10 pro
Alex78191

2

Usando Win32_PowerManagementEvent ? Lo busqué en Google y encontré el siguiente script (sin garantía;).

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

Agregue una tarea programada con desencadenante: en el desbloqueo de la estación de trabajo. Funciona, lo ejecuto después de despertarme del sueño. En mi caja Windows 2008R2, el servicio de audio debe reiniciarse; de ​​lo contrario, a veces utiliza el 100% de 1 CPU.


-1

De hecho, escribí un guión de este tipo hace un tiempo y escribí un blog sobre él, pero creo que fue un poco después de su pregunta aquí. La próxima vez que escriba algo como esto, buscaré Stack Overflow de inmediato, porque cuando las personas buscan esas cosas, tienden a ir a este sitio hoy en día.


44
Si bien tener un enlace es bueno, ¿podrías publicar las partes importantes (incluso el guión) aquí, en el sitio? De esta forma, los usuarios no tendrán que ir a otro lado, y en caso de que el blog se caiga, tenemos una copia de seguridad.
slhck
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.