Wie kann ich den Computer über das Menü Eingabeaufforderung / Ausführen in den Ruhezustand versetzen?

144

Ich weiß, dass fast alles unter Windows, wie das Öffnen einer beliebigen Anwendung, über die Eingabeaufforderung oder über das Menü Ausführen ausgeführt werden kann.

Wie kann ich meinen Computer in den Ruhezustand versetzen oder herunterfahren ? Was ist der Befehl dafür?

Laser
quelle
Geben Sie an der Eingabeaufforderung shutdown ein und schauen Sie sich an, wie die Ausgabe unter XP und höher funktioniert.
user10547

Antworten:

128

Sie werden feststellen shutdown.exe, dass Sie Ihr Freund sind.

Andere nützliche Befehle finden Sie in diesem Beitrag:

Schlafcomputer (lesen Sie mehr unter https://superuser.com/a/463652/249349 )

Arbeitsstation sperren

Computer in den Ruhezustand versetzen

see answers by Scott Chamberlain and Eric L

Starte den Computer neu

Shutdown.exe -r -t 00

Den Computer herunterfahren

Shutdown.exe -s -t 00

EDIT / UPDATE:

Es scheint, dass der Ruhezustand eines Computers problematisch ist, wenn der Ruhezustand aktiviert ist.

Kopieren aus anderen Antworten:

Sie können entweder PsShutdown versuchen oder:

Der Befehl rundll32.exe powrprof.dll, SetSuspendState 0,1,0 für den Energiesparmodus ist korrekt. Wenn Sie den Energiesparmodus nicht ausschalten, wird jedoch der Energiesparmodus anstelle des Energiesparmodus aktiviert.

So geht's:

Öffnen Sie im Startmenü eine Eingabeaufforderung mit erhöhten Rechten, indem Sie cmd.exe eingeben, mit der rechten Maustaste klicken und Als Administrator ausführen auswählen. Geben Sie den folgenden Befehl ein:

powercfg -hibernate off
brandstaetter
quelle
21
Das Problem rundll32.exe powrprof.dll,SetSuspendState 0,1,0ist, dass es nicht so funktioniert, wie es sollte. SetSuspendStateversetzt den Computer in eine Art Hybrid-Energiesparmodus / Ruhezustand. Wenn Sie im Startmenü auf die Schaltfläche "Ruhezustand" klicken, können Sie den Ruhezustand Ihres Computers durch Drücken einer beliebigen Taste auf Ihrer Tastatur wiederherstellen. Wenn Sie diese Befehlszeile verwenden, wird make aufgrund des tieferen Energiesparmodus viel langsamer fortgesetzt und kann nur fortgesetzt werden, wenn Sie die Ein- / Aus-Taste an Ihrem Computer drücken. Es kann nicht für einen Tastendruck fortgesetzt werden. Also ... wie bringt man es dazu, dass es im normalen Standby-Modus schläft - wieder mit einem Tastendruck?
Corporate Geek
6
Die Abstimmungen sind nicht im geringsten ungerechtfertigt. Ihre Antwort behandelt die Frage nicht alleine. Leser sollten in der Lage sein, genügend nützliche Informationen aus einer Antwort zu sammeln, um das Problem zu lösen, ohne Links zu anderen Websites folgen zu müssen, die kaputt oder tot sein könnten.
Iszi
5
Abgelehnt, weil die gestellte Frage nicht beantwortet wurde: Selbst auf der verlinkten Seite funktioniert die beschriebene Methode zum Energiesparmodus nicht, wenn der Ruhezustand aktiviert ist.
Akurtser
4
Ich habe auch den Befehl "Ruhezustand" getestet und kann auch bestätigen, dass er nicht wie beabsichtigt funktioniert. Es hat nichts mit Hassen / Schleppen zu tun, aber wenn dieser Befehl nicht funktioniert, ist die Frage unbeantwortet, da dies der Hauptteil der Frage war.
RESPAWNED
6
rundll32sollte nicht zum Aufrufen verwendet werden, SetSuspendStateda die Signatur nicht mit der von erwarteten übereinstimmt rundll32. Siehe: support.microsoft.com/en-us/kb/164787 und msdn.microsoft.com/en-us/library/windows/desktop/… Der erste Parameter erhält Garbage anstelle von FALSE. Es ist der Grund, warum es Winterschlaf macht, anstatt einzuschlafen.
SergeyT
86

Die von anderen Benutzern bereitgestellten Methoden funktionieren nicht ordnungsgemäß, wenn auf einem Computer der Ruhezustand aktiviert ist, der Computer nicht über die Tastatur oder, was noch wichtiger ist, nicht über geplante Aufgaben aktiviert wird.

Eines der Sysinternals-Tools von Microsoft ist PsShutdown , das den Befehl verwendet , mit dem ein Computer psshutdown -d -t 0ordnungsgemäß in den Ruhezustand und nicht in den Ruhezustand versetzt wird

Scott Chamberlain
quelle
Erfordert die Erhebung zum Administrator
dsmtoday
3
Funktioniert für mich in Windows 10
Hans Løken
1
Funktioniert für mich in Win10x64 Version 1709. Führen Sie cmd mit Administrator-Benutzerkonto aus, aber ohne run as administratorRechtsklick-Option
Viktor Carlson,
3
Funktioniert bei mir mit Windows 10 (auch nicht als Admin).
DAB
3
Funktioniert in Windows 10 x64 Build 15063. Man muss PsTools herunterladen und psshutdown.exeaus dem Archiv kopieren, um zB C:\Windows\System32den Befehl ohne Pfadpräfix verwenden zu können. Man muss dann psshutdown -d -t 0mit Administratorrechten ausführen , um auszusetzen. Dies sollte die akzeptierte Antwort sein , da sie die Frage beantwortet, auch wenn keine Windows-Tools vorinstalliert sind.
Arch Linux Tux
19

Der Befehl rundll32.exe powrprof.dll,SetSuspendState 0,1,0für den Ruhezustand ist korrekt. Er wird jedoch anstelle des Ruhezustands in den Ruhezustand versetzt, wenn Sie den Ruhezustand nicht ausschalten.

So geht's:

Rufen Sie das Startmenü auf und öffnen Sie eine Eingabeaufforderung mit erhöhten cmd.exeRechten, indem Sie Folgendes eingeben und Als Administrator ausführen auswählen . Geben Sie den folgenden Befehl ein:

powercfg -hibernate off
Gaff
quelle
5
Ich denke, es ist die erste Antwort, die das Problem tatsächlich löst. Ich habe diese beiden Zeilen (-hibernate off first) gesetzt und eine Batch-Datei erstellt, die den PC in den Ruhezustand versetzt. Ein Problem dabei ist, dass der Ruhezustand im Wesentlichen deaktiviert wird, was nicht das ist, was ich wollte. Um dies zu beheben, habe ich eine geplante Aufgabe hinzugefügt, die beim Entsperren der Arbeitsstation ausgelöst wurde, um den Ruhezustand mit einem Stapel wieder zu aktivieren, dessen einzige Zeile " powercfg -hibernate off ". Dann habe ich eine Kurztaste für die erste Batch-Datei konfiguriert. Getan. Funktioniert wie ein Zauber, danke!
Akurtser
Das ist so komisch. Der Ruhezustand muss ausgeschaltet sein, bevor Sie richtig schlafen können? Gibt es einen Namen für den hybriden Ruhezustand, powrprof.dllwenn der Ruhezustand aktiviert ist? Ich würde es nur gerne wissen. Bezieht es sich auf einen der ACPI-Staaten?
Ehtesh Choudhury
4
rundll32sollte nicht zum Aufrufen verwendet werden, SetSuspendStateda die Signatur nicht mit der von erwarteten übereinstimmt rundll32. Siehe: support.microsoft.com/en-us/kb/164787 und msdn.microsoft.com/en-us/library/windows/desktop/… Der erste Parameter erhält Garbage anstelle von FALSE. Es ist der Grund, warum es Winterschlaf macht, anstatt einzuschlafen.
SergeyT
Funktioniert nicht unter Windows 10
T3rm1
@EhteshChoudhury, das Problem in diesem Fall ist, dass die Rundll32-Parameter falsch und völlig ungeeignet sind, sodass sie SetSuspendState mit den folgenden Parametern aufrufen: Hibernate: TRUE, ForceCritical: TRUE, DisableWakeEvents: TRUE. Das letzte Bit erklärt, warum Sie den PC nur mit dem Ein- / Ausschalter aufwecken können. Es ist nur ein Zufall, dass der Versuch, in den Ruhezustand zu wechseln, Ihren PC in Win7 in den Energiesparmodus versetzt, und wahrscheinlich auch, warum dies bei einigen Menschen nicht funktioniert.
SilverbackNet
10

NirCmd funktioniert unter Windows 8 (ich gehe davon aus, dass es auch unter Windows 7 funktioniert) → http://www.nirsoft.net/utils/nircmd.html
Der Befehl lautet standby, aber der Computer wird in den Energiesparmodus versetzt.

nircmd.exe standby

Wenn Sie den Hybridschlaf aktiviert haben, funktioniert er. Das heißt, der Computer wird in den Energiesparmodus versetzt und der Speicher wird bei einem Stromausfall auf die Festplatte kopiert.

Eric L
quelle
1
Dies funktioniert, ohne dass Sie zum Administrator aufsteigen müssen. Funktioniert mit oder ohne aktiviertem Ruhezustand. Funktioniert wie erwartet mit Hybridschlaf. Schöne Lösung für Win10.
Dienstag,
3

Sehen Sie sich das kostenlose Dienstprogramm von Wizmo an , das sehr viele Dinge kann.
Der gesuchte Befehl lautet wahrscheinlich:

Wizmo Standby

Harrymc
quelle
1
Wizmo hat das gleiche Problem wie rundll32.exe powrprof.dll,SetSuspendState 0,1,0- es versetzt den Computer in den Ruhezustand, nicht in den Schlaf
Andomar
2
Nein, seit Vista wird der Computer tatsächlich in den Hybrid-Ruhezustand versetzt . Wenn Sie dies nicht möchten, deaktivieren Sie den Hybridschlaf .
Harrymc
1
Wizmo Blackout funktionierte in Windows 8.1, 10. GROSSARTIG !!!!!!!!!!!!
YumYumYum
Wizmo arbeiten großartig. Leider löscht mein Enterprise-Virenscanner es, da es einige Sequenzen enthält, die mcafee glauben lassen, dass es einen Trojaner enthält .
Bastian
@ Bastian: McAfee war für einen Anwendungsautor (aus eigener Erfahrung) immer eine schlechte Nachricht.
Harrymc
3

Ich habe eine Verknüpfung für erstellt rundll32.exe powrprof.dll,SetSuspendState 0,1,0(auch mit 0,0,0 ausprobiert), aber das Ausführen der Verknüpfung schien meinen PC in den Ruhezustand zu versetzen. Ich konnte den PC nicht mit der Tastatur aufwecken. Ich musste den Netzschalter drücken, und der PC zeigte die Mainboard-Post-Nachrichten usw.

Nachdem ich das Windows-API-Dokument gelesen hatte , erstellte ich ein sehr einfaches Programm mit nur 3 Eingabezeilen. Ich habe die ausführbare Datei, die ich kompiliert habe, auf diese Seite hochgeladen (klicken Sie auf "SleepTest.exe") , aber diese Datei kann nach einer Weile gelöscht werden (dies ist eine kostenlose Datei-Hosting-Site, die ich gerade über eine schnelle Google-Suche gefunden habe).

Wenn Sie mir nicht vertrauen (was völlig in Ordnung ist) oder die Datei gelöscht wurde, können Sie den Code natürlich selbst kompilieren. Sie müssen "PowrProf.lib" zu den zusätzlichen Abhängigkeiten des Linkers hinzufügen.

#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.

int main()
{
    SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
    return 0;
}

rundll32.exe powrprof.dll,SetSuspendState 0,1,0scheint dasselbe zu tun, aber irgendwie hat das obige Programm den Computer nicht in den Ruhezustand versetzt. Ich konnte den PC sofort aufwecken (keine Mainboard-Nachrichten usw.), indem ich eine beliebige Taste auf der Tastatur drückte.

Verdammtes Gemüse
quelle
2

Sie können die Suspend- oder Hibernate-Optionen über die Befehlszeile initiieren, wie unten angegeben und in diesem Artikel beschrieben .

%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState

Wenn Ihr Computer so eingestellt ist, dass er den Ruhezustand zulässt, wird mit dem obigen Befehl der Ruhezustand eingeleitet. Wenn die Ruhezustand-Funktion deaktiviert ist, wird sie in den Standby-Zustand versetzt. Wie andere Benutzer zuvor geantwortet haben, shutdown.exe /?bieten sich viele Möglichkeiten zum Herunterfahren.

Blauer Teufel
quelle
1
rundll32sollte nicht zum Aufrufen verwendet werden, SetSuspendStateda die Signatur nicht mit der von erwarteten übereinstimmt rundll32. Siehe: support.microsoft.com/en-us/kb/164787 und msdn.microsoft.com/en-us/library/windows/desktop/… Der erste Parameter erhält Garbage anstelle von FALSE, sodass er immer in den Ruhezustand wechselt, anstatt zu wechseln schlafen.
SergeyT
1

Sie müssen zuerst den Ruhezustand in Windows deaktivieren und dann den Computer in den Energiesparmodus versetzen . Verwenden Sie die folgenden zwei Befehle:

powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

und dafür umgekehrte Wirkung, Hibernating der Computer - Befehle zur Verfügung unter:

powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate
Mohsen Abasi
quelle
3
rundll32ist nicht zum Anrufen gedacht SetSuspendStateund sollte dafür nicht verwendet werden. Der erste Parameter erhält Müll anstelle des korrekten Wertes. Es wird also immer in den Ruhezustand versetzt, anstatt in den Ruhezustand zu wechseln (wenn Sie den Ruhezustand überhaupt nicht deaktiviert haben).
SergeyT
@SergeyT Es scheint für mich zu funktionieren (nach Deaktivierung des Ruhezustands); Wollen Sie damit sagen, dass dies Windows beschädigt?
Montag,
Es beschädigt den Stack (da rundll32 eine andere Aufrufsignatur erwartet, werden Dinge vom Stack entfernt, die nicht tatsächlich dort abgelegt wurden). Dies führt zu unerwartetem Verhalten.
Imoatama
@imoatama schön zu finden ...
Masterxilo
1

Hier ist ein Artikel über die Verwendung von CLI zum Herunterfahren.

Microsoft stellt PsTools bereit, mit denen Sie die CLI zusammen mit anderen nützlichen Tools herunterfahren können. Das können Sie hier bekommen .

Wonton
quelle
1

nur QUICK SLEEPER funktioniert bei mir (funktioniert unter Windows 7,8,10).

PS-Quellcode hier verfügbar .

T.Todua
quelle
1
Gibt es eine Möglichkeit, einen Link zu der Website bereitzustellen, von der Sie die Datei erhalten haben? Das direkte Verknüpfen mit der Download-Datei, insbesondere bei Verwendung von ga URL Shortener, kann den Eindruck erwecken, dass die Datei besonders verdächtig ist, da es sich um eine Taktik handelt, die häufig von Malware-Autoren angewendet wird.
Mokubai
ok, ich habe den Link zur offiziellen Seite aktualisiert.
T.Todua
1

Wenn Sie Python (mit pywin32) zur Verfügung haben, können Sie diese SetSuspendState-Funktion auch direkt aufrufen mit:

import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)

