¿Cómo puedo poner la computadora en suspensión desde el menú Símbolo del sistema / Ejecutar?

144

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?

Lazer
fuente
Escriba shutdown en el símbolo del sistema y eche un vistazo a lo que funciona en XP y versiones posteriores de lo que puedo decir.
user10547
Relacionado: superuser.com/questions/39584/…
Nayuki

Respuestas:

128

Encontrarás shutdown.exeser 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
marca de fábrica
fuente
21
El problema rundll32.exe powrprof.dll,SetSuspendState 0,1,0es que NO FUNCIONA como debería. SetSuspendStatepondrá 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?
Corporate Geek
66
Los votos negativos no son en absoluto injustificados. Su respuesta no aborda la pregunta por sí sola. Los lectores deben poder recopilar suficiente información útil de una respuesta para resolver el problema sin tener que seguir ningún enlace a otros sitios que puedan quedar rotos o muertos.
Iszi
55
Votado en contra por no responder la pregunta: incluso en la página vinculada, el método descrito para poner la máquina en suspensión no funcionará cuando la hibernación esté habilitada.
akurtser
44
También probé el comando Suspender y también puedo confirmar que no funciona según lo previsto. No tiene nada que ver con odiar / trolling, pero si ese comando no funciona, entonces la pregunta no tiene respuesta, ya que esa fue la parte principal de la pregunta.
REPARADO
66
rundll32no debe usarse para llamar SetSuspendStateporque 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.
SergeyT
86

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 0que duerma correctamente, no hiberne , una computadora

Scott Chamberlain
fuente
Requiere elevación al administrador
dsmtoday
3
Funciona para mí en Windows 10 x64, compilación 1709.
Hans Løken
1
Funciona para mí en Win10x64 versión 1709, ejecute cmd con la cuenta de usuario administrador pero sin run as administratorla opción de clic derecho
Viktor Carlson
3
Funciona para mí con Windows 10 (ni siquiera como administrador).
DAB
3
Funciona en Windows 10 x64 Build 15063. Es necesario descargar PsTools y copiar psshutdown.exedesde el archivo, por ejemplo C:\Windows\System32, para poder usar el comando sin prefijo de ruta. Luego se debe ejecutar psshutdown -d -t 0con 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.
Arch Linux Tux
19

El comando rundll32.exe powrprof.dll,SetSuspendState 0,1,0para 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
Garfio
fuente
55
Creo que es la primera respuesta que realmente lo resuelve. Puse estas dos líneas (-hibernate off first) e hice un archivo por lotes que apaga la PC. Un problema con eso es que esencialmente apaga la hibernación, que no es lo que quería, así que para solucionarlo, agregué una tarea programada activada "al desbloquear la estación de trabajo" para volver a encender la hibernación con un lote cuya única línea es " powercfg -hibernate off ". Luego configuré una tecla corta para el primer archivo por lotes. Hecho. Funciona como un encanto, gracias!
akurtser
Eso es muy raro ¿Es necesario apagar la hibernación para poder dormir correctamente? ¿Existe un nombre para el estado híbrido de suspensión / suspensión powrprof.dllcuando la hibernación está activada? Solo quiero saber. ¿Se relaciona con alguno de los estados ACPI?
Ehtesh Choudhury
44
rundll32no debe usarse para llamar SetSuspendStateporque 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.
SergeyT
No funciona en Windows 10
T3rm1
@EhteshChoudhury, el problema en este caso es que los parámetros Rundll32 son incorrectos y completamente inadecuados, por lo que en realidad llaman a SetSuspendState con los parámetros: Hibernate: TRUE, ForceCritical: TRUE, DisableWakeEvents: TRUE. La última parte explica por qué no puede activar la PC con nada más que el botón de encendido. Es solo una coincidencia que tratar de hibernar cuando está deshabilitado pondrá su PC en suspensión en Win7, y probablemente por qué no funciona para algunas personas.
SilverbackNet
10

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.

Eric L
fuente
1
Esto funciona sin tener que elevar a Administrador. Funciona con o sin hibernación habilitada. Funciona como se espera con el sueño híbrido. Buena solución para Win10.
dsmtoday
3

Vea la utilidad gratuita de Wizmo , que puede hacer muchas cosas.
El comando que estás buscando es probablemente:

wizmo en espera

harrymc
fuente
1
Wizmo tiene el mismo problema que rundll32.exe powrprof.dll,SetSuspendState 0,1,0: pone la computadora en hibernación, no en reposo
Andomar el
2
No, desde Vista en realidad pone la computadora en suspensión híbrida . Si no quiere esto, apague el modo híbrido .
harrymc
1
wizmo blackout funcionó en windows 8.1, 10. ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
YumYumYum
Wizmo funciona muy bien. Lamentablemente, mi escáner de virus empresarial lo elimina, ya que contiene algunas secuencias que hacen que McAfee piense que contiene un troyano .
bastian
@bastian: Mcafee siempre fue una mala noticia para un escritor de aplicaciones (por experiencia personal).
harrymc
3

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,0parece 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.

Malditas verduras
fuente
2

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.

Diablo azul
fuente
1
rundll32no debe usarse para llamar SetSuspendStateporque 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.
SergeyT
1

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
Mohsen Abasi
fuente
3
rundll32no está destinado a llamar SetSuspendStatey 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).
SergeyT
@SergeyT Parece estar funcionando para mí (después de deshabilitar la hibernación); ¿Estás diciendo que esto corromperá las ventanas?
moondra
Daña la pila (dado que rundll32 espera una firma de llamada diferente, por lo que saca las cosas de la pila que realmente no se han puesto allí). Esto lleva a un comportamiento inesperado.
imoatama
@imoatama buen hallazgo ...
masterxilo
1

Aquí hay un artículo sobre el uso de CLI para apagar.

Microsoft proporciona PsTools que le permite cerrar la CLI junto con otras herramientas útiles. Puedes conseguir eso aquí .

Wonton
fuente
1

solo QUICK SLEEPER funciona para mí (funciona en Windows 7,8,10).

Código fuente ps disponible aquí .

T.Todua
fuente
1
¿Hay alguna posibilidad de que pueda proporcionar un enlace al sitio real del que obtuvo el archivo? Vincular directamente al archivo de descarga, especialmente cuando se usa el acortador de URL de ga, puede hacer que el archivo parezca particularmente sospechoso, ya que es una táctica a menudo empleada por los creadores de malware.
Mokubai
ok, he actualizado el enlace al sitio oficial.
T.Todua
1

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.

dash-tom-bang
fuente
1

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.exeno 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();"
AveYo
fuente