22 Votos

Poner Windows via Script en Hibernación o Modo de Suspensión

Tutorial de Stefan Trost | 24/04/2024 a las 17:42

En este tutorial, queremos ver cómo podemos poner nuestra computadora Windows en estado de hibernación o en modo de suspensión usando un script respectivamente con la ayuda de un comando de línea. Primero observamos el comando general para activar ambos estados y luego lo ampliamos para incluir un retraso de tiempo opcional.

En el tutorial sobre cómo apagar una computadora con Windows usando un script por lotes, ya hemos visto cómo podemos controlar el programa del sistema Windows "shutdown.exe" para apagar o reiniciar nuestra computadora Windows. Para apagar, podemos llamar a shutdown.exe con el parámetro s (que significa "shutdown"), para reiniciar el sistema podemos usar el parámetro r, que significa la palabra inglesa "restart".

Hibernación

El parámetro equivalente para hibernar es la "h". Esta letra proviene de la palabra inglesa "hibernation", que literalmente significa "hibernación" y se utiliza para la hibernación en las versiones inglesas de Windows.

La llamada a la hibernación se realiza de la misma manera que los otros ejemplos del tutorial de apagado:

shutdown.exe -h

Con este comando pondremos nuestro ordenador en modo de hibernación inmediata.

Modo de Suspensión

Aunque shutdown.exe puede controlarse con una variedad de parámetros y puede usarse para apagados y reinicios, así como para hibernaciones, el programa no tiene un parámetro para activar el modo de suspensión. Por este motivo tenemos que proceder de otra manera para activarlo:

runDLL32.exe powrprof.dll,SetSuspendState Sleep

El programa runDLL32.exe es una utilidad de Windows que se puede utilizar para ejecutar funciones de Windows definidas en una DLL (biblioteca de programas). Aquí, usamos runDLL32 para llamar a la función SetSuspendState() desde la DLL powrprof.dll, que puede poner nuestra computadora en modo de hibernación y suspensión. Como en este momento solo estamos interesados en el modo de suspensión, pasamos "Sleep" como un parámetro adicional a la función.

"Sleep" se utiliza junto con "Hibernate" en las versiones inglés de Windows para activar los respectivos estados de "Suspender" respectivamente "Hibernar".

Retraso Temporal

Siguiendo la lógica, sería razonable suponer que podemos agregar un retraso de tiempo a "shutdown.exe -h" simplemente agregando un valor t (time) como parámetro adicional, como ya lo sabemos por nuestros ejemplos de apagado y reinicio mediante un script.

Sin embargo, "shutdown.exe" no proporciona esto para la "hibernación". En todas mis pruebas para este tutorial usando diferentes versiones de Windows, comandos como "shutdown.exe -h -t 60" no fueron aceptados y solo fueron reconocidos con un mensaje de error. Aunque, en las mismas computadoras, los mismos comandos funcionaron para el apagado retrasado ("shutdown.exe -s -t 60") así como para el reinicio retrasado ("shutdown.exe -r -t 60") después de un minuto (60 segundos) de retraso.

Si aun así queremos poner nuestro ordenador en modo de suspensión con un retraso de tiempo, tenemos que utilizar una solución alternativa. Por ejemplo, podemos establecer un tiempo de espera (timeout) en nuestro script antes de llamar al comando. Nuestro siguiente ejemplo muestra cómo funciona esto usando un tiempo de espera de un minuto (60 segundos):

timeout /t 60 /nobreak
shutdown.exe -h

Llamar a estas líneas garantiza que primero se lleve a cabo la cuenta regresiva durante 60 segundos y solo entonces se llama a shutdown.exe y, por lo tanto, se activa el estado de hibernación. En lugar de los 60 segundos utilizados aquí, por supuesto también podemos utilizar cualquier otro número de segundos para nuestro descanso.

La situación es similar al activar el modo de suspensión respectivamente el modo de ahorro de energía. La función SetSuspendState() de la DLL powrprof tampoco tiene ningún parámetro para especificar una hora. Entonces, en este caso también tenemos que trabajar con un tiempo de espera que sea independiente de SetSuspendState():

timeout /t 180 /nobreak
runDLL32.exe powrprof.dll,SetSuspendState Sleep

Estas dos líneas pondrán nuestro ordenador en modo de suspensión tras una pausa de 3 minutos (180 segundos).

Cierre Automático de Programas

En el tutorial ya mencionado sobre el apagado o reinicio de Windows controlado por script, también hemos visto el parámetro f, con el que podemos forzar el cierre de todas las aplicaciones en ejecución sin preguntar antes del apagado, independientemente de si los programas todavía tienen archivos abiertos con cambios no guardados.

Este parámetro también se puede utilizar junto con el estado de hibernación para cerrar los programas en ejecución antes de iniciar la hibernación. Lo único que tenemos que hacer para esto es pasar la opción "f" como parámetro adicional:

shutdown.exe -h -f

Con este comando mandamos nuestro ordenador a hibernación y cerramos previamente todos los programas abiertos. Los cambios realizados en archivos abiertos que aún no se hayan guardado se perderán.

Requisitos

Finalmente, cabe mencionar que los comandos mostrados en este tutorial solo funcionan si la hibernación o el modo de suspensión están activados en la computadora en cuestión.

Puede comprobar fácilmente si este es el caso comprobando si el menú para apagar el ordenador, además de "Apagar" y "Reiniciar", también incluye las opciones "Hibernar" respectivamente "Suspender".

Si este no es el caso, la hibernación generalmente se puede activar en el Panel de Control si su sistema generalmente admite eso estado. Por ejemplo, en el caso de las máquinas virtuales, esto normalmente no es posible.

Método Alternativo de Llamada

En las versiones actuales de Windows, el programa runDLL32.exe así como también el programa shutdown.exe se encuentran en la carpeta "system32" de la instalación de Windows. En el caso de una instalación standard de Windows, esta es la carpeta "C:\Windows\System32". Por lo tanto, también podemos llamar a ambos programas a través de esta ruta completa respectivamente a través de su variable de sistema %SYSTEMROOT% en el formato "%SYSTEMROOT%\System32".

Al mismo tiempo, también podemos definir los parámetros de shutdown.exe usando una barra en lugar del guión que se muestra aquí. Es decir, "shutdown /h" en lugar de "shutdown -h".

Para ver ejemplos de este método alternativo de llamada, consulte el Tutorial de Apagado de Windows. En ese tutorial, también encontrará otras explicaciones más detalladas, así como parámetros adicionales para shutdown.exe.

ResponderPositivoNegativo

Sobre el Autor

AvatarPuede encontrar software de Stefan Trost en la pagina es.sttmedia.com. ¿Necesita un software individual según sus propios requisitos? Escribenos: es.sttmedia.com/contacto
Ver Perfil

 

Temas Relacionados

La Búsqueda de Askingbox

Información | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.