Windows Sevenが再起動した頻度を調べる方法は?


18

システムまたはレジストリのどこで、Windowsが再起動された回数に関するデータを検索する必要がありますか?この情報(OOBE *プロセス以降にWindowsが再起動された回数)を使用して特定の機能を実装するアプリケーションを作成します。

Microsoftはこれをどこかに実装しているに違いない。レジストリキーまたはこのような何かについて考えています。

* OOBE-すぐに使用できるエクスペリエンス。これは、Windowsを初めて起動し、ユーザー、パスワード、およびコンピューター名を設定するときに発生するプロセスです。


イベントログを注意深く確認することでこれを把握できますが、実際にはどこかで具体的にログに記録されているとは思いません...うーん。うまくいけば私は間違っています!
新井

回答:


17

起動とシャットダウンはそれぞれイベントログに記録されます。イベントビューアを開き、システムログセクションに移動します。Filter Current Logイベント番号12および13でこれらのレコードをフィルターする(右側のボタンを使用する)場合、システムがシャットダウンおよび起動するときに通知するイベントを取得するだけです。

イベントID 12はシステムの起動、イベントID 13はシステムのシャットダウンです。また、イベント自体にイベントが記録された正確な時刻も提供します。

イベントID 12でイベントの数をカウントするようにアプリケーションを取得できます。これにより、必要なものが得られます。


5
良い考えですが、警告があります:イベントログはユーザーが消去でき、最大サイズに制限されているため、特に古いインストールの場合、必ずしも再起動の合計量を報告するとは限りません。
rmart

@rmart平均的なユーザーがイベントログを削除するかどうかはわかりませんが、どちらも公正なポイントです。上記のようにSMARTデータを使用することはおそらくより良い方法だと思いますが、それも警告なしではありません。
コナーW

12

答えを見つけました。

見つける:

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

表示される10進数の値は、システムがすでに再起動した回数です。


576回、非常に興味深い質問と回答。私から+1。
ジョーテイラー

7

別の方法があります:SMART

最近のハードドライブの大部分は、SMART情報を保存しています。興味がある可能性のある2つの情報があります。

チェックアウトウィキペディアの記事 SMART上、おそらくのsmartmontoolsのマニュアルを参照して。

smartmontoolsは、CLIでこのデータを照会できるオープンソースプロジェクトです。または、さまざまなGUIでこのデータを取得できる他のプログラムがあります:ウィキペディアSMARTツールのリスト


これはおそらく、イベントビューアを使用するよりも信頼性の高い方法だと思いますが、警告もあります。ドライブが初日から同じコンピューターにあり、変更または他で使用されていない限り、正確な結果は得られません。また、古いドライブはS..MARTを完全にはサポートしていないと思うので、パワーサイクル情報を記録するドライブとそうでないドライブがあります。
コナーW

@Connor W:SMART情報を記録しない種類のハードドライブは、Windows 7を実行するのに十分なパワフルなマシンにある可能性は非常に低いと推測していましたが、そうではありません。頼りました。イベントビューアーと同じように...
camster342

また、ユーザーがスタンバイモードを使用している場合や、非アクティブのためにハードドライブがオフになっている場合はどうでしょうか。
sinni800

@Sinni:04コードと12コードの違いは何ですか。04は、スタンバイおよび省電力モードを含むハードドライブの合計スピンアップです。12は、ハードドライブの電源が完全に切れる場所で、PCがシャットダウンまたは休止状態になります。
camster342

2

Windows 7の信頼性マネージャーをご覧ください


3
ただし、コンピュータがいつ起動またはシャットダウンしたかはわかりません。
コナーW

1

コンピューターの電源を入れた回数をカウントできる2つの短いスクリプトを作成しました。

残念ながら、再起動専用のイベントログはなく、Windowsの起動時とシャットダウン時のみに使用されます。

これらのスクリプトは、event 12Windowsの起動時に記録されるイベントログを検索します。次に、それが何回カウントされたかを示します。

VBSスクリプト:コンピューターの電源を入れた回数を数える

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スクリプト:コンピューターがオンになった回数をリモートでカウントします。

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 

ソースVBSスクリプト–カウントコンピューターがオンになった回数


これがリンク先のWebサイト(更新したばかりのリンク)である場合、そのWebサイトへの所属を開示する必要があることに注意してください。参照してくださいsuperuser.com/help/behavior
slhck

@slhck-はい、個人のブログを参照しています。私はそれらのルールを知りませんでした。自分のブログにもあるコンテンツを参照していることを明確にするために使用する標準的な行はありますか?時間があるときに、すべての回答を投稿しました。ドメイン名を変更しているため、ドメインの有効期限が切れる前にリンクを更新します。私は個人的なブログを運営して、覚えておく必要のあることを記録し、知識を共有しています。したがって、スーパーユーザー間の相互投稿です。
ovann86 14

1
はっきり言って、「私のブログ」などと言ってください。実際の回答がここに含まれていることを確認し、人々が解決策を得るためにサイトを離れる必要がない限り、それは問題ありません。詳細へのリンクの追加は常に大丈夫です。
slhck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.