ワイヴァンアイエス研究所ブログ

ストレージシステムやITの技術動向やテクノロジーなどを紹介。その他、趣味的な話題もあります
ワイヴァンアイエス研究所ブログ TOP  >  misc. >  Get-EventLog(イベントログを取得するコマンドレット)の使い方

Get-EventLog(イベントログを取得するコマンドレット)の使い方

Cmdlets(コマンドレット)を使うイベントログ取得方法の備忘録です。


Windows PCに起きているイベントログ(エラーなど)を確認するときは、通常はイベントビューアを起動(例:コンテキストメニューの[Win]+[X]、[V])して確認するのですが、PowerShellからコマンドレットを使う方法もあります。 発生したエラーなどを手軽に調べられます。


PowerShellの起動は、コンテキストメニューから行うのが簡単です。管理者特権なし、または、管理者特権付きのいずれでも起動できます。

  • [Win]+[X]のあとに[I]のキーを押す(管理者特権なし)
  • [Win]+[X]のあとに[A]のキーを押す(管理者特権付き)

Get-EventLogは、管理者特権がなくても機能します。PowerShellを起動すると、以下の画面が開きます。

PowerShell.gif 


このプロンプトに入力するイベントログを取得するコマンドレットの例を、以下にダラダラと列記します。最初に補足説明を記述しておきます。

  • 日付指定はYYYY/MM/DDの形式。今年の8月10日なら『2018/08/10』。例では文字色オレンジ。実行する際は、適切な年月日を入力のこと
  • 取得するログの種類(System、Application、Security)を選択指定する「-LogName」は省略可能。例では文字色グレー
  • 例では、英大文字と英小文字でコマンドレットを記述しているが、すべて小文字で記述しても実行可能

最初は例として取り上げたコマンドレットの一覧です。それぞれの説明は、そのあとに記述します。

  1. Get-EventLog -LogName System -After 2018/08/10
  2. Get-EventLog -LogName Application -After 2018/08/10
  3. Get-EventLog -LogName System -After 2018/08/01 -Before 2018/08/03
  4. Get-EventLog System -Newest 10
  5. Get-EventLog Application -Newest 8
  6. Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"}
  7. Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Warning"}
  8. Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Information"}
  9. Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"}
  10. Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Warning"}
  11. Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Information"}
  12. Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"} | Format-List
  13. Get-EventLog -LogName Application | Where-Object {$_.Index -eq 27909} | Format-List
  14. Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"} | Select-Object TimeGenerated,Index,EntryType,InstanceID,Message
  15. Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"} | Export-CSV -path d:\SystemLog.csv -Encoding Default

先ず、日付を指定する基本例からです(以下3例)。


1.システムログ表示(2018年8月10日以降のイベント)

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/10

2.アプリケーションログ表示(2018年8月10日以降のイベント)

■ PowerShellに入力するコマンド
Get-EventLog -LogName Application -After 2018/08/10

3.システムログ表示(2018/08/01から2018/08/02の二日間のイベント)

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/01 -Before 2018/08/03

イベントを新しい順に件数を指定して取得することも出来ます(以下2例)。


4.システムログ表示(最新のイベント10件)

■ PowerShellに入力するコマンド
Get-EventLog System -Newest 10

5.アプリケーションログ表示(最新のイベント8件)

■ PowerShellに入力するコマンド
Get-EventLog Application -Newest 8

重要度レベル「Error、Warning、Information」で絞り込めます。ここでは、2018年8月10日以降のイベントログを対象とします(以下6例)。


6.システムログ中の「Error」のみを表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"}

7.システムログ中の「Warning」のみを表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Warning"}

8.システムログ中の「Information」のみを表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Information"}

9.アプリケーションログ中の「Error」のみを表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"}

10.アプリケーションログ中の「Warning」のみを表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Warning"}

11.アプリケーションログ中の「Information」のみを表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Information"}

詳細情報を表示します(以下3例)。


12.レベル「Error」の詳細情報をレイアウトして表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName Application -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"} | Format-List

13.Indexを指定して特定のログの詳細情報をレイアウトして表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName Application | Where-Object {$_.Index -eq 27909} | Format-List

上記の「27909」は適宜変更してください。以下のスクリーンショットで説明します。

get-eventlog02.gif 

ある日付以降にErrorレベルのイベントが発生しているかどうかを表示させます。表示された情報の一番左に「Index」がありますので、これを使ってこの詳細を表示できます。これは、Indexの「27909」を使った例です。スクリーンショットのように、コマンドレットは小文字のみでも問題ありません。


14.任意の列情報(日付、インデックス、レベル、イベントID、メッセージ)を表示

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"} | Select-Object TimeGenerated,Index,EntryType,InstanceID,Message

最後に、Excelなどで利用するためCSV(Comma Separetaed Values)ファイルに出力する方法です(以下1例)。


15.システムログのレベル「Error」をファイルに出力

■ PowerShellに入力するコマンド
Get-EventLog -LogName System -After 2018/08/10 | Where-Object {$_.EntryType -eq "Error"} | Export-CSV -path d:\SystemLog.csv -Encoding Default

「-path」は省略可。「-path」の後のファイル名は適宜変更してください。日本語の文字化けを防ぐため「-Encoding Default」を必ず指定。



すべての記事をまとめた★カテゴリーごとの全記事一覧★がありますのでご覧ください。


以下のバナーをクリックしていただくと、とても励みになります!

にほんブログ村 IT技術ブログ IT技術情報へ

[Ctrl]キーを押しながらクリックすると他のページに飛びません

[ 2018年08月17日 12:47 ] カテゴリ:misc. | TB(-) | CM(-)