PowerShell Get-EventLog

Windowsのイベントログから指定したものだけ抜き出せる、
eventquery.vbs
は、WindowsServer2008以降は使えません。


1)まずは打ってみましょ。

Get-EventLog -list

PS C:> Get-EventLog -list

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  20,480      0 OverwriteAsNeeded       6,488 Application
  20,480      0 OverwriteAsNeeded           0 HardwareEvents
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
  20,480      0 OverwriteAsNeeded       4,292 Security
  20,480      0 OverwriteAsNeeded       8,908 System
  15,360      0 OverwriteAsNeeded         172 Windows PowerShell

PS C:>

2)ログの詳細を見る場合

ログには
・Application
・HardwareEvents
・Internet Explorer
・Key Management Service
・Security
・System
・Windows PowerShell
があることが分かりました。

その中でもシステムログを見てみます

ログ・・・・・・・・・・System
オプション・・・・・LogName

(止めるときはCtrl+C)

PS C:> Get-EventLog -LogName System

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
    8917 1 07 18:47    Information Service Control M...   1073748860 WinHTTP Web Proxy Auto-Discovery Service サービ...
    8916 1 07 18:41    Information Service Control M...   1073748860 Application Experience サービスは 停止 状態に移...
    8915 1 07 18:31    Information FcsSas                 1073882897 セキュリティ状態の評価スキャンは正常に終了しま...
    8914 1 07 18:31    Information Microsoft-Windows...           19 インストールの成功: 次の更新プログラムが正しく...
             ・
             ・
             ・
PS C:>

これだと見難いので、

オプション・・・・・Format-List *
(止めるときはCtrl+C)

PS C:> Get-EventLog -LogName System | Format-List *

EventID            : 7036
MachineName        : Hogehoge
Data               : {87, 0, 80, 0...}
Index              : 8908
Category           : (0)
CategoryNumber     : 0
EntryType          : Information
Message            : Portable Device Enumerator Service サービスは 停止 状態に移行しました。
Source             : Service Control Manager
ReplacementStrings : {Portable Device Enumerator Service, 停止}
InstanceId         : 1073748860
TimeGenerated      : 2010/01/07 16:40:19
TimeWritten        : 2010/01/07 16:40:19
UserName           :
Site               :
Container          :
             ・
             ・
             ・
PS C:>

エントリが「EntryType」に「エラーレベル」があることが分かります。
他には、「EventID」を良く見ますね。

3)例として「Error」だけ抜き出します

「システムログ」の中で「Error」だけを抜き出します。
(ログが多いと大変時間がかかります。)

ログ・・・・・・・・・・System
エントリ・・・・・・・EntryType
エラーレベル・・・Error
オプション・・・・・Where {$_.エントリ -eq “一致する文字列” }

補足
Error・・・・・・エラー
Warning・・・・・警告
Information ・・情報
SuccessAudit ・・成功した監査
FailureAudit ・・失敗した監査

(止めるときはCtrl+C)

PS C:> Get-EventLog -LogName System | Where {$_.EntryType -eq "Error" } | Format-List *

EventID            : 56
MachineName        : Hogehoge
Data               : {0, 0, 4, 0...}
Index              : 8854
Category           : (0)
CategoryNumber     : 0
EntryType          : Error
Message            : ターミナル サーバーのセキュリティ層で、プロトコル ストリームにエラーが検出され、クライアントが切断
                     されました。
                     クライアント IP: ***.***.***.***。
Source             : TermDD
ReplacementStrings : {DeviceTermdd, ***.***.***.***}
InstanceId         : 3221880888
TimeGenerated      : 2010/01/06 12:38:29
TimeWritten        : 2010/01/06 12:38:29
UserName           :
Site               :
Container          :
             ・
             ・
             ・
PS C:>

このエラーはリモートデスクトップを通常切断しなかった時のエラーです。

4)日付で絞り込む

今までのやり方だと時間はかかるし大変です。
今度は、1週間前までで「System」の中で「Warning」だけを抜き出します。
(ログが多いと大変時間がかかります。)

期間・・・・・・・・・・過去7日間
ログ・・・・・・・・・・System
エントリ・・・・・・・Timegenerated
エラーレベル・・・Warning
オプション・・・・・where {$_.Timegenerated -gt (get-date).AddDays(-日数)}

補足
(get-date).AddHours(-時間)
(get-date).AddMilliseconds(-ミリ秒)
(get-date).AddMinutes(-分)
(get-date).AddMonths(-月)
(get-date).AddSeconds(-秒)
(get-date).AddTicks(-タイマ刻み数)
(get-date).AddYears(-年)

(止めるときはCtrl+C)

PS C:> Get-EventLog -LogName System | Where {$_.EntryType -eq "Warning"} | Where {$_.timegenerated -gt (get-date).AddDays(-7)} | Format-List *

EventID            : 1002
MachineName        : Hogehoge
Data               : {}
Index              : 8664
Category           : (0)
CategoryNumber     : 0
EntryType          : Warning
Message            : %Microsoft Forefront Client Security スキャンは完了する前に停止しました。

                         スキャン ID: {******************}

                         スキャンの種類: %マルウェア対策ソフトウェア

                         スキャン パラメータ: %クイック スキャン

                         ユーザー: hogehohehogehoge
Source             : FCSAM
ReplacementStrings : {******************}
InstanceId         : 1002
TimeGenerated      : 2010/01/04 20:22:35
TimeWritten        : 2010/01/04 20:22:35
UserName           :
Site               :
Container          :
             ・
             ・
             ・
PS C:>

あははは~~
Forefront Client Securityのスキャンを途中で止めたのが分かりますね。

[tegaki]タブ補完が良い!![/tegaki]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください