Como desativar o modo de suspensão via CMD?

10

Com apenas o prompt de comando, é possível desativar o modo de suspensão ao fechar a tampa de um laptop?

kb67
fonte
11
Por curiosidade, isso é apenas uma questão puramente teórica ou há algum motivo específico para você fazer isso? Eu pergunto, porque pode haver outras maneiras de conseguir isso, se for esse o caso.
Shinrai
Bem, eu preciso fazer isso remotamente e só tenho o prompt de comando acesss do laptop.
kb67
11
Não seria mais fácil apenas orientar o usuário do laptop a fazê-lo? Acho que o comentário do iglvzx está correto e não há como alterar facilmente a ação da tampa antes das edições manuais do registro.
Shinrai
Bem, eu tenho provado que estou errado, há uma maneira de fazê-lo via powercfg, mas acho que está envolvido o suficiente para que ainda seja mais fácil conversar com eles sobre isso.
21711 Shinrai

Respostas:

13

O comando que você está procurando é powercfg. Abra um prompt de comando e digitepowercfg –q >poweroptions.txt

Isso criará um arquivo de texto (poweroptions.txt) com todos os GUIDs para as configurações de energia. Abra o arquivo poweroptions.txt e localize o GUID para o esquema de energia atual. Isso deve estar no topo do arquivo e terá a seguinte aparência:

Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)

Copie e cole apenas o GUID (neste exemplo - 381b4222-f694-41f0-9685-ff5bb260df2e) em um novo arquivo de texto vazio. Em seguida, role e localize o GUID do subgrupo para as ações "Botões de energia e tampa". Copie e cole esse GUID no mesmo novo arquivo de texto como uma linha separada. Agora encontre o GUID de configuração de energia para "Ação de fechamento da tampa" e copie e cole esse sob os outros dois. Observe também os números 'Índice de configuração possível' da opção que você deseja definir (desativado é 000). Você precisará executar o comando uma vez para cada esquema de energia, energia CC e CA, a fim de cobrir as duas situações. O comando ficará assim:

Powercfg –SETACVALUEINDEX [put power scheme GUID here] [put subgroup GUID here] [put power setting GUID here] 000

Eu testei isso e meu comando fica assim:

powercfg -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 000

O segundo comando é para quando o usuário está com bateria e é exatamente o mesmo, exceto que usamos o comutador –SETDCVALUEINDEX.

Aqui está a página oficial de opções de linha de comando Powercfg da Microsoft para referência adicional.

dwolters
fonte
Oi David - Fico feliz em ver que a Microsoft tem pessoas fazendo divulgação em sites como este, é encorajador. Porém, não é necessário assinar suas postagens em nenhum site do Stack Exchange e realmente desencorajado - é para isso que serve o crachá do usuário.
Shinrai
Shrinrai, Desculpe, eu visito tantos fóruns diferentes todos os dias, é difícil manter todos os recursos em ordem. Vou olhar para o meu crachá de usuário.
amigos estão dizendo sobre dwolters
11
powercfgparece um bom exemplo de "como não escrever uma ferramenta de linha de comando": /
Martin von Wittich
7

O tópico aqui é Como desativar o modo de suspensão via CMD?

Supondo que você configurou a tampa do seu laptop para não fazer nada quando fechada:

powercfg -x -standby-timeout-ac 0

(de alguma forma, a opção -x não funciona para mim, então eu a mudei para / xe funciona. o restante das opções permanece -standby-timeout-ac )

