Wie kann ich Windows über eine Bat-Datei herunterfahren, neu starten oder abmelden?

660

Ich habe Remotedesktopverbindung verwendet , um auf eine Workstation zu gelangen. In dieser Umgebung kann ich die Energieoptionen im Startmenü jedoch nicht verwenden. Ich brauche eine alternative Möglichkeit zum Herunterfahren oder Neustarten.

Wie steuere ich den Energiezustand meines Computers über die Befehlszeile?

Keng
quelle

Antworten:

1164

Die gebräuchlichsten Verwendungsmöglichkeiten des shutdownBefehls sind:

  • shutdown -s - Abschaltet.
  • shutdown -r - Startet neu.
  • shutdown -l - Meldet sich ab.
  • shutdown -h - Winterschlaf.

    Hinweis: Es gibt eine häufige Gefahr, bei der Benutzer denken, -hdass dies "Hilfe" bedeutet (was für jedes andere Befehlszeilenprogramm der shutdown.exeFall ist ... außer wenn dies "Ruhezustand" bedeutet). Sie laufen dann shutdown -hund schalten versehentlich ihre Computer aus. Achten Sie darauf.

  • shutdown -i- "Interaktiver Modus". Anstatt eine Aktion auszuführen, wird ein GUI-Dialogfeld angezeigt.

  • shutdown -a - Bricht einen vorherigen Befehl zum Herunterfahren ab.

Die obigen Befehle können mit diesen zusätzlichen Optionen kombiniert werden:

  • -f- Erzwingt das Beenden von Programmen. Verhindert, dass der Herunterfahrvorgang hängen bleibt.
  • -t <seconds>- Legt die Zeit bis zum Herunterfahren fest. Verwenden -t 0unmittelbar zur Abschaltung.
  • -c <message>- Fügt eine Meldung zum Herunterfahren hinzu. Die Nachricht wird im Ereignisprotokoll gespeichert.
  • -y - Erzwingt eine "Ja" -Antwort auf alle Fragen zum Herunterfahren.

    Hinweis: Diese Option ist in keiner offiziellen Dokumentation dokumentiert. Es wurde von diesen StackOverflow-Benutzern entdeckt .


Ich möchte sicherstellen, dass neben dieser auch einige andere wirklich gute Antworten erwähnt werden. Hier sind sie in keiner bestimmten Reihenfolge.

Keng
quelle
188
Lesen Sie in der nächsten Antwort, wie Sie -f (für Kraft) verwenden. Sagt der Typ, der es nicht getan hat und jetzt einen Computer hat, der am Wochenende auf der anderen Seite des Planeten
heruntergefahren ist
11
+1 nur das, was ich /<switch>anstelle von verwendet habe -<switch>. Der Hilfeabschnitt verwendet auch /.
Legends2k
Meine Erfahrung: Wenn Sie die Option -s (Herunterfahren) auf dem Remotedesktop verwenden (wie im OP erwähnt), wird nur der Remotedesktop beendet, der Remotecomputer bleibt jedoch unberührt.
Heri
3
Ich benutze "-r" für Remote-Maschinen. Es wird also neu gestartet und muss nicht manuell eingegriffen werden.
GranadaCoder
6
Wenn Sie sich auf einem Remotecomputer befinden, möchten Sie möglicherweise auch die -fOption hinzufügen , um den Neustart zu erzwingen. Andernfalls wird Ihre Sitzung möglicherweise geschlossen und eine hartnäckige App kann das System hängen lassen. So erzwingen Sie einen sofortigen Neustart : shutdown -t 0 -r -f. Für eine freundlichere Option "Geben Sie ihnen etwas Zeit" können Sie Folgendes verwenden : shutdown -t 30 -r. Das -fist durch das Timeout impliziert. (aus der vorgeschlagenen Bearbeitung von Mateusz Konieczny )
Ole VV
375

Wenn Sie sich auf einem Remotecomputer befinden, möchten Sie möglicherweise auch die Option -f hinzufügen, um den Neustart zu erzwingen . Andernfalls wird Ihre Sitzung möglicherweise geschlossen und eine hartnäckige App kann das System hängen lassen.

Ich benutze dies immer dann, wenn ich einen sofortigen Neustart erzwingen möchte:

shutdown -t 0 -r -f

Für eine freundlichere Option "Geben Sie ihnen etwas Zeit" können Sie Folgendes verwenden:

shutdown -t 30 -r

