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

Ich habe Remotedesktopverbindung verwendet, um auf eine Arbeitsstation zuzugreifen. Aber in dieser Umgebung kann ich die Energieoptionen im Startmenü nicht verwenden. Ich brauche eine alternative Möglichkeit zum Herunterfahren oder Neustarten.

Wie kann ich den Energiestatus meines Computers über die Befehlszeile steuern?

Lösung

Die gebräuchlichsten Methoden zur Verwendung des Befehls shutdown sind:

  • shutdown -s - Fährt herunter.

  • shutdown -r - Startet neu.

  • shutdown -l - Meldet sich ab.

  • shutdown -h - Hiberniert.

    Hinweis: Es gibt einen häufigen Fallstrick, bei dem Benutzer denken, dass -h "help" bedeutet (was es für jedes andere Kommandozeilenprogramm tut... außer shutdown.exe, wo es "hibernate" bedeutet). Sie führen dann shutdown -h aus und schalten ihren Computer versehentlich aus. Darauf sollten Sie achten.

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

  • shutdown -a` - Bricht einen vorherigen Shutdown-Befehl ab.

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

  • -f - Zwingt Programme zum Beenden. Verhindert, dass der Shutdown-Prozess stecken bleibt.

  • -t - Legt die Zeit bis zum Herunterfahren fest. Verwenden Sie -t 0, um sofort herunterzufahren.

  • -c - Fügt eine Nachricht zum Herunterfahren hinzu. Die Nachricht landet im Ereignisprotokoll.

  • -y - Erzwingt eine "ja" Antwort auf alle Shutdown-Anfragen.

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


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

Kommentare (7)

Wenn Sie sich auf einem entfernten Rechner befinden, können Sie auch die Option -f hinzufügen, um den Neustart zu erzwingen. Andernfalls kann Ihre Sitzung geschlossen werden und eine hartnäckige Anwendung kann das System zum Stillstand bringen.

Ich verwende diese Option immer dann, wenn ich einen sofortigen Neustart erzwingen möchte:

shutdown -t 0 -r -f

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

shutdown -t 30 -r

Wie Sie in den Kommentaren sehen können, ist das -f durch die Zeitüberschreitung impliziert.

1utus 2006 ist ein Dienstprogramm, das eine grafische Benutzeroberfläche für diese Optionen bereitstellt1.

Kommentare (3)

Ursprüngliche Antwort: Okt. 2008

Sie haben auch alle "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

wobei n für steht:

  • 0 - LOGOFF
  • 1 - HERUNTERFAHREN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - AUSSCHALTEN

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


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

1800 INFORMATION weist freundlicherweise in den Kommentaren darauf hin:

Don't use rundll32.exe for this purpose. Es erwartet, dass die Funktion, die Sie auf der Kommandozeile übergeben haben, eine sehr spezifische Methodensignatur hat - sie stimmt nicht mit der Methodensignatur von ExitWindows überein.

Raymond CHEN schrieb:

" Die erforderliche Funktionssignatur für Funktionen, die von rundll32.exe aufgerufen werden, ist:

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

Das hat Leute nicht davon abgehalten, rundll32 zu benutzen, um beliebige Funktionen aufzurufen, die nicht dafür gedacht waren, von rundll32 aufgerufen zu werden, wie user32 LockWorkStation oder user32 ExitWindowsEx.

(oops)

Die eigentliche Funktionssignatur für ExitWindowsEx ist:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

Und um es kristallklar zu machen:

Rundll32" ist ein Überbleibsel von Windows 95, das spätestens seit Windows Vista veraltet ist, weil es gegen viele moderne technische Richtlinien verstößt.

Kommentare (6)