ラージビッグバナー(970x90)

Windows

【PowerShell】Get-EventLogでイベントログを確認する方法

更新日:

ビッグバナー(piglog)728px

先日、Windows Server Backup の処理が、連日コケ続けていて、サーバに接続できないということがありました。

原因はバックアップ先のディスクが故障していたのですが、処理の結果が、正常にバックアップできたのか、エラーで終了したのかちゃんと通知する必要があるなぁ・・・と思い、というか前からわかってはいたことなのですが、先送りにしていたことに数年越しに着手したので、メモを残します。

この記事では、Powershell でイベントログを確認するところから。。。

Powershell のコマンドレット「Get-EventLog」

Powershellでイベントログを確認できるコマンドは、

  • Get-EventLog
  • Get-WinEvent

のふたつあるのですが、今回は Get-EventLog の確認方法です。

なぜ、Get-EventLog なのか、それは、ぐぐって最初にヒットして、さわったのが Get-EventLog だったから(汗)。。。Microsoftサポートの「中の人」によると、Get-WinEvent のほうが新しいコマンドで、いろいろフィルタも細かくできるよっ とのことだったのですが、せっかく調べたので活動履歴を残させていただきます!

 

まずは、普通にバックアップのイベントを確認してみます。

上記は、

  • LogName : Application
  • ソース     : Microsoft-Windows-Backup
  • 新しいほうから3つ

のログを表示させています。ソースの情報が切れてしまっていますね。。。

切れているのを修正するためには、以下のように Format-Table コマンドとオプション -AutoSize を利用します。

さらに、

  • ログレベル(エラー、警告、情報)のフィルタを追加
  • 発生時間・ログレベル・メッセージ のみを表示

させてみたものが以下になります。見やすいように改行しています。

だいぶ、運用現場的にみて現実的になってきたのではないでしょうか!

例えば、「情報」レベルのログが不要であれば、-EntryTypeオプション で Error と Warning のみ指定すれば良いです。その内容をメール送信することで、バックアップのエラー検知もできますね。

また、Format-Table で 時間を TimeGenerated を指定している点もポイントです。

Format-Table で指定しない場合は、Time となっていましたが、Get-Member で確認してみると(↓)TimeGenerated、または、TimeWritten となっていました。↑ではイベントが生成された TimeGenerated を指定しています。

↑よくみると EventID というプロパティもありますので、Where-Object を使って対象のイベントIDを除外する、なんてこともできますね。

 

まとめ

Powershell「Get-EventLog」でイベントログ内容を確認する方法を説明してきましたが、いかがでしたでしょうか。

ログの名前やソース、ログレベルなどを指定して、ぱぱっとイベントを確認したいときなんかは 重宝しますね。

次回は、Microsoft中の人がおすすめする Get-WinEvent をさわってみたいと思います。

以上です。

↓↓↓ 持っていると便利な一冊 ↓↓↓

レクタングル (大)

レクタングル (大)

リンクユニット(レスポンシブ)

-Windows
-,

Copyright© ぴぐろぐ , 2019 All Rights Reserved.