Wie finde ich heraus, wie oft Windows Seven neu gestartet wurde?

18

Wo auf dem System oder in der Registrierung sollte ich nach Daten suchen, wie oft Windows neu gestartet wurde? Ich möchte eine Anwendung erstellen, die diese Informationen verwendet (wie oft Windows seit dem OOBE * -Prozess neu gestartet wurde), um eine bestimmte Funktion zu implementieren.

Ich bin sicher, dass Microsoft dies irgendwo implementiert hat. Ich denke über einen Registrierungsschlüssel oder so etwas nach.

* OOBE - Out-of-Box-Erfahrung: Dieser Vorgang wird ausgeführt, wenn Sie Windows zum ersten Mal starten und Benutzer-, Kennwort- und Computernamen einrichten.

Diogo
quelle
Durch sorgfältiges Durchsehen der Ereignisprotokolle können Sie dies herausfinden, aber ich glaube nicht, dass es tatsächlich an einem bestimmten Ort protokolliert wird ... hmm. Hoffentlich irre ich mich!
Shinrai

Antworten:

17

Jedes Starten und Herunterfahren wird in den Ereignisprotokollen aufgezeichnet. Öffnen Sie die Ereignisanzeige und wechseln Sie zum Abschnitt Systemprotokolle. Wenn Sie diese Datensätze (Verwenden Sie die Filter Current LogSchaltfläche auf der rechten Seite) nach den Ereignisnummern 12 und 13 filtern , sollten Sie nur die Ereignisse erhalten, die Sie benachrichtigen, wenn das System heruntergefahren und gestartet wird.

Ereignis-ID 12 ist der Systemstart, Ereignis-ID 13 ist das Herunterfahren des Systems. Außerdem wird die genaue Uhrzeit angegeben, zu der das Ereignis im Ereignis selbst protokolliert wurde.

Sie könnten Ihre Anwendung veranlassen, die Anzahl der Ereignisse mit der Ereignis-ID 12 zu zählen, was Ihnen das geben sollte, was Sie wollen.

Connor W
quelle
5
Gute Gedanken, aber es gibt Vorbehalte: Die Ereignisprotokolle können von einem Benutzer gelöscht werden und sind auf eine maximale Größe beschränkt, sodass nicht unbedingt die Gesamtanzahl der Neustarts gemeldet wird, insbesondere wenn es sich um eine alte Installation handelt.
18.
@rmart Ich weiß nicht, ob der durchschnittliche Benutzer die Ereignisprotokolle bereinigen würde, aber beide sind faire Punkte. Ich denke, die Verwendung der SMART-Daten wie oben erwähnt ist wahrscheinlich ein besserer Weg, aber das ist auch nicht ohne Vorbehalte.
Connor W
12

Ich habe die Antwort gefunden.

Finden Sie über:

"HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId" 

Der dezimale Wert, der angezeigt wird, gibt an, wie oft Ihr System bereits neu gestartet wurde.

Diogo
quelle
576 mal eine sehr interessante Frage und Antwort. +1 von mir.
Joe Taylor
7

Hier ist ein anderer Weg: SMART

Die überwiegende Mehrheit der Festplatten speichert heutzutage SMART-Informationen. Es gibt zwei Informationen, die Sie interessieren könnten: 04 Start / Stop Count 12 Power Cycle Count

Lesen Sie den Wikipedia-Artikel zu SMART und möglicherweise die Dokumentation zu smartmontools.

smartmontools ist ein Open-Source-Projekt, das diese Daten in einer CLI abfragen kann, oder es gibt andere Programme, die diese Daten mit verschiedenen GUIs abrufen können: Wikipedia-Liste der SMART-Tools

