¿Cómo deshabilitar el modo de suspensión a través de CMD?

10

Con solo el símbolo del sistema, ¿es posible desactivar el modo de suspensión al cerrar la tapa de una computadora portátil?

kb67
fuente
1
Por curiosidad, ¿es solo una pregunta puramente teórica o hay alguna razón específica por la que necesita hacer esto? Pregunto porque podría haber otras formas de lograrlo si ese es el caso.
Shinrai
Bueno, necesito hacerlo de forma remota y solo tengo los accesos del símbolo del sistema de la computadora portátil.
kb67
1
¿No sería más fácil simplemente guiar al usuario de la computadora portátil para que lo haga? Creo que el comentario de iglvzx es correcto y no hay forma de cambiar fácilmente la acción de la tapa sin las ediciones de registro manuales.
Shinrai
Bueno, se ha demostrado que estoy equivocado, hay una manera de hacerlo a través de powercfg, pero creo que está lo suficientemente involucrado como para que aún sea más fácil hablar con ellos.
Shinrai

Respuestas:

13

El comando que está buscando es powercfg. Abra un símbolo del sistema y escribapowercfg –q >poweroptions.txt

Esto creará un archivo de texto (poweroptions.txt) con todos los GUID para la configuración de energía. Abra el archivo poweroptions.txt y busque el GUID para la combinación de energía actual. Esto debería estar en la parte superior del archivo y se verá así:

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

Copie y pegue solo el GUID (en este ejemplo - 381b4222-f694-41f0-9685-ff5bb260df2e) en un nuevo archivo de texto vacío. Luego, desplácese y encuentre el GUID de subgrupo para las acciones "Botones de encendido y tapa". Copie y pegue este GUID en ese mismo nuevo archivo de texto como una línea separada. Ahora encuentre el GUID de configuración de energía para "Acción de cierre de tapa" y copie y pegue ese debajo de los otros dos. Tenga en cuenta también los números de 'Possible Setting Index' para la opción en la que desea establecerlo (deshabilitado es 000). Deberá ejecutar el comando una vez para cada combinación de energía, CC y CA para cubrir ambas situaciones. El comando se verá así:

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

Probé esto y mi comando se ve así:

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

El segundo comando es para cuando el usuario está con batería y es exactamente el mismo, excepto que usamos el interruptor –SETDCVALUEINDEX.

Aquí está la página oficial de opciones de línea de comandos de Powercfg de Microsoft para mayor referencia.

dwolters
fuente
Hola, David: me alegra ver que Microsoft tiene personas que realizan actividades de divulgación en sitios como este, es alentador. Sin embargo, no es necesario firmar sus publicaciones en ningún sitio de Stack Exchange, y de hecho se desaconseja: para eso es su credencial de usuario.
Shinrai
Shrinrai, lo siento, visito tantos foros diferentes todos los días que es difícil mantener todas las funciones correctas. Veré mi credencial de usuario.
disminuye el
1
powercfgparece un buen ejemplo de "cómo no escribir una herramienta de línea de comandos": /
Martin von Wittich
7

El tema aquí es ¿Cómo deshabilitar el modo de suspensión a través de CMD?

Suponiendo que ha configurado la tapa de su computadora portátil para que no haga nada cuando está cerrada:

powercfg -x -standby-timeout-ac 0

(De alguna manera, el modificador -x no funciona para mí, así que lo he cambiado a / x y funciona. El resto de los modificadores permanecen -standby-timeout-ac )

Como se muestra en la página de Technet de Microsoft "Opciones de línea de comandos de Powercfg" ( https://technet.microsoft.com/en-us/library/cc748940(v=ws.10).aspx ), el comando es:

> valor de configuración powercfg -x (el valor que está viendo es "en espera")

por lo tanto: > powercfg -x -standby-timeout-ac minutes (deshabilitar = 0 minutos)

NOTA: ac = conectado a la energía eléctrica / dc = funciona con batería (por lo tanto, si desea desactivar el modo de suspensión mientras trabaja con energía de la batería, reemplace el "ac" con "dc" en el comando, para que se vea como powercfg -x -standby-timeout-dc 0)

wikilon
fuente
1
Esto funciona en Win 7 y Win 10, ¡gracias! El único requisito: ejecutar CMD como administrador.
TPAKTOPA
1
El problema con -xpodría ser que era un guión completo, no el símbolo negativo normal.
Joel Coehoorn
2

Basado en la respuesta anterior, escribí un archivo por 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

Debe cambiar %% i a% i si intenta ejecutar estos comandos directamente en un símbolo del sistema (fuera de un lote).

Jeremy
fuente
1

Basado en el guión de Jeremy y Jonas Herdick, escribí este guión de alternancia, que es independiente de la localización (también funciona con ventanas alemanas) y me ayuda a deshabilitar y restaurar (a lo que era antes) la acción de cerrar la tapa al colocar mi cuaderno a su muelle (donde la tapa debe cerrarse). Y sí, no olvides reactivar el esquema de poder actual después de cada cambio como mencionó KallePower

@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
fuente
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
fuente
0

Microsoft tiene una página larga sobre powercfgopciones de línea de comandos.

Probablemente estarás leyendo sobre el -xinterruptor. Sin powercfgembargo, solo solía cambiar la configuración de hibernación.


fuente
1
powercfgno tiene ninguna opción para cambiar el lid close action. Las opciones de energía se almacenan en el Registro debajo, HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicypero no está claro qué valores de los datos binarios van con qué configuración.
iglvzx
Gracias por la respuesta. No estaba seguro, pero me alegro de haber vinculado al mismo lugar que David :-)
0

Una cosa más. Recuerde agregar "powercfg -S% StrOne%" al final del script para activar la configuración. De lo contrario, solo se establecerá la configuración, pero no se guardará / activará.

KallePower
fuente
0

Prueba NoDoz . Una vez instalado, puede ejecutar nodozdesde su indicador de cmd (o terminal PowerShell) para evitar que su sistema duerma indefinidamente. O bien, puede pasar un parámetro de tiempo de espera como -t 6h13mhacer que el programa finalice automáticamente después de una cantidad arbitraria de tiempo.

Nick Spreitzer
fuente