Mit welchen cmd Befehl kann ich meinen PC auf Standby setzen?
Ist es möglich, einen Windows 10 Computer mithilfe des ausführen-programms (windows-taste+R) oder des cmd Programms in den Ruhemodus zu versetzen? Wenn ja, mit welchem Befehl?
2 Antworten
für den Ruhezustand :
shutdown /h
oder
rundll32.exe powrprof.dll,SetSuspendState
Standby gestaltet sich etwas schwieriger:
Als pure Batch:
Standby.cmd (muss als Administrator ausgeführt werden)
rem von Ruhezustand auf Standby umschalten
powercfg /hibernate off
rundll32.exe powrprof.dll,SetSuspendState
rem das folgende wird erst nach dem Aufwachen ausgeführt
rem nach dem aufwachen ruhezustand wieder einschalten
powercfg /hibernate on
Eleganter arbeitet ein Powershell-einzeiler:
standby.cmd (kein Admin nötig)
powershell.exe -C "$code='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PCSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $code -namespace Dll; [Dll.Import]::PCSleep();"
...eigentlich ist das der Übertrick... Ein C# Programm verpackt in ein PowershellSript, welches wiederum in einen einzeiligen Batchbefehl verpackt wurde.
Diese Zeile ist leider zu lang für den Aufruf über WIN+R. Entweder man gibt direkt in ein Consolfenster ein, oder (was angesichts des Umfangs der Zeile die bessere Lösung ist) als Batchdatei.
Ich eben lange Weile...
Hier eine Kleine Batch mit Auswahl und automatischer DefaultOption.
@echo off
rem Zeit, nach welcher die Defaultoption ausgeführt wird
set "defaultTimer=5"
set "defaultOption=R"
echo [R]uhezustand [S]tandby
echo [A]bbruch
choice /c RSA /t %defaultTimer% /d %defaultOption%
if %Errorlevel% equ 1 (set "State=1")
if %Errorlevel% equ 2 (set "State=0")
rem bei Abbruch Batch beenden...
if %Errorlevel% equ 3 (exit /b)
powershell.exe -C "$code='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(int State,bool forceCritical,bool disableWakeEvent);public static void PCSleep(){SetSuspendState(%State%,false,false); }';add-type -name Import -member $code -namespace Dll; [Dll.Import]::PCSleep();"
rundll32.exe powrprof.dll,SetSuspendState
Eingeben.
Dankeschön😀