Suchen

Windows Tools, die man kennen sollte – Shutdown & PsShutdown Drei Arten, einen Windows-Computer richtig herunterzufahren

Autor / Redakteur: Frank Castro Lieberwirth / Dipl.-Ing. (FH) Andreas Donner

Mit diesen Microsoft-Tools kann ein Administrator einen Windows-basierenden Computer neu starten oder herunterfahren. Vorgestellt werden die bewährten Kommandozeilen-Tools „Shutdown“ und „PsShutdown“ sowie Befehle für die Powershell. Das Schöne an allen drei Arten ist, dass sie sich problemlos skripten lassen.

Firmen zum Thema

Starten und Herunterfahren mit Kommandozeilenbefehlen
Starten und Herunterfahren mit Kommandozeilenbefehlen
( Archiv: Vogel Business Media )

Der Kommandozeilenbefehl Shutdown.exe existiert seit Microsoft Windows XP und wurde im Laufe der Zeit immer wieder mit Optionen erweitert. Die Grundidee, einen Computer lokal oder remote neu zu starten ist dabei immer gleich geblieben.

Mit der Option /i (bei XP „-i“) gibt es sogar eine grafische Variante. Weitere Informationen zum Befehl gibt es unter „shutdown /?“ bzw. „shutdown -?“.

Bildergalerie
Bildergalerie mit 5 Bildern

Syntax Windows 7:

shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f] [/m \\Computer][/t xxx][/d [p:]xx:yy [/c „Kommentar“]]

Syntax Windows XP:

shutdown [-i | -l | -s | -r | -a] [-f] [-m \\Computer] [-t xx]

Die wichtigsten Optionen lauten:

  • /l für Logout (Abmelden)
  • /s für Shutdown (Herunterfahren)
  • /r für Reboot (Neustart)
  • /h für Hibernate (Ruhezustand)
  • /t für Time (Zeit)
  • /m \\Computer legt den Remote-Server oder PC fest

Beispiel: Neustart in 10 Sekunden auf dem Server SRV01

Shutdown /m \\SRV01 /r /t 10

Die Verwendung von PsShutdown

PsShutdown ist ein Tool aus den Microsoft Sysinternals, welches ähnliche Optionen, wie der Befehl Shutdown verwendet. Von der Historie ist es sehr alt, was aber zum Vorteil hat, dass es auch für Windows NT und Windows 2000 funktioniert.

Syntax:

psshutdown [\\computer[,computer[,...] | @file [-u username [-p password]]] -s|-r|-h|-d|-k|-a|-l|-o [-f] [-c] [-n s] [-t nn|h:m] [-e [u|p]:xx:yy] [-m „message“]

Die Verwendung der Powershell

Wenn eine Windows Powershell zur Verfügung steht, dann können entweder alte Kommandozeilenbefehle, wie shutdown.exe oder neue Powershell-Methoden verwendet werden. Zum Einsatz kommt hierbei die Methode Win32Shutdown aus der WMI Klasse Win32_OpteratingSystem. Nicht zu vergessen ist, dass man die Powershell explizit als Administrator starten muss. Dies kann man am einfachsten mit der Hochstelltaste + rechte Maustaste bewirken.

Syntax:

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName ).InvokeMethod(„Win32Shutdown“,)

Folgende Flags sind erlaubt:

  • 0: Abmelden
  • 1: Herunterfahren
  • 2: Neustart
  • 4: Beschleunigtes (Force) Abmelden
  • 5: Beschleunigtes (Force) Herunterfahren
  • 6: Beschleunigtes (Force) Neustarten
  • 8: Abschalten
  • 12: Beschleunigtes Abschalten

Beispiele:

1. Fährt den eigenen Computer herunter (gwmi ist Kurzversion)

(gwmi Win32_OperatingSystem).Win32Shutdown(1)

2. Bootet einen Remote-Server SRV01

(gwmi win32_operatingsystem -ComputerName SRV01).Win32Shutdown(6)

3. Eine weitere schöne Lösung kann man am Beispiel Neustart wie folgt herstellen (siehe Abbildung 4). ComputerObj ist ein beliebiger Containername.

$ComputerObj = gwmi win32_operatingsystem -computer $ComputerObj.reboot()

4. Am Beispiel 3 kann man sehr gut weiterarbeiten und weitere Ideen entwickeln. Möchte man wissen, was in dem Container $ComputerObj enthalten ist, benötigt man das PSBase Objekt. Die Eigenschaft „scope“ führt zu weiteren Optionen:

$ComputerObj.psbase.scope.options | get-member

Aus diesen Informationen heraus findet sich eine Lösung, woraus sich die Boot-Privilegien auslesen oder verändern lassen. Folgender Befehl ist demnach möglich, aber aus Sicherheitsgründen gründlich zu überlegen (Erlaubnis, die Bootprivilegien zu ändern?)!

$ComputerObj = gwmi win32_operatingsystem -computer $ComputerObj.psbase.Scope.Options.EnablePrivileges = $true$ComputerObj.reboot()

Fazit

In der Praxis eines Administrators sind Skripte nicht mehr wegzudenken. Alle drei Methoden erfüllen diesen Zweck, wobei die moderne Powershell wesentlich mehr Möglichkeiten, als ihr Vorgänger bietet.

Artikelfiles und Artikellinks

(ID:2052390)