Eu sei que quase tudo no Windows, como abrir qualquer tipo de aplicativo, pode ser feito no prompt de comando ou no menu Executar .
Como posso colocar meu computador em suspensão ou desligá-lo ? Qual é o comando para isso?
Eu sei que quase tudo no Windows, como abrir qualquer tipo de aplicativo, pode ser feito no prompt de comando ou no menu Executar .
Como posso colocar meu computador em suspensão ou desligá-lo ? Qual é o comando para isso?
Respostas:
Você encontrará
shutdown.exe
ser seu amigo.Outros comandos úteis veja este post:
Computador em suspensão (leia mais em https://superuser.com/a/463652/249349 )
Bloquear estação de trabalho
Computador de hibernação
Reinicialização do computador
Desligar o computador
EDIT / UPDATE:
Parece que dormir um computador é problemático se o hibernar estiver ativado.
Copiando de outras respostas:
Você pode tentar PsShutdown ou:
fonte
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
é que NÃO FUNCIONA como deveria.SetSuspendState
colocará o computador em uma espécie de modo de suspensão / hibernação híbrida. Ao usar o botão Suspender no menu Iniciar, você pode retomar o computador do modo de suspensão pressionando qualquer tecla do teclado. Usando essa linha de comando, make é retomado muito mais devagar devido ao estado de sono mais profundo e só pode ser retomado se você pressionar o botão liga / desliga no computador. Não pode continuar com o pressionamento de tecla. Então ... como você faz com que ela durma como no modo de espera normal - recuperável com o pressionar de uma tecla?rundll32
não deve ser usado para chamarSetSuspendState
porque sua assinatura não corresponde à esperada porrundll32
. Consulte: support.microsoft.com/en-us/kb/164787 e msdn.microsoft.com/en-us/library/windows/desktop/… O primeiro parâmetro obtém lixo em vez do valor FALSE. É a razão pela qual hiberna em vez de dormir.Os métodos publicados por outras pessoas não funcionam corretamente se o computador tiver a hibernação ativada, o computador não será ativado no teclado ou, mais importante, não será ativado na tarefa agendada.
Uma das ferramentas Sysinternals da Microsoft é o PsShutdown, usando o comando
psshutdown -d -t 0
que irá dormir corretamente, e não hibernar , um computadorfonte
run as administrator
opção de clicar com o botão direito do mousepsshutdown.exe
do arquivo para, por exemploC:\Windows\System32
, para poder usar o comando sem pathprefix. É preciso executarpsshutdown -d -t 0
com privilégios de administrador para suspender. Essa deve ser a resposta aceita , pois responde à pergunta, mesmo que não seja com as ferramentas pré-instaladas no Windows.O comando
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
para suspensão está correto - no entanto, ele hibernará em vez de suspensão se você não desativar a hibernação.Veja como fazer isso:
Vá para o Menu Iniciar e abra um prompt de comando elevado
cmd.exe
, digitando , clicando com o botão direito do mouse e escolhendo Executar como administrador . Digite o seguinte comando:fonte
powrprof.dll
quando o hibernar está ativado? Só quero saber. Está relacionado a algum dos estados da ACPI?rundll32
não deve ser usado para chamarSetSuspendState
porque sua assinatura não corresponde à esperada porrundll32
. Consulte: support.microsoft.com/en-us/kb/164787 e msdn.microsoft.com/en-us/library/windows/desktop/… O primeiro parâmetro obtém lixo em vez de FALSE. É a razão pela qual hiberna em vez de dormir.O NirCmd funciona no Windows 8 (presumo que também funcione no Windows 7) → http://www.nirsoft.net/utils/nircmd.html
O comando é
standby
, mas coloca o computador no modo de suspensão.Se você tiver o sono híbrido ativado, ele funcionará; ou seja, coloca o computador em suspensão e copia a memória para o disco em caso de perda de energia.
fonte
Veja o utilitário gratuito do Wizmo , que pode fazer muitas coisas.
O comando que você está procurando é provavelmente:
fonte
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
- ele coloca o computador em hibernação, não no sonoEu criei um atalho para
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(também tentei com 0,0,0), mas executar o atalho parecia colocar meu PC em hibernação. Não consegui acordar o PC usando o teclado; Eu tive que pressionar o botão liga / desliga e o PC mostrou as mensagens de postagem da placa principal, etc.Depois de ler o documento da API do Windows , criei um programa muito simples, com apenas 3 linhas de digitação. Fiz o upload do executável que compilei para esta página (clique no botão "SleepTest.exe") , mas esse arquivo pode ser excluído depois de um tempo (este é um site gratuito de hospedagem de arquivos que acabei de encontrar por uma rápida pesquisa no Google).
Se você não confia em mim (o que é totalmente correto) ou o arquivo foi excluído, você mesmo pode compilar o código, é claro. Você precisa adicionar "PowrProf.lib" às dependências adicionais do vinculador.
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
parece estar fazendo a mesma coisa, mas, de alguma forma, o programa acima não colocou o computador em hibernação. Eu poderia acordar o PC instantaneamente (sem mensagens de postagem na placa-mãe, etc.) pressionando qualquer tecla do teclado.fonte
Você pode iniciar as opções de suspensão ou hibernação na linha de comando, conforme especificado abaixo e referenciado neste artigo .
Se o seu computador estiver configurado para permitir a hibernação, o comando acima iniciará a hibernação. Se o recurso de hibernação estiver desativado, ele entrará no estado de espera. Como outros usuários responderam anteriormente,
shutdown.exe /?
fornecerá muitas opções de desligamento.fonte
rundll32
não deve ser usado para chamarSetSuspendState
porque sua assinatura não corresponde à esperada porrundll32
. Consulte: support.microsoft.com/en-us/kb/164787 e msdn.microsoft.com/en-us/library/windows/desktop/… O primeiro parâmetro obtém lixo em vez de FALSE, portanto, sempre hiberna em vez de ir para dormir.Você deve primeiro desativar o Hibernate no Windows e depois colocar o computador no estado de suspensão . Use os seguintes dois comandos:
e para executar a ação inversa, Hibernando o computador, use os comandos abaixo:
fonte
rundll32
não se destina a chamadasSetSuspendState
e não deve ser usado para isso. O primeiro parâmetro obtém lixo em vez do valor correto. Portanto, ele sempre hiberna em vez de dormir (se você não desativou a hibernação).Aqui está um artigo sobre o uso da CLI para desligar.
A Microsoft fornece PsTools, que fornece o desligamento da CLI junto com outras ferramentas úteis. Você pode conseguir isso aqui .
fonte
apenas o QUICK SLEEPER funciona para mim (funciona no Windows 7,8,10).
código fonte ps disponível aqui .
fonte
Se você tem o Python (com o pywin32) disponível, também pode chamar essa função SetSuspendState diretamente com:
Isso pode ser facilmente colocado em um arquivo em lotes ou em um atalho como:
Portanto, se você não tiver seus arquivos .py associados ao intérprete, basta clicar duas vezes no link.
fonte
A parte de desligamento da pergunta é clara para todos.
shutdown.exe /?
mostra todas as opções para desligar / reiniciar / opções avançadas de inicialização / inicialização de firmware.Mas eu vejo tantas críticas por parte da parte do sono.
Todo mundo entende que
rundll32.exe
não deve ser usado para chamar funções aleatórias e simplesmente funciona aqui para hibernar inteiramente por coincidência. Mas essa é a natureza do Windows - uma caixa preta que as pessoas vasculharam e encontraram centenas de soluções alternativas para fazer um trabalho (gritar para dostips).Existem tantas soluções " adequadas " propondo ferramentas externas , mas não consigo encontrar um script em lote nativo (híbrido / pinvoke / qualquer que seja) , mesmo que essa pergunta permaneça ativa ao longo dos anos.
Então, aqui está o meu power_sleep.bat simples :
Até funciona como um grande comando de uma linha:
fonte