Wie kann ich herausfinden, wann Windows zuletzt neu gestartet wurde?

105

Woher weiß ich, wann mein Computer mit Windows 7 zuletzt neu gestartet wurde?

Ich bevorzuge eine Lösung, die nicht das Durchsuchen des Ereignisprotokolls beinhaltet, sondern so etwas wie wmicoder vielleicht cmdBefehle.

Royi Namir
quelle

Antworten:

164

systeminfoBefehl ist fast richtig, was Sie brauchen. Auf Englisch 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 unter Windows 7 nur die letzte Startzeit anzeigen kann.


Auch im Task-Manager:

Bildbeschreibung hier eingeben

m0nhawk
quelle
Außerdem gibt es eine akkumulative Liste der letzten Reset s ?
Royi Namir
2
@ RoyiNamir: Mit einigen googeln Liste von Neustarts (sieht sehr ähnlich aus):Get-EventLog -LogName System | where { ($_.InstanceId -bAnd 0xFFFF) -eq 6006 }
m0nhawk
es ist Powershell .....?
Royi Namir
3
Beachten Sie, dass systeminfolokalisiert ist. Dies "Boot Time"gilt nur für englische Versionen von Windows.
Markus Mitterauer
1
systeminfo | find /i "Systemstartzeit"für deutsch
schoetbi
24

Eine andere Möglichkeit besteht darin, die folgende Befehlszeile zu verwenden, die sowohl unter Windows XP als auch unter Windows 7 funktioniert:

net statistics workstation

Es hat den Vorteil, dass es systeminfobeim Formatieren des Datums schneller als die Alternative ist (was wmicnicht der Fall ist). Sie erhalten auch ein paar andere Informationen, die nützlich sein können, wenn Sie diesen Befehl zum Debuggen eines Computers verwenden (da Sie speziell danach fragen cmd, gehe ich davon aus, dass Sie dies nicht programmgesteuert tun).

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

Hier ist ein Beispiel für das Ergebnis (unter Verwendung einer französischen Kopie von Windows 7 Pro SP1 x64 ist die Benutzersprache für die Befehlszeile nicht wichtig):

Beispiel

(Der Computername ist absichtlich verschwommen)


Weitere Informationen zur Genauigkeit bei der Bestimmung der Systemverfügbarkeit finden Sie unter http://en.wikipedia.org/wiki/Uptime .


Wichtiger Hinweis : Diese Methode bestimmt, wann der Computer das letzte Mal gestartet wurde, nicht die Betriebszeit. Die 2 Zahlen sind unterschiedlich, wenn Sie den Energiesparmodus / Ruhezustand verwenden.

dnLL
quelle
Keine Ahnung, warum dies nicht dasselbe wie die Verwendung von systeminfo oder wmic bedeutet ... es ist wahrscheinlich vernachlässigbar, aber es unterscheidet sich auf meinem System um mehr als 2 Minuten
Anthony Shaw
Auf meinem Computer ist der Unterschied ebenfalls 40 Sekunden lang. Ich habe keine Ahnung, warum es nicht genau dasselbe ist. Ich denke, der Service startet erst ein bisschen später. Einige interessante Informationen auf en.wikipedia.org/wiki/Uptime
dnLL
2
Es unterscheidet sich von meinem über neun Monate :-) Dies ist die einzig richtige Antwort. Es gibt den tatsächlichen Datumsstempel des letzten Startvorgangs an (oder den Zeitpunkt, zu dem der zugehörige Dienst nach dem Start gestartet wurde, also in unmittelbarer Nähe), wohingegen der wmicTask-Manager und systeminfoalle Elemente ab der aktuellen Zeit um die Anzahl der Ticks, die der PC ausgeführt hat, rückwärts zu zählen scheinen Laufen. Aber wenn Sie Ihren Computer in dem Ruhezustand (oder Ruhezustand) viel, wie ich, die tatsächliche Gesamtlaufzeit ist viel kürzer als die Zeit seit dem letzten Systemstart (nur 30 Tage in meinem Fall im Laufe der letzten Monate), Abwerfen diese Berechnung vollständig.
Cameron
Vielen Dank, @ Cameron, ich habe einen Hinweis am Ende meiner Antwort hinzugefügt. Bei der ursprünglichen Frage ging es wirklich um den Zeitpunkt des Starts des Computers und nicht um dessen Verfügbarkeit. Das ist also ein wichtiges Detail. Wikipedia erwähnt etwas den Unterschied in dem Artikel, den ich verlinkt habe.
Donnerstag,
Das ist nicht wirklich die letzte "Start" -Zeit - es ist die Zeit, zu der der Server- oder Arbeitsstationsdienst gestartet wurde, je nachdem, für welche Abfrage Sie Statistiken erstellen. Da diese während einer regulären Windows-Sitzung niemals angehalten werden, ist dies eine praktische Annäherung an die letzte Startzeit.
oldmud0
18

