2012-12-24 14:24:07 +0000 2012-12-24 14:24:07 +0000
112
112

Wie kann ich herausfinden, wann Windows zum letzten Mal neu gestartet wurde?

Wie kann ich herausfinden, wann mein Computer mit Windows 7 zum letzten Mal neu gestartet wurde?

Ich bevorzuge eine Lösung, bei der nicht das Ereignisprotokoll durchsucht wird, sondern so etwas wie wmic oder vielleicht cmd-Befehle.

Antworten (14)

173
173
173
2012-12-24 14:32:31 +0000

systeminfo Befehl ist fast genau das, was Sie brauchen. Unter dem englischen Windows 7 können Sie auch:

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:

25
25
25
2014-12-09 15:34:46 +0000

Eine andere Möglichkeit ist die Verwendung der folgenden Befehlszeile, die sowohl in Windows XP als auch in Windows 7 funktioniert:

net statistics workstation

Sie hat den Vorteil, dass sie beim Formatieren des Datums schneller als die Alternative systeminfo ist (was wmic nicht tut). Sie erhalten auch ein paar weitere Informationen, die nützlich sein können, wenn Sie diesen Befehl tatsächlich zum Debuggen eines Computers verwenden (da Sie speziell nach cmd fragen, nehme ich an, dass Sie dies nicht programmatisch tun).

Weitere Informationen zum Befehl net statistics finden Sie hier: http://technet.microsoft.com/en-us/library/bb490714.aspx

Hier ist ein Beispiel für das Ergebnis (bei einer französischen Kopie von Windows 7 Pro SP1 x64 spielt die Benutzersprache für die Befehlszeile keine große Rolle):

(der Computername ist absichtlich unscharf)


Weitere Einzelheiten auf http://en. wikipedia.org/wiki/Uptime über die Genauigkeit bei der Bestimmung der Systemverfügbarkeit


Wichtiger Hinweis : diese Methode bestimmt, wann der Computer zuletzt gebootet wurde, nicht seine Verfügbarkeit. Die 2 Zahlen sind unterschiedlich, wenn Sie Schlaf/Ruhezustand verwenden.

19
19
19
2012-12-24 14:41:41 +0000

Es gibt die Eigenschaft LastBootUpTime der Klasse Win32_OperatingSystem. Sie können WMIC mit diesem Befehl verwenden:

wmic os get lastbootuptime

Oder wenn Sie Powershell verwenden, können Sie die Zeit in etwas Lesbareres 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 automatisch den Wert als Datumszeit zurückgibt:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Das einzig Ärgerliche ist, dass Get-CimInstance manchmal den Namen einiger Systemfelder von WMI-Objekten, wie hier __SERVER, ändert. Man müsste dann entweder CSName oder PSComputerName verwenden, was bei mir zu funktionieren scheint.

9
9
9
2017-03-28 13:19:57 +0000
4
4
4
2018-08-21 07:51:22 +0000

Bitte beachten Sie, dass, wie von Alex hervorgehoben, der Befehl /sleepstudy erst mit Windows 8.1 hinzugefügt wurde. Stattdessen könnte /systempowerreport funktionieren.

Beachten Sie bitte, dass einige dieser anderen Antworten bei mir nie funktionierten, so fehlten z.B. bei der Suche im Ereignisprotokoll immer einige Einträge. Die Antwort von @Florisz ist auch in dieser Hinsicht korrekt. Hier ist meine Lösung:

Führen Sie in einer cmd-Shell für einen Administrator den folgenden Befehl aus:

powercfg /sleepstudy /output sleepstudy.html

Öffnen Sie dann die Datei sleepstudy.html in einem Browser. Sie werden mit erstaunlich gut organisierten Statistiken über Herunterfahren/Neustart/Sandby/Ruhezustand aus den letzten drei Tagen begrüßt. (also lassen Sie sie bei Bedarf periodisch laufen)

Ein Beispiel für eine Ausgabe: (AFAIR, Showdown (Hybrid) bedeutet schnelles Hochfahren)

Quelle / Dokumentation | Auch verwandt

2
2
2
2016-05-24 20:46:59 +0000

noch eine andere Möglichkeit in einer Batch-Datei, um die Boot-Zeit mit wmic, aber in menschenlesbarer Form zu erhalten :

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%
echo DTS : %DTS%
echo BOOTTIME :%BOOTTIME%

output :

DTS : 20170308073729.491206+060

BOOTTIME : 2017-03-08 07:37

2
2
2
2017-10-07 19:32:19 +0000

Hierfür können Sie PowerShell verwenden.

Herunterfahren


Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }

Hier erhalten Sie eine Liste der protokollierten Herunterfahrzeiten.

Alternativer Befehl, besser optimiert für Fernverbindungen:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }

Beispielausgabe:

TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
2017-01-28 18:25:46 200 Critical Windows has shutdown
2016-11-01 19:55:21 200 Error Windows has shutdown
2016-10-29 00:18:38 200 Critical Windows has shutdown
2016-10-26 23:16:55 200 Warning Windows has shutdown
2016-10-26 15:37:40 200 Warning Windows has shutdown
2016-10-26 02:18:24 200 Warning Windows has shutdown
2016-10-26 02:10:34 200 Warning Windows has shutdown
2016-10-26 02:04:01 200 Warning Windows has shutdown
2016-10-25 14:23:11 200 Warning Windows has shutdown
2016-10-25 13:07:46 200 Error Windows has shutdown
2016-10-25 00:18:12 200 Error Windows has shutdown
2016-10-19 13:16:39 200 Critical Windows has shutdown

