Jak dowiedzieć się, jak często Windows Seven restartował się?

18

Gdzie w systemie lub rejestrze powinienem szukać danych dotyczących tego, ile razy system Windows został ponownie uruchomiony? Chcę utworzyć aplikację, która korzysta z tych informacji (ile razy system Windows uruchomił się ponownie od czasu procesu OOBE *) w celu wdrożenia określonej funkcji.

Jestem pewien, że Microsoft mógł to gdzieś zaimplementować. Myślę o kluczu rejestru lub czymś takim.

* OOBE - Out of Box Experience, proces ten ma miejsce po pierwszym uruchomieniu systemu Windows i skonfigurowaniu użytkownika, hasła i nazw komputerów.

Diogo
źródło
Dzięki uważnemu przejrzeniu dzienników zdarzeń możesz to rozgryźć, ale nie sądzę, żeby było to logowane konkretnie w jakimś miejscu ... hmm. Mam nadzieję, że się mylę!
Shinrai

Odpowiedzi:

17

Każde uruchomienie i zamknięcie jest rejestrowane w dziennikach zdarzeń. Otwórz Podgląd zdarzeń i przejdź do sekcji Dzienniki systemowe. Jeśli odfiltrujesz te rekordy (użyj Filter Current Logprzycisku po prawej stronie) według numerów zdarzeń 12 i 13, powinieneś po prostu otrzymać zdarzenia powiadamiające o zamknięciu systemu i uruchomieniu.

Identyfikator zdarzenia 12 to uruchamianie systemu, identyfikator zdarzenia 13 to zamykanie systemu. Podaje także dokładny czas, kiedy zdarzenie zostało zarejestrowane w samym zdarzeniu.

Możesz poprosić aplikację o policzenie liczby zdarzeń o identyfikatorze zdarzenia 12, który powinien dać ci to, czego chcesz.

Connor W.
źródło
5
Dobra myśl, ale są pewne zastrzeżenia: dzienniki zdarzeń mogą być wyczyszczone przez użytkownika i są ograniczone do maksymalnego rozmiaru, więc niekoniecznie będzie raportować całkowitą liczbę ponownych uruchomień, szczególnie jeśli jest to stara instalacja.
rmart
@rmart Nie wiem, czy przeciętny użytkownik wyczyści dzienniki zdarzeń, ale oba są słuszne. Myślę, że korzystanie z danych SMART, jak wspomniano powyżej, jest prawdopodobnie lepszym sposobem, ale nie jest to obojętne.
Connor W
12

Znalazłem odpowiedź

Znajdź ponad:

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

Wartością dziesiętną, którą zobaczysz, jest liczba ponownych uruchomień systemu.

Diogo
źródło
576 razy, bardzo interesujące pytanie i odpowiedź. +1 ode mnie
Joe Taylor,
7

Oto inny sposób: SMART

Zdecydowana większość dysków twardych przechowuje obecnie informacje SMART. Istnieją dwie informacje, które mogą Cię zainteresować: 04 Start / Stop Count 12 Power Cycle Count

Sprawdź artykuł w Wikipedii na temat SMART i ewentualnie dokumentację smartmontools.

smartmontools to projekt typu open source, który może wyszukiwać te dane w interfejsie CLI, lub istnieją inne programy, które mogą uzyskiwać te dane za pomocą różnych GUI: Lista narzędzi SMART na Wikipedii

camster342
źródło
Myślę, że jest to prawdopodobnie bardziej niezawodna metoda niż korzystanie z Podglądu zdarzeń, ale ma też swoje zastrzeżenia. O ile dysk nie był w tym samym komputerze od pierwszego dnia, bez zmiany lub użycia w innym miejscu, nie uzyskasz dokładnych wyników. Myślę też, że starsze dyski nie obsługują w pełni S..MART, więc możesz znaleźć niektóre dyski, które rejestrują informacje o cyklu zasilania, a inne nie.
Connor W
@Connor W: Zgadywałem, że takie dyski twarde, które nie rejestrują informacji SMART, raczej nie znajdą się w maszynie wystarczająco mocnej, aby uruchomić system Windows 7, ale tak, masz całkowitą rację, że nie może być polegać na. Podobnie jak przeglądarka zdarzeń ....
camster342
A co jeśli użytkownik korzysta z trybu gotowości lub dysk twardy wyłącza się z powodu braku aktywności?
sinni800
@ Sinni: Na tym polega różnica między kodem 04 a kodem 12. 04 to całkowite rozpinanie dysku twardego, które obejmowałoby standby i tryby oszczędzania energii. 12 to miejsce, w którym dysk twardy całkowicie traci moc z komputera. Wyłączanie lub przechodzenie w stan hibernacji.
camster342
2

Sprawdź Menedżera niezawodności w systemie Windows 7

uSlackr
źródło
3
To tak naprawdę nie mówi, kiedy komputer uruchomił się lub zamknął.
Connor W
1

Napisałem dwa krótkie skrypty, które mogą policzyć liczbę włączeń komputera.

Niestety, nie ma dziennika zdarzeń specjalnie dla restartów, tylko gdy Windows uruchamia się i wyłącza.

Skrypt ten przeszukuje dziennik zdarzeń, którego dziennik event 12jest rejestrowany podczas uruchamiania systemu Windows. Następnie informuje, ile razy się liczyło.

Skrypt VBS: Policz, ile razy komputer został włączony

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

Skrypt VBS: Zdalnie policz, ile razy komputer włączał się:

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 

Źródłowy skrypt VBS - liczba włączeń komputera

ovann86
źródło
Jeśli to jest Twoja witryna, do której prowadzisz (te linki, które właśnie zaktualizowałeś), pamiętaj, że musisz ujawnić swoje powiązanie z nią. Zobacz superuser.com/help/behavior
slhck
@slhck - tak, odsyłam do mojego osobistego bloga. Nie wiedziałem o tych zasadach. Czy powinienem stosować standardową linię, aby wyjaśnić, że odwołuję się do treści, które znajdują się również na moim osobistym blogu? Wszystkie odpowiedzi zamieściłem dawno temu, kiedy miałem czas, zmieniam nazwy domen i chcę zaktualizować linki przed wygaśnięciem domeny. Prowadzę mojego osobistego bloga, aby rejestrować rzeczy, o których muszę pamiętać i dzielić się wiedzą, stąd krzyżowanie postów między superużytkownikiem.
ovann86
1
Po prostu powiedz wprost i powiedz „mój blog” lub coś w tym rodzaju. Dopóki upewnisz się, że zawarte są tutaj prawdziwe odpowiedzi, a ludzie nie będą musieli opuszczać witryny, aby znaleźć rozwiązanie, nie ma problemu. Dodawanie linków do szczegółów jest zawsze w porządku.
slhck