2017年1月6日

【PowerShell】イベントログの取得をする


イベントログを取得するには、Get-EventLogを使用します。

構文
Get-EventLog [-LogName] <ログ名>

Get-EventLog [-List]


ログの一覧を取得する

Listパラメータでログの一覧を取得できます。
PS C:\work> Get-EventLog -List

  Max(K) Retain OverflowAction        Entries Log
  ------ ------ --------------        ------- ---
  20,480      0 OverwriteAsNeeded      19,233 Application
     512      7 OverwriteOlder            241 ESRV_SVC_WILLAMETTE
  20,480      0 OverwriteAsNeeded      19,212 GoProDesktopApp
  20,480      0 OverwriteAsNeeded           0 HardwareEvents
     512      7 OverwriteOlder              0 Internet Explorer
  20,480      0 OverwriteAsNeeded           0 Key Management Service
   8,192      0 OverwriteAsNeeded           0 Media Center
     128      0 OverwriteAsNeeded          56 OAlerts
     512      7 OverwriteOlder              0 PreEmptive
  20,480      0 OverwriteAsNeeded      24,609 Security
  20,480      0 OverwriteAsNeeded       7,001 System
     512      7 OverwriteOlder              0 TestLog
     512      7 OverwriteOlder              0 USER_ESRV_SVC_WILLAMETTE
  15,360      0 OverwriteAsNeeded       1,228 Windows PowerShell


LogName

LogNameにログ名を指定するとそのログのイベントログが表示されます。
PS C:\work> Get-EventLog -Newest 5 -LogName "Application"

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
   19233 1 06 21:22    Information SecurityCenter                 15 状態が Windows Defender から SECURITY_PRODUCT_STATE_ON に正常に更新されました。
   19232 1 06 21:22    Information SecurityCenter                 15 状態が Windows Defender から SECURITY_PRODUCT_STATE_ON に正常に更新されました。
   19231 1 06 21:19    Information Windows Error Rep...         1001 障害バケット -693773534、種類 1...
   19230 1 06 21:18    0           Software Protecti...   1073742727 ソフトウェア保護サービスが停止されました。...
   19229 1 06 21:18    Information Software Protecti...   1073758208 ソフトウェア保護サービスの 2116-12-13T12:18:54Z の再起動をスケジュールしました。理由: RulesEngine。
この例では、Newestパラメータで直近5件のApplicationイベントログを表示しています。


EntryType

EntryTypeパラメータでエントリタイプを指定できます。
PS C:\work> Get-EventLog -LogName "System" -EntryType "Error"

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
    6998 1 06 21:18    Error       Service Control M...   3221232506 NVIDIA Update Service Daemon サービスは予期せぬ原因により終了しました。このサービスの強制終了は 1 回目です。
    6996 1 06 21:14    Error       DCOM                        10016 ソース 'DCOM' のイベント ID '10016' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コンピューターに存在しない可能性があります...
    6967 1 05 20:24    Error       DCOM                        10016 ソース 'DCOM' のイベント ID '10016' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コンピューターに存在しない可能性があります...
    6944 1 04 21:00    Error       DCOM                        10016 ソース 'DCOM' のイベント ID '10016' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コンピューターに存在しない可能性があります...
    6936 1 04 20:40    Error       BugCheck               1073742825 ソース 'BugCheck' のイベント ID '1073742825' の説明が見つかりません。必要なレジストリ情報またはメッセージを表示するメッセージ DLL ファイルがローカル コンピューターに存在しない可能性が...
    6934 1 04 20:39    Error       Service Control M...   3221232473 NetTcpActivator サービスは、次のエラーが原因で開始できなかった NetTcpPortSharing サービスに依存しています: ...
・・・
この例では、SystemイベントログからEntryTypeが「Error」のものだけ表示しています。


Messageに特定の単語が含まれるイベントログを取得する

Messageパラメータを使うことによって、Messageに特定の単語が含まれるイベントログを取得することが出来ます。
PS C:\work> Get-EventLog -LogName "Application" -Message "*failed*"

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
   18850 1 04 20:39    Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   18516 1 03 18:24    Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   18301 1 03 14:28    Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   18119 1 03 00:47    Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   17935 1 02 23:19    Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   17467 12 29 10:05   Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   16614 12 22 21:29   Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   16607 12 22 21:29   Error       DbxSvc                 3221356814 Filter Unload failed with: (-2145452013) 指定されたフィルターが見つかりませんでした。
   16092 12 18 11:41   Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   15915 12 18 02:10   Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   15645 12 17 08:09   Error       DbxSvc                 3221356864 Failed to connect to the driver: (-2147024894) 指定されたファイルが見つかりません。
   15612 12 17 08:48   Information MsiInstaller                11729 Product: Google Update Helper -- Configuration failed.
・・・
この例では、Messageに「failed」が含まれるイベントログを表示しています。


指定の期間のイベントログを取得する

AfterパラメータとBeforeパラメータを使って指定した期間のイベントログを取得できます。
PS C:\work> $Dec15 = Get-Date "2016/12/15"
PS C:\work> $Dec20 = Get-Date "2016/12/20"
PS C:\work> Get-EventLog -LogName "Application" -After $Dec15 -Before $Dec20

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
   16445 12 19 22:38   Information Microsoft-Windows...         1530 レジストリ ファイルは他のアプリケーションまたはサービスで使用されています。ファイルはすぐにアンロードされます。レジストリ ファイルを保持しているアプリケーションまたはサービスはこれ以...
   16444 12 19 22:38   Information Desktop Window Ma...   1073750851 デスクトップ ウィンドウ マネージャー セッション ポートを登録しました。
   16443 12 19 21:53   Information Windows Error Rep...         1001 障害バケット 91225693967、種類 5...
   16442 12 19 21:53   Error       SideBySide             3238068257 "C:\Program Files (x86)\Windows Kits\10\bin\arm\signtool.exe.Manifest" のアクティブ化コンテキストの生成に失敗しました。...
   16441 12 19 21:53   Error       SideBySide             3238068257 "C:\Program Files (x86)\Windows Kits\10\bin\arm64\signtool.exe.Manifest" のアクティブ化コンテキストの生成に失敗しました。...
   16440 12 19 21:53   Error       SideBySide             3238068257 "C:\Program Files (x86)\Windows Kits\10\bin\arm64\filetypeverifier.exe" のアクティブ化コンテキストの生成に失敗しました。...
・・・
この例では、Applicationログの中から、日付が2016/12/15~2016/12/19までの期間のイベントログを取得しています。
注意してほしいのは、Beforeで指定している日付より前までのイベントログが取得されることです。つまりBeforeで指定した日付は含まれなということです。





スポンサーリンク