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?
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?
Réponses:
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
.
powercfg
semble être un bel exemple de "comment ne pas écrire un outil en ligne de commande": /
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
)
-x
pourrait être qu'il s'agissait d'un tiret plein, pas du symbole négatif normal.
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).
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%
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
Microsoft a une longue page sur les powercfg
options de ligne de commande.
Vous lirez probablement sur l' -x
interrupteur. Je n'ai cependant utilisé que powercfg
pour modifier les paramètres de mise en veille prolongée.
powercfg
n'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\GlobalPowerPolicy
mais il n'est pas clair quelles valeurs dans les données binaires vont avec quel paramètre.
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.
Essayez NoDoz . Une fois installé, vous pouvez exécuter à nodoz
partir 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 6h13m
pour que le programme se termine automatiquement après une durée arbitraire.