Da ist das LastBootUpTimeEigentum der Win32_OperatingSystemKlasse. Sie können WMIC mit diesem Befehl verwenden:

wmic os get lastbootuptime

Oder wenn Sie Powershell verwenden, können Sie die Uhrzeit in ein besser lesbares Format als das ärgerliche WMI-Datum / Uhrzeit-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 Datum und Uhrzeit zurückgibt:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Das einzig irritierende ist, dass Get-CimInstance manchmal den Namen einiger Systemfelder von WMI-Objekten ändert, wie hier __SERVER. Sie müssten entweder CSNameoder verwenden PSComputerName, was bei mir zu funktionieren scheint.

Speckwürfel
quelle
20121217175810.414696+120Ich glaube, ich brauche einen verdammt guten Taschenrechner, um die Zeit zu berechnen
Royi Namir
7
@ Royi Ja, WMI-Zeitstempel sind doof. Es ist ein CIM_DATETIMEFormat, das vom Standard verlangt wird. Es ist yyyymmddHHMMSS.mmmmmmsUUUmit 24 Stunden Zeit. Hier ist Ihr letzter Neustart am 17. Dezember 2012 um 17:58 Uhr. msdn.microsoft.com/en-us/library/windows/desktop/…
Bacon Bits
1
Ein praktischer Vorteil der Methode get-wmiobject ist, dass das Abrufen der Startzeiten auch von Remotecomputern trivial ist. Fügen Sie einfach "-computer <Computername>" zum Befehl (vor der Pipe) hinzu
camster342 20.10.13
8

Für Windows 10-Benutzer da draußen ....

Systemeigenschaften Windows 10 - Betriebszeit der Leistung

Jonathan Tepper
quelle
1
Dies zeigt Ihnen die Verfügbarkeit (dh wie lange das System ausgeführt wird ) nicht die Zeit , wenn das System gestartet wurde als OP gefragt.
Dawid Ferenczy Rogožan
1
Stimmt, aber das ist immer noch nützlich.
tbc0
Heute zeigt mein Windows 10-Notebook eine falsche Betriebszeit. Ich habe es letzte Nacht heruntergefahren und vor weniger als einer Stunde wieder eingeschaltet. Der Task-Manager gibt an, dass es seit 5: 19: 40: 10 aktiv ist.
tbc0
Windows 10 fährt beim Herunterfahren eigentlich nicht herunter, ich vergesse warum genau. Wenn Sie jedoch möchten, dass der Uptime-Timer zurückgesetzt wird, müssen Sie einen Neustart durchführen.
Daniel Hayes
3

Bitte beachten Sie, dass der Befehl , wie von Alex ausgeführt,/sleepstudy erst unter Windows 8.1 hinzugefügt wurde. / systempowerreport könnte stattdessen funktionieren.

Beachten Sie, dass einige dieser anderen Antworten für mich nie funktionierten, wie beispielsweise das Durchsuchen des Ereignisprotokolls, bei dem immer einige Einträge fehlten. @ Florisz Antwort ist auch in dieser Hinsicht richtig. Hier ist meine Lösung:

Führen Sie in einer Administrator-Cmd-Shell den folgenden Befehl aus:

powercfg /sleepstudy /output sleepstudy.html

Öffnen Sie dann die Datei sleepstudy.htmlin einem Browser. Sie werden mit erstaunlich übersichtlichen Statistiken über das Herunterfahren / Neustarten / Standby / Ruhezustand der letzten drei Tage begrüßt . (Führen Sie sie daher regelmäßig aus, wenn Sie dies benötigen.)