camster342
quelle
Ich denke, dies ist wahrscheinlich eine zuverlässigere Methode als die Verwendung der Ereignisanzeige, aber es hat auch Vorbehalte. Wenn sich das Laufwerk nicht vom ersten Tag an im selben Computer befindet und nicht geändert oder anderweitig verwendet wird, erhalten Sie keine genauen Ergebnisse. Ich denke auch, dass ältere Laufwerke S..MART nicht vollständig unterstützen. Daher finden Sie möglicherweise einige Laufwerke, die Informationen zum Aus- und Wiedereinschalten aufzeichnen, und andere, die dies nicht tun.
Connor W
@Connor W: Ich habe vermutet, dass die Art von Festplatten, auf denen keine SMART-Informationen aufgezeichnet werden, in einem Computer, auf dem Windows 7 ausgeführt werden kann, ziemlich unwahrscheinlich ist, aber Sie haben völlig Recht, dass dies nicht möglich ist beruhte auf. Genau wie die Ereignisanzeige ....
camster342
Was ist auch, wenn der Benutzer den Standby-Modus verwendet oder die Festplatte aufgrund von Inaktivität ausgeschaltet wird?
sinni800
@Sinni: Das ist der Unterschied zwischen dem 04-Code und dem 12-Code. 04 ist die Gesamtzahl der Festplatten-Spin-ups, die Standby- und Energiesparmodi umfassen würden. 12 ist der Punkt, an dem die Festplatte vollständig ausfällt, wenn der PC heruntergefahren wird oder in den Ruhezustand wechselt.
camster342
2

Überprüfen Sie den Zuverlässigkeits-Manager in Windows 7

uSlackr
quelle
3
Dies sagt Ihnen jedoch nicht wirklich, wann der Computer hochgefahren oder heruntergefahren wurde.
Connor W
1

Ich habe zwei kurze Skripte geschrieben, die zählen, wie oft ein Computer eingeschaltet wurde.

Leider gibt es kein spezielles Ereignisprotokoll für Neustarts, nur wenn Windows gestartet und heruntergefahren wird.

Dieses Skript durchsucht das Ereignisprotokoll, nach event 12dem protokolliert wird, wenn Windows gestartet wird. Dann erfahren Sie, wie oft es gezählt hat.

VBS-Skript: Zählt, wie oft der Computer eingeschaltet wurde

count = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" _
& " and EventCode = '12'")
For Each objEvent in colLoggedEvents
count = count + 1
Next
wscript.echo "Number of times operating system has started:   " & count

VBS-Skript: Remote-Zählung, wie oft der Computer eingeschaltet wurde:

count = 0
strComputer=InputBox ("Enter the network name for the remote computer")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" _
& " and EventCode = '12'")
For Each objEvent in colLoggedEvents
count = count + 1
Next
wscript.echo "Number of times operating system has started:   " & count 

Quell- VBS-Skript - Anzahl Anzahl, wie oft der Computer eingeschaltet wurde

ovann86
quelle
Wenn dies Ihre Website ist, auf die Sie verlinken (diese Links haben Sie gerade aktualisiert), beachten Sie bitte, dass Sie Ihre Zugehörigkeit offenlegen müssen. Siehe superuser.com/help/behavior
slhck
@slhck - ja, ich beziehe mich auf meinen persönlichen Blog. Ich kannte diese Regeln nicht. Gibt es eine Standardzeile, die ich verwenden sollte, um deutlich zu machen, dass ich auf Inhalte verweise, die sich auch in meinem persönlichen Blog befinden? Ich habe alle Antworten vor langer Zeit gepostet, als ich Zeit hatte. Ich ändere die Domainnamen und möchte die Links aktualisieren, bevor die Domain abläuft. Ich führe meinen persönlichen Blog, um Dinge aufzuzeichnen, an die ich mich erinnern muss, und um Wissen zu teilen, daher das Cross-Posting zwischen Superuser.
Ovann86
1
Bitte seien Sie nur explizit und sagen Sie "Mein Blog" oder so. Solange Sie sicherstellen, dass die tatsächlichen Antworten hier enthalten sind und die Benutzer die Website nicht verlassen müssen, um eine Lösung zu finden, ist dies in Ordnung. Das Hinzufügen von Links für Details ist immer in Ordnung.
Slhck