Sé que casi todo en Windows, como abrir cualquier tipo de aplicación, se puede hacer desde el símbolo del sistema o desde el menú Ejecutar .
¿Cómo puedo poner mi computadora en suspensión o apagarla ? ¿Cuál es el comando para eso?
Sé que casi todo en Windows, como abrir cualquier tipo de aplicación, se puede hacer desde el símbolo del sistema o desde el menú Ejecutar .
¿Cómo puedo poner mi computadora en suspensión o apagarla ? ¿Cuál es el comando para eso?
Respuestas:
Encontrarás shutdown.exe
ser tu amigo.
Otros comandos útiles ver esta publicación:
Sleep Computer (lea más en https://superuser.com/a/463652/249349 )
Estación de trabajo de bloqueo
Hibernate Computer
see answers by Scott Chamberlain and Eric L
Reiniciar computadora
Shutdown.exe -r -t 00
Apagar la computadora
Shutdown.exe -s -t 00
EDITAR / ACTUALIZAR:
Parece que dormir una computadora es problemático si la hibernación está activada.
Copiando de otras respuestas:
Puedes probar PsShutdown o:
El comando rundll32.exe powrprof.dll, SetSuspendState 0,1,0 para dormir es correcto; sin embargo, hibernará en lugar de dormir si no apaga la hibernación.
Aquí se explica cómo hacerlo:
Vaya al menú Inicio y abra un símbolo del sistema elevado escribiendo cmd.exe, haciendo clic derecho y eligiendo Ejecutar como administrador. Escriba el siguiente comando:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
es que NO FUNCIONA como debería. SetSuspendState
pondrá la computadora en una especie de modo de hibernación / suspensión híbrida. Cuando usa el botón Suspender del menú de inicio, puede reanudar su computadora de la suspensión presionando cualquier tecla de su teclado. El uso de esta línea de comando hace que la reanudación sea mucho más lenta debido al estado de reposo más profundo y puede reanudarse solo si presiona el botón de encendido en su computadora. No se puede reanudar para presionar una tecla. Entonces ... ¿cómo lo haces dormir como en modo de espera normal, reanudable con solo presionar una tecla?
rundll32
no debe usarse para llamar SetSuspendState
porque su firma no coincide con la esperada por rundll32
. Consulte: support.microsoft.com/en-us/kb/164787 y msdn.microsoft.com/en-us/library/windows/desktop/... El primer parámetro obtiene basura en lugar del valor FALSO. Es la razón, por qué hiberna en lugar de irse a dormir.
Los métodos publicados por otras personas no funcionan correctamente si una computadora tiene la hibernación habilitada, la computadora no se activará en el teclado o, lo que es más importante, no se activará en la tarea programada.
Una de las herramientas Sysinternals de Microsoft es PsShutdown, que usa el comando para psshutdown -d -t 0
que duerma correctamente, no hiberne , una computadora
run as administrator
la opción de clic derecho
psshutdown.exe
desde el archivo, por ejemplo C:\Windows\System32
, para poder usar el comando sin prefijo de ruta. Luego se debe ejecutar psshutdown -d -t 0
con privilegios de administrador para suspender. Esta debería ser la respuesta aceptada , porque responde a la pregunta, incluso si no es con herramientas preinstaladas de Windows.
El comando rundll32.exe powrprof.dll,SetSuspendState 0,1,0
para dormir es correcto; sin embargo, hibernará en lugar de dormir si no apaga la hibernación.
Aquí se explica cómo hacerlo:
Vaya al menú Inicio y abra un símbolo del sistema elevado escribiendo cmd.exe
, haciendo clic derecho y eligiendo Ejecutar como administrador . Escriba el siguiente comando:
powercfg -hibernate off
powrprof.dll
cuando la hibernación está activada? Solo quiero saber. ¿Se relaciona con alguno de los estados ACPI?
rundll32
no debe usarse para llamar SetSuspendState
porque su firma no coincide con la esperada por rundll32
. Consulte: support.microsoft.com/en-us/kb/164787 y msdn.microsoft.com/en-us/library/windows/desktop/... El primer parámetro obtiene basura en lugar de FALSE. Es la razón, por qué hiberna en lugar de irse a dormir.
NirCmd funciona en Windows 8 (supongo que también funciona con Windows 7) → http://www.nirsoft.net/utils/nircmd.html
El comando es standby
, pero apaga la computadora.
nircmd.exe standby
Si tiene habilitado el sueño híbrido, funcionará; es decir, pone la computadora en suspensión y copia la memoria en el disco en caso de pérdida de energía.
Vea la utilidad gratuita de Wizmo , que puede hacer muchas cosas.
El comando que estás buscando es probablemente:
wizmo en espera
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
: pone la computadora en hibernación, no en reposo
He creado un acceso directo para rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(también probé con 0,0,0), pero ejecutar el acceso directo pareció poner mi PC en hibernación. No pude despertar la PC usando el teclado; Tuve que presionar el botón de encendido, y la PC mostró los mensajes de la placa base, etc.
Después de leer el documento de la API de Windows , creé un programa muy simple con solo 3 líneas de escritura. He subido el ejecutable que compilé a esta página (haga clic en "SleepTest.exe") , pero este archivo podría eliminarse después de un tiempo (este es un sitio de alojamiento de archivos gratuito que acabo de encontrar mediante una búsqueda rápida en Google).
Si no confías en mí (lo cual está totalmente bien) o el archivo ha sido eliminado, puedes compilar el código tú mismo, por supuesto. Debe agregar "PowrProf.lib" a las dependencias adicionales de Linker.
#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.
int main()
{
SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
return 0;
}
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
parece estar haciendo lo mismo, pero de alguna manera, el programa anterior no puso la computadora en hibernación. Podría activar la PC al instante (sin mensajes de la placa base, etc.) presionando cualquier tecla del teclado.
Puede iniciar las opciones de suspensión o hibernación desde la línea de comandos como se especifica a continuación y se hace referencia en este artículo .
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Si su computadora está configurada para permitir la hibernación, entonces el comando anterior iniciará la hibernación. Si la función de hibernación está desactivada, pasará al estado de espera. Como otros usuarios han respondido anteriormente, shutdown.exe /?
proporcionará muchas opciones de apagado.
rundll32
no debe usarse para llamar SetSuspendState
porque su firma no coincide con la esperada por rundll32
. Consulte: support.microsoft.com/en-us/kb/164787 y msdn.microsoft.com/en-us/library/windows/desktop/... El primer parámetro obtiene basura en lugar de FALSE, por lo que siempre hiberna en lugar de ir a dormir.
Primero debe deshabilitar Hibernate en Windows y luego poner la computadora en estado de Suspensión . Use los siguientes dos comandos:
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
y para hacer una acción inversa, hibernar la computadora, use los siguientes comandos:
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
rundll32
no está destinado a llamar SetSuspendState
y no debe usarse para esto. El primer parámetro obtiene basura en lugar del valor correcto. Por lo tanto, siempre hiberna en lugar de irse a dormir (si no ha desactivado la hibernación).
solo QUICK SLEEPER funciona para mí (funciona en Windows 7,8,10).
Código fuente ps disponible aquí .
Si tiene Python (con pywin32) disponible, también puede llamar a esa función SetSuspendState directamente con:
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
Esto se puede poner fácilmente en un archivo por lotes o en un atajo como:
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
Entonces, si no tiene sus archivos .py asociados al intérprete, puede hacer doble clic en el enlace.
La parte de cierre de la pregunta es clara para todos.
shutdown.exe /?
muestra todas las opciones de apagado / reinicio / arranque de opciones avanzadas / arranque de firmware.
Pero veo tantas críticas sobre la parte del sueño.
Todo el mundo entiende que rundll32.exe
no debe usarse para llamar a funciones aleatorias y simplemente funciona aquí para hibernar completamente por coincidencia. Pero esa es la naturaleza de Windows: una caja negra que la gente ha buscado y encontrado cientos de soluciones alternativas para hacer un trabajo (agradecimiento a los dostips).
Hay tantas soluciones " adecuadas " que proponen herramientas externas , sin embargo, parece que no puedo encontrar un script por lotes nativo (híbrido / pinvoke / lo que sea) , incluso si esta pregunta se ha mantenido activa a lo largo de los años.
Así que aquí está mi simple power_sleep.bat :
@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%"
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit
Incluso funciona como un gran comando de una línea:
powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"