Ein Beispiel für eine Ausgabe: (AFAIR Showdown (Hybrid)bedeutet schneller Start)

Bildbeschreibung hier eingeben

Quelle / Dokumentation | Auch verwandt

Konfetti
quelle
1
Dies ist, wonach ich unter Windows 10 gesucht habe! Ich starte nicht neu, ich fahre normalerweise herunter. LastBootTime bezieht sich nur auf Neustarts unter Windows 10.
tbc0
2

Unter Windows 7 bevorzuge ich

net statistics workstation

WMIC berücksichtigt nicht die Schlafzeit, und ich lasse meine Workstation während der Woche im Schlaf eingesperrt, um am nächsten Tag aufzuwachen.

tbc0
quelle
2

Noch eine andere Möglichkeit, in einer Batch-Datei die Boot-Zeit mit wmic zu ermitteln, jedoch in einer für Menschen lesbaren Form:

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%

Ausgabe :

DTS: 20170308073729.491206 + 060

BOOTTIME: 2017-03-08 07:37

Max
quelle
1
Diese Antwort wäre besser, wenn sie eine Erklärung der Funktionsweise enthalten würde set BOOTTIME.
ein Lebenslauf vom
2

So erhalten Sie es in PowerShell:

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
PollusB
quelle
1

In nahezu jeder Windows-Version können Sie den Zeitstempel in der Auslagerungsdatei überprüfen.

dir /a:hc:\pagefile.sys

Futter
quelle
1
Ich glaube nicht. Zumindest unter Windows 10 war die Auslagerungszeit neuer als die Startzeit.
Donnerstag,
1

Sie können hierfür PowerShell verwenden.

Ausschalten


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

Dadurch erhalten Sie eine Liste der protokollierten Abschaltzeiten.

Alternativer Befehl, besser optimiert für Remoteverbindungen:

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

Anlaufen


Mit dem folgenden Befehl erhalten Sie eine Liste der protokollierten Startzeiten.

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

Alternativer Befehl, besser optimiert für Remoteverbindungen:

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, sofern Sie mindestens PowerShell 3.0 installiert haben. Beachten Sie, dass Sie es als Administrator ausführen müssen.

Die vollständige Dokumentation zum Befehl finden Sie hier: docs.microsoft.com

Samir
quelle
Funktionierte nicht für mich unter Windows 10. Nicht einmal als Administrator. Siehe snag.gy/HcEn8j.jpg
tbc0
1

Ein paar Antworten erwähnen net statistics workstationund ich habe festgestellt, dass beide:

net statistics server

und

net statistics workstation

sollte Daten bezüglich des letzten Starts in der Statistics since ...Leitung liefern .

Einige Betriebssystemversionen (wie z. B. Svr2008 / 6.0) geben jedoch 1/1/1980 12:00bei Verwendung das Datum zurück server. Also werde ich standardmäßig auf workstation.

Sie können auch einige der Befehle abkürzen, net stats workstationum die gleichen Ergebnisse zu erzielen. Wenn Sie von System zu System springen, ist das Standard-CMD-Feld nicht groß genug, um alle Ergebnisse des Befehls anzuzeigen. Also leite ich die Ausgabe weiter more, um zu vermeiden, dass nach oben gescrollt wird, um die Startzeit zu sehen. Daher lautet mein Standardbefehl:

net stats workstation | more

Befehl

ictm
quelle
1

Ich möchte hinzufügen, dass all diese Befehle Ihnen wirklich die Zeitstempel geben, wenn ein Neustart oder Neustart durchgeführt wird. Und nicht, wenn ein Herunterfahren und Starten erfolgt ist. Nach dem Herunterfahren und Starten gibt die letzte Startzeit die Zeit an, zu der das System wirklich neu gestartet wurde, und nicht die tatsächliche Startzeit. Das Herunterfahren / Starten führt also zum gleichen Ergebnis wie das Zurückkehren von suspend / hybernnate für den LastBootUpTime-Zeitstempel.

Florisz
quelle
0

Gleich wie Max antworte ...

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 im 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 chaotisch erscheinen, ist aber im Vergleich zu anderen Powershell- oder Systeminfo-Implementierungen sehr schnell und Sie können das Format leicht ändern, da es explizit im Code enthalten ist.

Vielen Dank, Max.

Loïc
quelle