Wie Sie in den Kommentaren sehen können, wird das -f durch das Timeout impliziert.

Brutus 2006 ist ein Dienstprogramm, das eine grafische Benutzeroberfläche für diese Optionen bietet.

JosephStyons
quelle
15
Beim Lesen der Hilfe zum Herunterfahren unter Windows 8.1 wird Folgendes angezeigt: "Wenn die Zeitüberschreitung größer als 0 ist, wird der Parameter / f impliziert." Und da das Standardzeitlimit 30 Sekunden beträgt, ist es meiner Meinung nach vorzuziehen, etwas Zeit für das saubere Herunterfahren zu geben, und dann erfolgt das erzwungene Herunterfahren nach dem Zeitlimit.
Zitrax
2
Das ist ein guter Punkt. Ich glaube, als ich das schrieb, war das Betriebssystem, das ich verwendete, Windows XP. Ich sehe, dass die Bemerkung "/ f impliziert" auch in Windows 7 enthalten ist. Ich habe das Beispiel entsprechend geändert.
JosephStyons
2
Standardmäßig haben sie 30 Sekunden. Ich benutze für sofort: shutdown / r / t 0 und für freundlich: shutdown / r
dzampino
81

Niemand hat die -mOption zum Remote-Herunterfahren erwähnt:

shutdown -r -f -m \\machinename

Ebenfalls:

  • Der -rParameter führt zu einem Neustart (was normalerweise auf einem Remotecomputer gewünscht wird, da das physische Starten möglicherweise schwierig ist).
  • Die -fParameteroption erzwingt den Neustart.
  • Sie müssen natürlich über die entsprechenden Berechtigungen verfügen, um den Remotecomputer herunterfahren zu können.
Pennen
quelle
2
Kann der Computername eine IP-Adresse sein? Können Sie das über das Internet tun?
Mcmillab
Wenn Sie über auf das Gerät zugreifen können \\IP.AD.DR.ESS(dh die erforderlichen Ports sind offen und Sie verfügen über die erforderlichen Berechtigungen), sollte dies über das Internet funktionieren.
Timothy Zorn
Ich habe es zuerst nur mit -r versucht und es hat nicht funktioniert, weil ich ein Remote-Herunterfahren wollte. Es funktionierte mit shutdown -r -m. -f wurde nicht benötigt.
Dchris
38

Ursprüngliche Antwort: Okt. 2008

Du hast auch alles " rundll32.exe shell32.dll" Serie:

(siehe Update unten)

  • rundll32.exe user.exe,**ExitWindows** [Schnelles Herunterfahren von Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Windows neu starten]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

wo nsteht für:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - POWEROFF

(kann kombiniert werden -> 6 = 2 + 4 FORCE REBOOT)


Update April 2015 (6+ Jahre später):

1800 INFORMATION weist in den Kommentaren freundlicherweise darauf hin :

Nicht rundll32.exefür diesen Zweck verwenden. Es wird erwartet, dass die Funktion, die Sie in der Befehlszeile übergeben haben, eine sehr spezifische Methodensignatur hat - sie stimmt nicht mit der Methodensignatur von überein ExitWindows.

Raymond CHEN schrieb:

Die für aufgerufene Funktionen erforderliche Funktionssignatur rundll32.exelautet:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

Das hat die Leute nicht davon abgehalten rundll32, zufällige Funktionen aufzurufen, die nicht von rundll32, wie user32 LockWorkStationoder aufgerufen werden sollen user32 ExitWindowsEx.

(Hoppla)

Die tatsächliche Funktionssignatur für ExitWindowsEx lautet:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

Und um es kristallklar zu machen:

Rundll32 ist ein Überbleibsel von Windows 95 und seit mindestens Windows Vista veraltet, da es gegen viele moderne technische Richtlinien verstößt.