Conforme mostrado na página Technet da Microsoft "Opções de linha de comando do Powercfg" ( https://technet.microsoft.com/en-us/library/cc748940(v=ws.10).aspx ), o comando é:

> valor da configuração powercfg -x (o valor que você está vendo é "em espera")

portanto: > powercfg -x-standby-timeout-ac minutes (desativar = 0 minutos)

NOTA: ac = conectado à energia elétrica / dc = funciona com bateria (portanto, se você deseja desativar o modo de suspensão enquanto estiver trabalhando com bateria, substitua "ac" por "dc" no comando, para que pareça powercfg -x -standby-timeout-dc 0)

wikilon
fonte
11
Isso funciona no Win 7 e Win 10, obrigado! O único requisito - executar o CMD como administrador.
TPAKTOPA 17/08/19
11
O problema -xpode ser que foi uma corrida completa, não o símbolo negativo normal.
Joel Coehoorn
2

Com base na resposta anterior, escrevi um arquivo em lotes.

@echo off

for /f "tokens=4 delims= " %%i IN ('powercfg -q ^| find "Power Scheme GUID:"') do Set StrOne=%%i
for /f "tokens=3 delims= " %%i IN ('powercfg -q ^| find "(Power buttons and lid)"') do Set StrTwo=%%i 
for /f "tokens=4 delims= " %%i IN ('powercfg -q ^| find "(Lid close action)"') do Set StrThree=%%i 

powercfg -SETACVALUEINDEX %StrOne% %StrTwo% %StrThree% 000

Você precisa alterar %% i para% i se estiver tentando executar esses comandos diretamente em um prompt de comandos (fora de um lote).

Jeremy
fonte
1

Com base no script de Jeremy e Jonas Herdick, escrevi esse script de alternância, que é independente da localização (também funciona com janelas em alemão) e me ajuda a desativar e restaurar (como era antes) a ação de fechar a tampa ao colocar meu notebook à sua base (onde a tampa precisa ser fechada). E sim, não se esqueça de reativar o esquema de energia atual após cada alteração como a KallePower mencionou

@echo off
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:(" %%i in ('powercfg /GETACTIVESCHEME') do set ACTIVESCHEME=%%i
for /f "tokens=2 delims=:(" %%i in ('powercfg -q %ACTIVESCHEME% SUB_BUTTONS LIDACTION ^| findstr "[0-9a-z]*-[0-9a-z]*-[0-9a-z]*-[0-9a-z]*-[0-9a-z]*"') do set FULLPATH=!FULLPATH! %%i
for /f "tokens=2 delims=:(" %%i in ('powercfg /q %FULLPATH% ^| findstr "[0-9]x[0-9]*"') do (
    set CURRENTSETTINGAC=!CURRENTSETTINGDC!
    set CURRENTSETTINGDC=%%i
)
set CURRENTSETTINGAC=%CURRENTSETTINGAC:~-1%
set CURRENTSETTINGDC=%CURRENTSETTINGDC:~-1%
powercfg -SETACVALUEINDEX %FULLPATH% 0
powercfg -SETDCVALUEINDEX %FULLPATH% 0
powercfg /s %ACTIVESCHEME%
pause
powercfg -SETACVALUEINDEX %FULLPATH% %CURRENTSETTINGAC%
powercfg -SETDCVALUEINDEX %FULLPATH% %CURRENTSETTINGDC%
powercfg /s %ACTIVESCHEME%
sc911
fonte
1
REM Disabling all Sleep Parameters

@echo off

powercfg /x -hibernate-timeout-ac 0

powercfg /x -hibernate-timeout-dc 0

powercfg /x -disk-timeout-ac 0

powercfg /x -disk-timeout-dc 0

powercfg /x -monitor-timeout-ac 0

powercfg /x -monitor-timeout-dc 0

Powercfg /x -standby-timeout-ac 0

powercfg /x -standby-timeout-dc 0

Pause
mizuki
fonte
0

A Microsoft tem uma página longa em powercfgopções de linha de comando.

Você provavelmente estará lendo sobre o -xinterruptor. Eu só costumava powercfgalterar as configurações de hibernação.


fonte
11
powercfgnão possui opções para alterar o arquivo lid close action. As opções de energia são armazenadas no Registro, HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicymas não está claro quais valores nos dados binários acompanham qual configuração.
iglvzx
Obrigado pelo feedback. Eu não tinha certeza, mas eu estou feliz por ter ligado para o mesmo lugar como David :-)
0

Mais uma coisa. Lembre-se de adicionar "powercfg -S% StrOne%" no final do script para ativar as configurações. As demais configurações serão definidas, mas não serão salvas / ativadas.

KallePower
fonte
0

Experimente o NoDoz . Depois de instalado, você pode executar a nodozpartir do prompt do cmd (ou terminal do PowerShell) para impedir que o sistema durma indefinidamente. Ou, você pode passar um parâmetro de tempo limite -t 6h13mpara que o programa termine automaticamente após um período arbitrário de tempo.

Nick Spreitzer
fonte