Woher weiß ich, wann mein Computer mit Windows 7 zuletzt neu gestartet wurde?
Ich bevorzuge eine Lösung, bei der ich nicht das Ereignisprotokoll durchsuchen muss, sondern etwas wie wmic
oder vielleicht cmd
-Befehle.
Der Befehl systeminfo
ist fast genau das, was Sie brauchen. Auf Englisch Windows 7 können Sie auch tun:
systeminfo | find /i "Boot Time"
Oder mit Hilfe von WMIC:
wmic os get lastbootuptime
Der Hauptunterschied zwischen Windows 7 und Windows XP besteht darin, dass Microsoft in Windows 7 nur die letzte Startzeit anzeigen kann.
Auch im Task-Manager:
Eine andere Möglichkeit ist die Verwendung der folgenden Befehlszeile, die sowohl unter Windows XP als auch unter Windows 7 funktioniert:
net statistics workstation
Sie hat den Vorteil, dass sie schneller ist als die Alternative systeminfo
, während sie das Datum formatiert (was wmic
nicht tut). Sie erhalten auch einige andere Informationen, die nützlich sein können, wenn Sie diesen Befehl tatsächlich zur Fehlersuche auf einem Computer verwenden (da Sie speziell nach cmd
fragen, nehme ich an, dass Sie dies nicht programmatisch tun).
Weitere Informationen über den Befehl net statistics
finden Sie hier: http://technet.microsoft.com/en-us/library/bb490714.aspx
Hier ist ein Beispiel für das Ergebnis (mit einer französischen Kopie von Windows 7 Pro SP1 x64, die Benutzersprache spielt für die Befehlszeile keine Rolle):
(der Computername ist absichtlich unscharf)
Weitere Einzelheiten auf http://en.wikipedia.org/wiki/Uptime über die Genauigkeit bei der Bestimmung der Systembetriebszeit.
Wichtiger Hinweis: Mit dieser Methode wird ermittelt, wann der Computer zuletzt gebootet wurde, nicht die Betriebszeit. Die 2 Zahlen werden unterschiedlich sein, wenn Sie sleep/hibernate verwenden.
Es gibt die Eigenschaft LastBootUpTime
der Klasse Win32_OperatingSystem
. Sie können WMIC mit diesem Befehl verwenden:
wmic os get lastbootuptime
Wenn Sie Powershell verwenden, können Sie die Zeit in ein lesbareres Format als das lästige WMI-Datetime-Format konvertieren:
Get-WmiObject -class Win32_OperatingSystem | Select-Object __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}
Beachten Sie, dass Sie in späteren Versionen von PowerShell auch Get-CimInstance verwenden können, das den Wert automatisch als Datetime zurückgibt:
Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime
Das einzige Ärgernis ist, dass Get-CimInstance manchmal den Namen einiger Systemfelder von WMI-Objekten ändert, wie z. B. __SERVER hier. Sie müssen dann entweder CSName
oder PSComputerName
verwenden, was bei mir zu funktionieren scheint.