Cómo ejecutar un script en suspensión, hibernación, reanudación y apagado

18

Mantengo muchos de mis documentos de trabajo de clase alojados en Dropbox, así como mi sitio personal para almacenamiento remoto. Esto ayuda mucho ya que cambio entre un iPad, una computadora portátil y una computadora de escritorio, por lo que no me preocupa que mis documentos estén fuera de contacto.

El problema es que esta solución se basa en mí recordando ejecutar el programa de sincronización (synctoy) para win7, por lo que me gustaría una solución para hacer esto automáticamente. He encontrado algo de ayuda con las secuencias de comandos que debería funcionar en el arranque, pero ¿cómo puedo hacer que la secuencia de comandos se ejecute al entrar en suspensión e hibernación, reanudar desde ambos, así como ejecutar antes del apagado?

Jason
fuente
+1 Buena pregunta. Soy consciente de que hay scripts específicos a los que puede agregar en Ubuntu Linux para esto (aunque me gustaría saber específicamente cuál). De todos modos, esto también ha surgido al usar Windows.
James T Snell

Respuestas:

11

Pruebe esto cuando la computadora regrese del modo de hibernación o de suspensión

Begin the Task: On an event
Setting Basic
Log:  System
Source: Power-Troubleshooter
Event ID: 1
The system has resumed from sleep.

Cuando coloca la computadora en modo de hibernación o suspensión

Begin the Task: On an event
Setting Basic
Log:  System
Source: Kernel-Power
Event ID: 42
The system is entering sleep.
Artilugio
fuente
No funciona cuando hiberna. Puedo ver que el evento se registra en el Visor de eventos, pero el script que especifiqué en el Programador de tareas solo se ejecuta después de que el sistema regrese de Hibernate. Según el historial del Programador de tareas, la tarea se activa pero no se ejecuta.
Andreas Haferburg el
8

Puede crear una tarea que use cualquiera de las siguientes opciones como activadores para el Programador de tareas en Windows 7:

  • En la fecha prevista
  • En el inicio de sesión
  • Al inicio
  • En inactivo
  • En un evento
  • Sobre la conexión a la sesión del usuario
  • Al desconectarse de la sesión de usuario
  • En el bloqueo de la estación de trabajo
  • En la estación de trabajo desbloquear

Hay mucho con lo que trabajar allí, estaría mirando los activadores On Idle, Workstation lock y On Workstation Unlock. Esa es probablemente tu mejor apuesta.

Espero que ayude.

chunkyb2002
fuente
Bingo. Tengo una tarea programada que se ejecuta a SyncToyCmd.exe -Rdiario, por lo que también debería funcionar bien con los otros desencadenantes.
Andrew Coleson
1

Cuando quería configurarlo, quería un enfoque de muy baja latencia para poder poner en marcha una pantalla de inicio. Para el programador de tareas, desea establecer el desencadenador en "en un evento" y luego establecerlo en personalizado en lugar de básico, luego edite la consulta manualmente en la pestaña XML del desencadenador de evento.

Probé este script para XML:

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=4 or Level=0) and (EventID=42)]]</Select>
  </Query>
</QueryList>

Si necesita que la aplicación se inicie en un instante, esta es la mejor manera de hacerlo.

phly95
fuente
0

Después de haber probado algunos de los métodos prescritos aquí, nunca pude ejecutar un script para dormir. Las funciones integradas del Programador de tareas de Windows simplemente no lo arreglaron.

Encontré una pequeña utilidad de código abierto llamada "Power Triggers" o "Windows 7 Suspend / Resume Control" . A pesar de no estar bien pulido o mantenido actualmente, encontré que esta herramienta funciona en Windows 10 sin problemas. Sin embargo, para ejecutar un script fácilmente al suspender o reanudar, debe usar la versión 1.01, y no la última .

DCKing
fuente
0

Lo que puede hacer es crear un archivo por lotes para hacer todo lo que necesita antes de apagar o hibernar la máquina.

Tenga en cuenta que debe ejecutar las aplicaciones con "Start / wait xxx.exe" para que el archivo por lotes espere a que el comando se complete y salga y no llegue a la parte de apagado antes de que se completen otras tareas.

El último comando en ese archivo debe ser "shutdown xxx aaa" donde xxx e aa son los parámetros para el comando de apagado. Luego puede ejecutar este archivo por lotes en lugar de usar cualquier otro comando / aplicación de apagado.

usuario38660
fuente