Dies kann einfach in eine Batch-Datei oder eine Shortcut-Sortierung eingefügt werden:

pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"

Wenn Sie also keine .py-Dateien mit dem Interpreter verknüpft haben, können Sie einfach auf den Link doppelklicken.

Dash-Tom-Bang
quelle
1

Der Abschaltteil der Frage ist für alle klar.
shutdown.exe /?Zeigt alle Optionen zum Herunterfahren / Neustarten / Booten erweiterter Optionen / Booten der Firmware an.

Aber ich sehe so viel Aufregung um den Schlaf-Teil.
Jeder bekommt es, rundll32.exedas nicht zum Aufrufen von Zufallsfunktionen verwendet werden sollte, und es funktioniert hier nur ganz zufällig für den Ruhezustand. Aber das ist die Natur von Windows - eine Black Box, in der sich die Leute herumgetrieben haben und die Hunderte von Workarounds gefunden hat, um einen Job zu erledigen.

Es gibt so viele " richtige " Lösungen für externe Tools , aber ich kann anscheinend kein natives (hybrides / pinvoke / was auch immer) Batch-Skript finden , auch wenn diese Frage über die Jahre hinweg aktiv geblieben ist.
Also hier ist meine einfache power_sleep.bat :

@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%" 
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit

Es funktioniert sogar als großer einzeiliger Befehl:

powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
AveYo
quelle