292013Sep

Windows-Startzeit über WMI und PowerShell abfragen

Gelegentlich möchte man vielleicht wissen, wie lange ein Computer bzw. ein Server seit dem letzten Neustart läuft. Windows bietet hier verschiedene Möglichkeiten, wie dieser Zeitstempel abgefragt werden kann, allerdings gibt es Unterscheidungen zwischen lokalen und Remote-Abfragen.

WMI | Lokale- & Remote-Abfrage: systeminfo.exe

Über WMI (Windows Management Instrumentation) können Systeminformationen abgefragt werden. Dazu gehören bspw. auch Registry- oder EventLog-Auswertungen, Diensteverwaltung oder auch den (Neu-)Start von Programmen. WMI ist seit Windows 2000 implementiert und immer wieder eine nützliche Kernfunktionalität von Windows für Systemandministratoren. Die folgenden Tools arbeiten (scheinbar) alle mit WMI.

Lokale Abfrage

Windows bietet ein Tool namens systeminfo.exe, welches für Lokale- und Remote-Abfragen genutzt werden kann. Die Abfrage kann über die Windows-Eingabeaufforderung durchgeführt werden. Das Tool kann neben der Startzeit auch eine ganze Reihe anderer Werte ausgeben. Mit find kann aus dem Output ein Wert gezielt selektiert und ausgegeben werden.

systeminfo| find /i „Systemstartzeit:“

Nun dauert es eine gewisse Zeit, bis alle Systemdaten geladen und ausgewertet wurden. Am Ende der Auswertung erscheint jedoch der entsprechende Zeitstempel.

win-cmd_systeminfo-startzeit

Remote-Abfrage

Um mit dem Konsolen-Tool auch Remote eine Abfrage auf einem Server durchzuführen, muss lediglich der Parameter /s sowie der Serverhostname ergänzt werden:

systeminfo /s <SERVERHOSTNAME>| find /i „Systemstartzeit:“

Für diese Abfrage werden keinerlei höhere Berechtigungen auf dem Zielserver benötigt.

Alternative: Task-Manager oder net statistics

Task-Manager

Wer es einfach haben möchte, kann sich auch dem Task-Manager bedienen. Das funktioniert in dem Fall zwar nur lokal, geht dafür relativ schnell und benötigt keine Eingabeaufforderung. Die Windows-Startzeit wird in dem Fall allerdings nicht als Zeitstempel, sondern vielmehr als „Laufzeit“ angegeben. Zu finden ist dieser Wert unter Leistung -> System. Um die tatsächliche Startzeit nun zu ermitteln, muss der Laufzeitwert von der aktuellen Zeit abgezogen werden. Eine unschöne Lösung, bei dem die anderen Methoden bei weitem mehr punkten … und vor allem konfortbaler sind.

net statistics

Microsoft verweist in dessen Support-Seiten unter anderem auch auf das Tool net statistics. Mit dem Befehl

net statistics Server

kann eine Reihe von Informationen über den Computer abgefragt werden. Wenn „Server“ mit „Workstation“ ersetzt wird, erscheinen noch detailiertere und erweiterte Systemtinformationen. Bei dieser Ausgabe zeigt der zweite Wert „Statistik seit“ die Startzeit an. Alternativ kann man mit find diesen Wert auch gezielt und bequem ausgeben lassen:

net statistics Server|find /i „Statistik seit“

Abfrage mit wmic und der Powershell

Eine WMI-Abfrage kann man aber auch direkt mit dem Tool wmic erzeugen: Man frägt einfach die LastBootUpTime ab. Da die Ausgabe der Abfrage allerdings etwas verwirrend dargestellt wird (nämlich im Format „yyyymmddhhmmss“), ist es komfortabler diese Abfrage in der Windows PowerShell durchzuführen. Dort hat man die Möglichkeit die Ausgabe entsprechend zu formatieren. Der Befehl für die reine Ausgabe des Zeitstempels lautet:

wmic /Node:“<SERVERHOSTNAME>“ OS Get LastBootUpTime

Mit der Windows PowerShell hat man hingegen mehr Freiheiten und kann sich die Ausgabe entsprechend formatieren und sauber anzeigen lassen:

Get-WmiObject -class Win32_OperatingSystem | Select-Object __SERVER,@{label=’LastRestart‘;expression={$_.ConvertToDateTime($_.LastBootUpTime)}}

win-powershell_lastbootuptime

Leave a Reply

Your email address will not be published. Required fields are marked *