Як відключити режим сну через CMD?


10

За допомогою лише командного рядка, чи можна відключити режим сну при закритті кришки ноутбука?


1
З цікавості, це лише суто теоретичне запитання чи є якась конкретна причина для цього? Я прошу, бо можуть бути й інші способи досягти цього, якщо це так.
Shinrai

Ну, мені потрібно це робити віддалено, і у мене є лише командна швидкість доступу до ноутбука.
kb67

1
Може не простіше просто ходити за користувачем ноутбука через це? Я вважаю, що коментар iglvzx правильний, і немає способу легко змінити дію кришки за допомогою ручного редагування реєстру.
Shinrai

Ну, я виявив помилку, є спосіб зробити це через powercfg, але я думаю, що це достатньо задіяно, що все-таки може бути простіше просто говорити про них через нього.
Shinrai

Відповіді:


13

Команда, яку ви шукаєте, - powercfg. Відкрийте командний рядок і введітьpowercfg –q >poweroptions.txt

Це створить текстовий файл (poweroptions.txt) з усіма GUID для налаштувань живлення. Відкрийте файл poweroptions.txt і знайдіть GUID для поточної схеми живлення. Це має бути в самому верху файлу і матиме вигляд приблизно так:

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

Скопіюйте та вставте лише GUID (у цьому прикладі - 381b4222-f694-41f0-9685-ff5bb260df2e) у новий порожній текстовий файл. Потім прокрутіть і знайдіть GUID підгрупи для дій «Кнопки живлення та кришки». Скопіюйте та вставте цей GUID у той самий новий текстовий файл, як окремий рядок. Тепер знайдіть GUID налаштування живлення для “Закриття дії кришки” та скопіюйте та вставте його під інші два. Також врахуйте номери "Індекс можливих параметрів" для параметра, для якого потрібно встановити його (відключено - 000). Вам потрібно буде запустити команду один раз для кожної схеми живлення, постійного та змінного струму, щоб охопити обидві ситуації. Команда буде виглядати приблизно так:

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

Я перевірив це, і моя команда виглядає приблизно так:

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

Друга команда призначена для того, коли користувач працює від акумулятора і точно такий же, за винятком того, що ми використовуємо комутатор –SETDCVALUEINDEX.

Ось офіційна сторінка параметрів командного рядка Powercfg від Майкрософт для подальшого ознайомлення.


Привіт, Девіде - Я радий бачити, що в Microsoft є люди, які займаються інформаційними роботами на таких сайтах, це приємно. Не обов'язково підписувати свої повідомлення на будь-якому сайті Stack Exchange, хоча і насправді не рекомендується - саме для цього використовується ваш значок користувача.
Shinrai

Shrinrai, Вибачте, я відвідую так багато різних форумів щодня, що важко тримати всі функції прямо. Я перегляну свій значок користувача.
затоплення

1
powercfgздається прекрасним прикладом "як не написати інструмент командного рядка": /
Мартін фон Віттіч

7

Тема тут: Як відключити режим сну через CMD?

Якщо припустити, що ви налаштували кришку свого ноутбука, щоб нічого не робити, коли він закритий:

powercfg -x -standby-timeout-ac 0

(якимось чином перемикач -x не працює для мене, тому я змінив його на / x, і він працює. решта комутаторів залишаються -standby-timeout-ac )

Як показано на сторінці Technet Microsoft "Параметри командного рядка Powercfg" ( https://technet.microsoft.com/en-us/library/cc748940(v=ws.10).aspx ), команда така:

> powercfg -x значення налаштування (значення, яке ви дивитесь, - "очікування")

отже: > powercfg -x -standby-timeout-ac хвилин (відключити = 0 хвилин)

ПРИМІТКА: ac = підключено до електроенергії / dc = працює від батареї (тому, якщо ви хочете відключити сплячий режим під час роботи від акумулятора, замініть "ac" на "dc" у команді, так воно буде виглядати powercfg -x -standby-timeout-dc 0)


1
Це працює на Win 7 та Win 10, дякую! Єдина вимога - запустити CMD як адміністратор.
TPAKTOPA

1
Проблема -xможе бути в тому, що це був повний тире, а не звичайний негативний символ.
Joel Coehoorn

2

На підставі попередньої відповіді я написав пакетний файл.

@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

Вам потрібно змінити %% i на% i, якщо ви намагаєтеся запускати ці команди безпосередньо в командному рядку (поза пакетом).


1

На основі сценарію від Джеремі та Йонаса Хердіка я написав цей скрипт перемикання, який не залежить від локалізації (так працює і з німецькими вікнами) і допомагає мені відключити і відновити (до того, що колись було раніше) дію закриття кришки під час встановлення мого ноутбук до док-станції (де кришку потрібно закрити). І так, не забудьте повторно активувати поточну схему повноважень після кожної зміни, як уже згадував 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%

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 має довгу сторінку з параметрами powercfgкомандного рядка.

Ви, ймовірно, будете читати на -xкомутаторі. powercfgХоча я лише змінював сплячі настройки.


1
powercfgне має жодних варіантів зміни lid close action. Параметри живлення зберігаються в Реєстрі під, HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicyале незрозуміло, які значення у двійкових даних ідуть з яким параметром.
iglvzx

Дякуємо за відгук. Я був невпевнений, але радий, що зв’язався з тим самим місцем, що і Давид :-)

0

І ще одна річ. Не забудьте додати "powercfg -S% StrOne%" в кінці сценарію, щоб активувати налаштування. Інші настройки будуть просто встановлені, але не будуть збережені / активовані.


0

Спробуйте NoDoz . Після встановлення ви можете запустити nodozз підказки cmd (або терміналу PowerShell), щоб утримувати систему від сну нескінченно. Або ви можете передавати параметр тайм-ауту, якби -t 6h13mпрограма автоматично закінчувалася через довільну кількість часу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.