Startup


Der folgende Befehl gibt Ihnen eine Liste der protokollierten Startup-Zeiten.

Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}

Alternativer Befehl, besser optimiert für Remote-Verbindungen:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }

Beispielausgabe:

TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
2017-10-07 21:35:38 100 Critical Windows has started up
2017-01-28 18:25:48 100 Critical Windows has started up
2016-12-11 17:45:07 100 Critical Windows has started up
2016-11-16 13:26:52 100 Critical Windows has started up
2016-11-01 19:55:21 100 Critical Windows has started up
2016-10-29 00:18:39 100 Critical Windows has started up
2016-10-26 23:16:55 100 Error Windows has started up
2016-10-26 14:51:07 100 Error Windows has started up
2016-10-26 02:24:01 100 Error Windows has started up
2016-10-26 02:18:24 100 Critical Windows has started up
2016-10-26 02:10:34 100 Error Windows has started up
2016-10-26 02:04:01 100 Critical Windows has started up
2016-10-25 14:23:12 100 Error Windows has started up
2016-10-25 13:07:47 100 Error Windows has started up
2016-10-25 12:56:23 100 Error Windows has started up
2016-10-19 13:16:39 100 Critical Windows has started up

Ich habe dies auf PowerShell 5.1 und Windows 10.0.15063 getestet. Es sollte aber auch unter Windows 7 funktionieren, solange Sie mindestens PowerShell 3.0 haben. Beachten Sie, dass Sie es als Administrator ausführen müssen.

Die vollständige Dokumentation für den Befehl finden Sie hier docs.microsoft.com

2
2
2
2016-07-25 15:12:29 +0000

Bei fast allen Windows-Versionen können Sie den Zeitstempel auf der Auslagerungsdatei überprüfen.

dir /a:h c:\pagefile.sys

2
2
2
2015-07-08 20:41:51 +0000

Unter Windows 7 bevorzuge ich

net statistics workstation

WMIC berücksichtigt die Schlafzeit nicht, und ich lasse meinen Arbeitsplatz während der Woche eingeschlossen am Arbeitsplatz schlafend zurück, bereit, am nächsten Tag aufzuwachen.

2
2
2
2018-09-12 14:34:05 +0000

Um es in PowerShell zu bekommen:

Function Get-LastBoot {
        if ($Host.Version.Major -lt 3) {
            Get-WmiObject win32_operatingsystem | Select-Object CSname, @{n = 'LastBootUpTime'; e = {$_.ConverttoDateTime($_.lastbootuptime)}}
        }
        else {
            Get-CimInstance -ClassName win32_operatingsystem | Select-Object CSname, LastBootUpTime
        }
    }

Hier ist das Ergebnis:

CSname LastBootUpTime
------ --------------
LAPTOP1 2018-09-07 08:57:02
1
1
1
2018-08-17 11:38:18 +0000

Ich möchte hinzufügen, dass all diese Befehle Ihnen wirklich die Zeitstempel geben, wenn ein ‘Neustart’ oder ‘Reboot’ durchgeführt wird. Und nicht, wenn ein Herunterfahren und Starten durchgeführt wird. Nach dem Herunterfahren und Starten wird die ‘lastbootuptime’ die Zeit widerspiegeln, in der das System wirklich ‘neu gestartet’ wird, und nicht die tatsächliche Startzeit. Herunterfahren/Starten ergibt also das gleiche Ergebnis wie das Zurückkommen von suspend/hybernnate für den LastBootUpTime-Zeitstempel.

1
1
1
2018-05-23 16:10:40 +0000

Ein paar Antworten erwähnen net statistics workstation und ich habe festgestellt, daß beide:

net statistics server

und

net statistics workstation

Daten bezüglich des letzten Bootvorgangs in der Zeile Statistics since ... liefern sollten.

Einige Betriebssystemversionen (wie Svr2008/6.0) geben jedoch 1/1/1980 12:00 für das Datum zurück, wenn sie server verwenden. Ich werde also standardmäßig workstation verwenden.

Sie können auch einige der Befehle wie net stats workstation abkürzen und erhalten die gleichen Ergebnisse. Wenn Sie schließlich von System zu System herumspringen, ist das Standard-CMD-Feld nicht groß genug, um alle Ergebnisse des Befehls anzuzeigen. Daher werde ich die Ausgabe über die Pipeline an more weiterleiten, um zu vermeiden, dass Sie nach oben scrollen müssen, um die Boot-Zeit zu sehen. Daher lautet mein Standardbefehl:

net stats workstation | more

1
1
1
2017-07-17 18:08:00 +0000

Aus einer ähnlichen ServerFault-Frage suchen/filtern Sie das Windows-Systemereignisprotokoll nach der Ereignis-ID 6009.

Unter Windows 10: Event Viewer > Windows Logs > System und dann die Aktion Filter Current Log....

0
0
0
2019-02-21 16:36:38 +0000

Dasselbe wie Max antworten …

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%
echo DTS : %DTS%
echo BOOTTIME :%BOOTTIME%

…aber in oneliner:

for /f %a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%a && echo %DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%

Diese wmi-Implementierung mag ein wenig unordentlich erscheinen, aber sie ist sehr schnell im Vergleich zu anderen Powershell- oder Systeminfo-Implementierungen und Sie können das Format leicht ändern, da es im Code explizit ist.

Danke Max.