VonC
quelle
3
Was ist der Unterschied zwischen Herunterfahren und Ausschalten?
Asdfg
17
@Asdfg heute? keiner. Für NT4 und früher unterstützte das Motherboard nicht immer das Ausschalten, sondern nur das Herunterfahren (die Fenster waren vollständig geschlossen, aber der PC war immer noch mit Strom versorgt). Nur beim Ausschalten (sofern die Hardware dies zu diesem Zeitpunkt unterstützte) wurden die Fenster geschlossen und die Stromversorgung unterbrochen. Heute tun dies sowohl das Herunterfahren als auch das Ausschalten.
VonC
2
Verwenden Sie für diesen Zweck nicht rundll32.exe. Es wird erwartet, dass die Funktion, die Sie in der Befehlszeile übergeben haben, eine sehr spezifische Methodensignatur hat - sie stimmt nicht mit der Methodensignatur von ExitWindows überein.
1800 INFORMATION
2
@ 1800INFORMATION sehr guter Punkt. Ich habe die Antwort umgeschrieben, um zu verdeutlichen, dass dies keine gültige Option ist.
VonC
3
Um fair zu sein, spielt es jedoch keine Rolle, welche Art von Speicherverlust oder Stapelbeschädigung Sie verursachen, wenn Sie den PC sofort herunterfahren.
PRMan
10

Ein weiterer kleiner Tipp: Wenn ich die Batch-Datei-Route gehe, möchte ich sie abbrechen können, falls ich sie versehentlich ausführe. Die Batch-Datei ruft also das Herunterfahren auf, lässt Sie jedoch anschließend an der Eingabeaufforderung zurück.

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

Da es sich um einen Timer handelt, erhalten Sie ungefähr den gleichen Nervenkitzel wie bei der Jagd auf dem Oregon Trail .

Gavin
quelle
1
Sie können eine Pause in die
Badedatei einfügen
@ rsk82, es war eine unglückliche Einschränkung meiner TRS-80-Kopie von Oregon Trail, gut mit dem Tippen durchzukommen, aber ehrlich gesagt habe ich immer daran gedacht, dass es betrügt, und mein Bruder wurde wütend, wenn ich es tat. Ich sage nur: Warum willst du meinen Bruder verärgern?
Gavin
7

Beim Remoten auf einem Computer (Ziel ist ohnehin Windows XP; ich bin mir nicht sicher, welches Ziel Windows Vista ist), sollte das Herunterfahren im Startmenü durch "Verbindung trennen" oder ähnliches ersetzt werden. Es sollte jedoch eine Funktion namens "Windows-Sicherheit" geben, die dies auch tut das gleiche wie Ctrl+ Alt+, Endwie von Owen gezeigt.

Carl
quelle
Früher habe ich diese Methode verwendet, aber sie funktioniert nicht mehr, die Befehlszeile ist es.
user742864
Ich habe auch ein Gadget mit Schaltflächen zum Herunterfahren, Neustarten, Ruhezustand und Sperren, die in RDP funktionieren.
user742864
7

Sie sind sich dessen wahrscheinlich bewusst, aber nur für den Fall: Es ist viel einfacher, einfach shutdown -r(oder einen beliebigen Befehl) in das Feld "Ausführen" einzugeben und die Eingabetaste zu drücken.

Spart, dass Batch-Dateien überall herumliegen.

Dean Rather
quelle
yep ... Ich möchte nur, dass der Doppelklick dort sitzt ... dafür ist auch die -r bat-Datei gedacht; o)
Keng
17
Achten Sie darauf, es nicht in Programme-> Start zu setzen :)
Dean Rather
aw .. und merkwürdiges Verhalten wird erhalten, wenn der Code in einer shutdown.bat-Datei platziert wird. Versuch es!
:)
6

Ich würde dies in Notepad oder WordPad für einen grundlegenden Abmeldebefehl schreiben :

@echo off
shutdown -l

Dies entspricht im Wesentlichen dem manuellen Klicken auf Start und Abmelden, ist jedoch nur geringfügig schneller, wenn Sie die Batchdatei bereit haben.

Peter Mortensen
quelle
5

Ich bin zu spät zur Party, habe diese Antwort aber noch nicht gesehen. Wenn Sie keine Batchdatei verwenden oder den Befehl eingeben möchten. Sie können einfach den Fokus auf den Desktop setzen und dann Alt+ verwenden F4.

Windows fragt Sie, was Sie tun möchten, wählen Sie Herunterfahren oder Neustart.

Screenshots und sogar ein Video finden Sie unter: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

msoft
quelle
3
@Keng, Lesen des eigentlichen Problems "Ich kann die Funktion zum Herunterfahren / Neustarten im Startmenü nicht verwenden" scheint mir, dass Sie wissen möchten, wie das geht. Die Befehlszeile ist eine Lösung, die Tastatur eine andere. Dies kann anderen Benutzern helfen, die auf diese Frage stoßen und nur eine einfache Lösung zum Herunterfahren oder Neustarten wünschen.
Msoft