Comment désactiver le mode veille via CMD?


10

Avec seulement l'invite de commande, est-il possible de désactiver le mode veille lors de la fermeture du couvercle d'un ordinateur portable?


1
Par curiosité, s'agit-il simplement d'une question purement théorique ou y a-t-il une raison spécifique pour laquelle vous devez le faire? Je pose la question parce qu'il pourrait y avoir d'autres façons de le faire si c'est le cas.
Shinrai

Eh bien, je dois le faire à distance et je n'ai que les accès à l'invite de commande de l'ordinateur portable.
kb67

1
Ne serait-il pas plus facile de simplement guider l'utilisateur de l'ordinateur portable en le faisant? Je pense que le commentaire d'iglvzx est juste et il n'y a aucun moyen de changer facilement l'action du couvercle en dehors des modifications manuelles du registre.
Shinrai

Eh bien, je me suis trompé, il existe un moyen de le faire via powercfg, mais je pense que cela est suffisamment impliqué pour qu'il soit encore plus facile de simplement en parler.
Shinrai

Réponses:


13

La commande que vous recherchez est powercfg. Ouvrez une invite de commande et tapezpowercfg –q >poweroptions.txt

Cela va créer un fichier texte (poweroptions.txt) avec tous les GUID pour les paramètres d'alimentation. Ouvrez le fichier poweroptions.txt et recherchez le GUID du schéma d'alimentation actuel. Cela devrait être tout en haut du fichier et ressemblera à ceci:

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

Copiez et collez uniquement le GUID (dans cet exemple - 381b4222-f694-41f0-9685-ff5bb260df2e) dans un nouveau fichier texte vide. Faites ensuite défiler et recherchez le GUID du sous-groupe pour les actions «Boutons d'alimentation et couvercle». Copiez et collez ce GUID dans ce même nouveau fichier texte en tant que ligne distincte. Maintenant, trouvez le GUID de réglage d'alimentation pour «Action de fermeture du couvercle» et copiez et collez celui-ci sous les deux autres. Veuillez également noter les numéros «Index des paramètres possibles» pour l'option que vous souhaitez définir (désactivé est 000). Vous devrez exécuter la commande une fois pour chaque schéma d'alimentation, alimentation CC et CA afin de couvrir les deux situations. La commande ressemblera à ceci:

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

J'ai testé cela et ma commande ressemble à ceci:

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

La deuxième commande est pour lorsque l'utilisateur est sur batterie et est exactement la même, sauf que nous utilisons le commutateur –SETDCVALUEINDEX.

Voici la page officielle des options de ligne de commande Powercfg de Microsoft pour plus de référence.


Salut David - Je suis heureux de voir que Microsoft a des gens qui font de la sensibilisation sur des sites comme celui-ci, c'est encourageant. Cependant, il n'est pas nécessaire de signer vos publications sur un site Stack Exchange et en fait découragé - c'est à cela que sert votre badge utilisateur.
Shinrai

Shrinrai, Désolé, je visite tellement de forums différents chaque jour, il est difficile de garder toutes les fonctionnalités droites. Je vais regarder mon badge utilisateur.
habitants du

1
powercfgsemble être un bel exemple de "comment ne pas écrire un outil en ligne de commande": /
Martin von Wittich

7

Le sujet ici est Comment désactiver le mode veille via CMD?

En supposant que vous avez configuré le couvercle de votre ordinateur portable pour ne rien faire lorsqu'il est fermé:

powercfg -x -standby-timeout-ac 0

(en quelque sorte, le commutateur -x ne fonctionne pas pour moi, je l'ai donc changé en / x et cela fonctionne. les autres commutateurs restent -standby-timeout-ac )

Comme indiqué sur la page Technet de Microsoft «Options de ligne de commande Powercfg» ( https://technet.microsoft.com/en-us/library/cc748940(v=ws.10).aspx ), la commande est:

> powercfg -x setting value (la valeur que vous regardez est "standby")

par conséquent: > powercfg -x -standby-timeout-ac minutes (disable = 0 minutes)

REMARQUE: ac = connecté à l'alimentation électrique / dc = fonctionne sur batterie (donc si vous souhaitez désactiver le mode veille pendant que vous travaillez sur l'alimentation de la batterie, remplacez "ac" par "dc" dans la commande, pour qu'il ressemble powercfg -x -standby-timeout-dc 0)


1
Cela fonctionne sur Win 7 et Win 10, merci! La seule exigence - pour exécuter CMD en tant qu'administrateur.
TPAKTOPA

1
Le problème avec -xpourrait être qu'il s'agissait d'un tiret plein, pas du symbole négatif normal.
Joel Coehoorn

2

Sur la base de la réponse précédente, j'ai écrit un fichier de commandes.

@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

Vous devez remplacer %% i par% i si vous essayez d'exécuter ces commandes directement dans une invite de commandes (en dehors d'un lot).


1

Sur la base du script de Jeremy et Jonas Herdick, j'ai écrit ce script bascule, qui est indépendant de la localisation (fonctionne donc également avec les fenêtres allemandes) et m'aide à désactiver et à restaurer (à ce qu'il était auparavant) l'action de fermeture du couvercle lorsque je mets mon portable à son dock (où le couvercle doit être fermé). Et oui, n'oubliez pas de réactiver le schéma de puissance actuel après chaque changement comme KallePower l'a mentionné

@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%

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

0

Microsoft a une longue page sur les powercfgoptions de ligne de commande.

Vous lirez probablement sur l' -xinterrupteur. Je n'ai cependant utilisé que powercfgpour modifier les paramètres de mise en veille prolongée.


1
powercfgn'a aucune option pour changer le lid close action. Les options d'alimentation sont stockées dans le Registre sous HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicymais il n'est pas clair quelles valeurs dans les données binaires vont avec quel paramètre.
iglvzx

Merci pour les commentaires. Je n'étais pas sûr mais je suis content d'avoir lié au même endroit que David :-)

0

Encore une chose. N'oubliez pas d'ajouter "powercfg -S% StrOne%" à la fin du script pour activer les paramètres. Les autres paramètres seront simplement définis, mais ne seront pas enregistrés / activés.


0

Essayez NoDoz . Une fois installé, vous pouvez exécuter à nodozpartir de votre invite cmd (ou terminal PowerShell) pour empêcher votre système de dormir indéfiniment. Ou, vous pouvez passer un paramètre de délai d'expiration comme -t 6h13mpour que le programme se termine automatiquement après une durée arbitraire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.