Windowsサーバーが再起動またはシャットダウンするたびの履歴と、ユーザーが開始した、システムが開始した、システムがクラッシュしたなどの理由を簡単に確認するにはどうすればよいですか?
Windowsイベントログは明白な答えですが、表示する必要があるイベントの完全なリストは何ですか?
私の質問に部分的に答えるこれらの投稿を見つけました:
しかし、それらはAFAIKのすべてのシナリオをカバーしているわけではなく、情報は複数の回答に分散しているため、理解するのが困難です。
私はWindows Serverのいくつかのバージョンを持っているので、少なくともバージョン2008、2008 R2、2012、および2012 R2で機能するソリューションが理想的です。
私が見つけることができる最も明確で最も簡潔な答えは次のとおりです。
監視するこれらのイベントIDをリストします(引用されていますが、記事から編集および再フォーマットされています)。
さらに、私のOPにリストされているサーバー障害の回答からさらに2、3を追加します。
見逃しましたか?
JohnCは基本的にすべてをカバーしてきたので、私はこれをコメントとして残しておきますが、まだそうすることはできません。
彼が説明したイベントはかなり長い間使用されてきたので、あなたが言及したどのOSでも、それらのデスクトップの兄弟でも動作します。 TechNetの 6006 のページなど、彼がリンクしたイベントIDページは、Windows Server 2003について言及しています。
エレガントなシャットダウンがあった場合、ユーザーが開始したかどうかにかかわらず、いくつかの イベントID 7036 が表示され、さまざまなサービスが「停止状態になった」ことが示されます。マシンが再び起動すると、より多くの7036が表示され、サービスが実行状態に入っていることが通知されます。
@ JohnC sの回答に基づいて構築し、それを拡張する
次のようなXMLフィルターを使用できます。
<QueryList>
<Query Id="0" Path="System">
<Select Path="Security">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="Setup">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Thermal-Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='User32'] and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-WER-SystemErrorReporting'] and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
</Query>
</QueryList>
時間範囲の172800000を以下の値に置き換えることができます。
86400000-過去24時間
172800000-過去2日間
604800000-過去7日間
これにより、サーバー/ PCがオフラインになったときからの詳細が表示されます。これには、Kernel-Power、User32、およびEventLogイベントが含まれます。
コマンドラインからアクティビティを実行することを好みます。これが、活用できるスニペットの始まりです。これは、最新の30,000システムレコードを示し、それらのレコード内の再起動を返します。
Get-EventLog -LogName System -Newest 30000 | Where-Object {$_.EventID -eq 6005}
@ user10082 コメント を回答に変えます。提案されたソリューションは、1行のPowershellスクリプトです。
Get-EventLog -LogName System |? {$_.EventID -in (6005,6006,6008,6009,1074,1076)} | ft TimeGenerated,EventId,Message -AutoSize –wrap