Jak wyłączyć tryb uśpienia za pomocą CMD?

10

Czy tylko przy pomocy wiersza polecenia można wyłączyć tryb uśpienia podczas zamykania pokrywy laptopa?

kb67
źródło
1
Z ciekawości jest to pytanie czysto teoretyczne, czy jest jakiś konkretny powód, dla którego musisz to zrobić? Pytam, ponieważ mogą istnieć inne sposoby osiągnięcia tego celu.
Shinrai
Cóż, muszę to zrobić zdalnie i mam tylko polecenia z laptopa.
kb67
1
Czy nie może być łatwiej po prostu przeprowadzić użytkownika laptopa? Myślę, że komentarz iglvzx jest słuszny i nie ma sposobu na łatwą zmianę akcji lidera bez ręcznej edycji rejestru.
Shinrai
Cóż, okazało się, że się mylę, istnieje sposób, aby to zrobić za pomocą powercfg, ale myślę, że jest to wystarczająco zaangażowane, aby nadal łatwiej było po prostu z nimi porozmawiać.
Shinrai

Odpowiedzi:

13

Polecenie, którego szukasz, to powercfg. Otwórz wiersz polecenia i wpiszpowercfg –q >poweroptions.txt

Spowoduje to utworzenie pliku tekstowego (poweroptions.txt) ze wszystkimi identyfikatorami GUID dla ustawień zasilania. Otwórz plik poweroptions.txt i znajdź identyfikator GUID dla bieżącego schematu zasilania. Powinien znajdować się na samej górze pliku i będzie wyglądał następująco:

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

Skopiuj i wklej tylko identyfikator GUID (w tym przykładzie - 381b4222-f694-41f0-9685-ff5bb260df2e) do nowego pustego pliku tekstowego. Następnie przewiń i znajdź identyfikator GUID podgrupy dla akcji „Przyciski zasilania i pokrywa”. Skopiuj i wklej ten identyfikator GUID do tego samego nowego pliku tekstowego jako osobny wiersz. Teraz znajdź identyfikator GUID ustawienia mocy dla „akcji zamykania pokrywy” i skopiuj i wklej ten jeden pod pozostałymi dwoma. Zwróć także uwagę na numery „Możliwych indeksów ustawień” dla opcji, którą chcesz ustawić (wyłączone jest 000). Będziesz musiał uruchomić polecenie raz dla każdego schematu zasilania, zasilania DC i AC, aby uwzględnić obie sytuacje. Polecenie będzie wyglądać następująco:

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

Przetestowałem to i moje polecenie wygląda następująco:

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

Drugie polecenie jest, gdy użytkownik jest na baterii i jest dokładnie takie samo, z wyjątkiem tego, że używamy przełącznika –SETDCVALUEINDEX.

Oto oficjalna strona opcji wiersza polecenia Powercfg firmy Microsoft w celu uzyskania dalszych informacji.

mieszkańcy
źródło
Cześć David - Cieszę się, że Microsoft ma ludzi docierających do takich witryn, to zachęcające. Nie trzeba jednak podpisywać swoich postów w żadnej witrynie Stack Exchange, a wręcz zniechęcać - po to jest odznaka użytkownika.
Shinrai
Shrinrai, przepraszam, odwiedzam tak wiele różnych forów każdego dnia, że ​​trudno jest zachować wszystkie funkcje. Spojrzę na moją odznakę użytkownika.
dwolters
1
powercfgwydaje się dobrym przykładem „jak nie pisać narzędzia wiersza poleceń”: /
Martin von Wittich
7

Temat jest tutaj: Jak wyłączyć tryb uśpienia za pomocą CMD?

Zakładając, że skonfigurowałeś pokrywę laptopa, aby nic nie robić po zamknięciu:

powercfg -x -standby-timeout-ac 0

(jakoś przełącznik -x nie działa dla mnie, więc zmieniłem go na / x i działa. reszta przełączników pozostaje -standby-timeout-ac )

Jak pokazano na stronie Microsoft Technet „Opcje wiersza polecenia Powercfg” ( https://technet.microsoft.com/en-us/library/cc748940(v=ws.10).aspx ), polecenie to:

> wartość ustawienia powercfg -x (wartość, na którą patrzysz, to „czuwanie”)

dlatego: > powercfg -x -standby-timeout-ac minut (wyłącz = 0 minut)

UWAGA: ac = podłączony do zasilania elektrycznego / dc = działa na akumulatorze (więc jeśli chcesz wyłączyć tryb uśpienia podczas pracy na zasilaniu akumulatorowym, zamień „ac” na „dc” w poleceniu, aby wyglądało jak powercfg -x -standby-timeout-dc 0)

wikilon
źródło
1
Działa to na Win 7 i Win 10, dzięki! Jedyny wymóg - aby uruchomić CMD jako Administrator.
TPAKTOPA
1
Problemem -xmoże być to, że był to pełny myślnik, a nie zwykły symbol negatywny.
Joel Coehoorn,
2

Na podstawie poprzedniej odpowiedzi napisałem plik wsadowy.

@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

Musisz zmienić %% i na% i, jeśli próbujesz uruchomić te polecenia bezpośrednio w wierszu polecenia (poza partią).

Jeremy
źródło
1

Na podstawie skryptu Jeremy'ego i Jonasa Herdicka napisałem ten skrypt przełączający, który jest niezależny od lokalizacji (więc działa również z niemieckimi oknami) i pomaga mi wyłączyć i przywrócić (do tego, co kiedykolwiek było) działanie zamykania pokrywy podczas umieszczania mojego notebook do stacji dokującej (gdzie pokrywa musi zostać zamknięta). I tak, nie zapomnij ponownie aktywować obecnego schematu mocy po każdej zmianie, jak wspomniano w 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
źródło
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
źródło
0

Microsoft ma długą stronę na temat powercfgopcji wiersza poleceń.

Prawdopodobnie będziesz czytał na -xprzełączniku. powercfgJednak tylko zmieniałem ustawienia hibernacji.


źródło
1
powercfgnie ma żadnych opcji zmiany lid close action. Opcje zasilania są przechowywane w Rejestrze, HKEY_CURRENT_USER\Control Panel\PowerCfg\GlobalPowerPolicyale nie jest jasne, które wartości w danych binarnych pasują do których ustawień.
iglvzx
Dzięki za opinie. Nie byłem pewien, ale cieszę się, że
0

Jeszcze jedna rzecz. Pamiętaj, aby dodać „powercfg -S% StrOne%” na końcu skryptu, aby aktywować ustawienia. Pozostałe ustawienia zostaną tylko ustawione, ale nie zostaną zapisane / aktywowane.

KallePower
źródło
0

Wypróbuj NoDoz . Po zainstalowaniu można uruchomić nodozz wiersza polecenia cmd (lub terminala PowerShell), aby system nie spał w nieskończoność. Możesz też podać parametr limitu czasu, np. -t 6h13mAby program automatycznie zakończył się po upływie dowolnego czasu.

Nick Spreitzer
źródło