Get-EventLog

ローカル コンピューターまたはリモート コンピューター上のイベント ログ内のイベント、またはイベント ログの一覧を取得します。

構文

Get-EventLog
   [-LogName] <String>
   [-ComputerName <String[]>]
   [-Newest <Int32>]
   [-After <DateTime>]
   [-Before <DateTime>]
   [-UserName <String[]>]
   [[-InstanceId] <Int64[]>]
   [-Index <Int32[]>]
   [-EntryType <String[]>]
   [-Source <String[]>]
   [-Message <String>]
   [-AsBaseObject]
   [<CommonParameters>]
Get-EventLog
   [-ComputerName <String[]>]
   [-List]
   [-AsString]
   [<CommonParameters>]

説明

Get-EventLog コマンドレットは、ローカル コンピューターとリモート コンピューターからイベントとイベント ログを取得します。 既定では、 Get-EventLog はローカル コンピューターからログを取得します。 リモート コンピューターからログを取得するには、 ComputerName パラメーターを使用します。

Get-EventLogパラメーターとプロパティ値を使用して、イベントを検索できます。 コマンドレットは、指定されたプロパティ値に一致するイベントを取得します。

EventLog名詞を含む PowerShell コマンドレットは、アプリケーション、システム、セキュリティなどの Windows クラシック イベント ログでのみ機能します。 Windows Vista 以降の Windows バージョンで Windows イベント ログ テクノロジを使用するログを取得するには、 Get-WinEventを使用します。

Note

Get-EventLog では、非推奨の Win32 API が使用されます。 結果が正確でない可能性があります。 代わりに、 Get-WinEvent コマンドレットを使用してください。

例 1: ローカル コンピューターでイベント ログを取得する

次の使用例は、ローカル コンピューターで使用できるイベント ログの一覧を表示します。 Log 列の名前は、 LogName パラメーターと共に使用して、イベントを検索するログを指定します。

Get-EventLog -List

Max(K)   Retain   OverflowAction      Entries  Log
------   ------   --------------      -------  ---
15,168        0   OverwriteAsNeeded   20,792   Application
15,168        0   OverwriteAsNeeded   12,559   System
15,360        0   OverwriteAsNeeded   11,173   Windows PowerShell

Get-EventLog コマンドレットは、List パラメーターを使用して使用可能なログを表示します。

例 2: ローカル コンピューター上のイベント ログから最近使用したエントリを取得する

この例では、システム イベント ログから最近のエントリを取得します。

Get-EventLog -LogName System -Newest 5

Index   Time          EntryType    Source              InstanceID   Message
-----   ----          ---------    ------              ----------   -------
13820   Jan 17 19:16  Error        DCOM                     10016   The description for Event...
13819   Jan 17 19:08  Error        DCOM                     10016   The description for Event...
13818   Jan 17 19:06  Information  Service Control...  1073748864   The start type of the Back...
13817   Jan 17 19:05  Error        DCOM                     10016   The description for Event...
13815   Jan 17 19:03  Information  Microsoft-Windows...        35   The time service is now sync...

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム イベント ログを指定します。 Newest パラメーターは、最新の 5 つのイベントを返します。

例 3: イベント ログ内の特定の数のエントリのすべてのソースを検索する

この例では、システム イベント ログの 1000 個の最新のエントリに含まれるすべてのソースを検索する方法を示します。

$Events = Get-EventLog -LogName System -Newest 1000
$Events | Group-Object -Property Source -NoElement | Sort-Object -Property Count -Descending

Count   Name
-----   ----
  110   DCOM
   65   Service Control Manager
   51   Microsoft-Windows-Kern...
   14   EventLog
   14   BTHUSB
   13   Win32k

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム ログを指定します。 Newest パラメーターは、最新の 1000 個のイベントを選択します。 イベント オブジェクトは、 $Events 変数に格納されます。 $Events オブジェクトは、パイプラインから Group-Object コマンドレットに送信されます。 Group-Object では、 Property パラメーターを使用してオブジェクトをソース別にグループ化し、各ソースのオブジェクト数をカウントします。 NoElement パラメーターは、グループ メンバーを出力から削除します。 Sort-Object コマンドレットは、Property パラメーターを使用して、各ソース名の数で並べ替えます。 Descending パラメーターは、リストを最大から最下位の順に並べ替えます。

例 4: 特定のイベント ログからエラー イベントを取得する

この例では、システム イベント ログからエラー イベントを取得します。

Get-EventLog -LogName System -EntryType Error

Index Time          EntryType   Source  InstanceID Message
----- ----          ---------   ------  ---------- -------
13296 Jan 16 13:53  Error       DCOM    10016 The description for Event ID '10016' in Source...
13291 Jan 16 13:51  Error       DCOM    10016 The description for Event ID '10016' in Source...
13245 Jan 16 11:45  Error       DCOM    10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07  Error       DCOM    10016 The description for Event ID '10016' in Source...

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム ログを指定します。 EntryType パラメーターはイベントをフィルター処理して、Error イベントのみを表示します。

例 5: InstanceId と Source 値を持つイベント ログからイベントを取得する

この例では、特定の InstanceId とソースのシステム ログからイベントを取得します。

Get-EventLog -LogName System -InstanceId 10016 -Source DCOM

Index Time          EntryType  Source  InstanceID  Message
----- ----          ---------  ------  ----------  -------
13245 Jan 16 11:45  Error      DCOM         10016  The description for Event ID '10016' in Source...
13230 Jan 16 11:07  Error      DCOM         10016  The description for Event ID '10016' in Source...
13219 Jan 16 10:00  Error      DCOM         10016  The description for Event ID '10016' in Source...

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム ログを指定します。 InstanceID パラメーターは、指定されたインスタンス ID を持つイベントを選択します。 Source パラメーターは、イベント プロパティを指定します。

例 6: 複数のコンピューターからイベントを取得する

このコマンドは、Server01、Server02、Server03 の 3 台のコンピューター上のシステム イベント ログからイベントを取得します。

Get-EventLog -LogName System -ComputerName Server01, Server02, Server03

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム ログを指定します。 ComputerName パラメーターは、コンマ区切りの文字列を使用して、イベント ログを取得するコンピューターを一覧表示します。

例 7: メッセージに特定の単語を含むすべてのイベントを取得する

このコマンドは、イベントのメッセージ内の特定の単語を含むシステム イベント ログ内のすべてのイベントを取得します。 指定した Message パラメーターの値がメッセージのコンテンツに含まれているが、PowerShell コンソールには表示されない可能性があります。

Get-EventLog -LogName System -Message *description*

Index Time          EntryType   Source       InstanceID   Message
----- ----          ---------   ------       ----------   -------
13821 Jan 17 19:17  Error       DCOM              10016   The description for Event ID '10016'...
13820 Jan 17 19:16  Error       DCOM              10016   The description for Event ID '10016'...
13819 Jan 17 19:08  Error       DCOM              10016   The description for Event ID '10016'...

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム イベント ログを指定します。 Message パラメーターは、各イベントのメッセージ フィールドで検索する単語を指定します。

例 8: イベントのプロパティ値を表示する

この例では、イベントのすべてのプロパティと値を表示する方法を示します。

$A = Get-EventLog -LogName System -Newest 1
$A | Select-Object -Property *

EventID            : 10016
MachineName        : localhost
Data               : {}
Index              : 13821
Category           : (0)
CategoryNumber     : 0
EntryType          : Error
Message            : The description for Event ID '10016' in Source 'DCOM'...
Source             : DCOM
ReplacementStrings : {Local,...}
InstanceId         : 10016
TimeGenerated      : 1/17/2019 19:17:23
TimeWritten        : 1/17/2019 19:17:23
UserName           : username
Site               :
Container          :

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム イベント ログを指定します。 Newest パラメーターは、最新のイベント オブジェクトを選択します。 オブジェクトは $A 変数に格納されます。 $A変数内のオブジェクトは、パイプラインから Select-Object コマンドレットに送信されます。 Select-Object では、 Property パラメーターとアスタリスク (*) を使用して、オブジェクトのすべてのプロパティを選択します。

例 9: ソースとイベント ID を使用してイベント ログからイベントを取得する

この例では、指定したソース ID とイベント ID のイベントを取得します。

Get-EventLog -LogName Application -Source Outlook | Where-Object {$_.EventID -eq 63} |
              Select-Object -Property Source, EventID, InstanceId, Message

Source   EventID   InstanceId   Message
------   -------   ----------   -------
Outlook       63   1073741887   The Exchange web service request succeeded.
Outlook       63   1073741887   Outlook detected a change notification.
Outlook       63   1073741887   The Exchange web service request succeeded.

Get-EventLog コマンドレットは、LogName パラメーターを使用してアプリケーション イベント ログを指定します。 Source パラメーターは、アプリケーション名 Outlook を指定します。 オブジェクトは、パイプラインから Where-Object コマンドレットに送信されます。 パイプライン内の各オブジェクトについて、 Where-Object コマンドレットは変数 $_.EventID を使用して、イベント ID プロパティを指定した値と比較します。 オブジェクトは、パイプラインから Select-Object コマンドレットに送信されます。 Select-Object では、 Property パラメーターを使用して、PowerShell コンソールに表示するプロパティを選択します。

例 10: プロパティでイベントとグループ化を取得する

Get-EventLog -LogName System -UserName NT* | Group-Object -Property UserName -NoElement |
              Select-Object -Property Count, Name

Count  Name
-----  ----
6031   NT AUTHORITY\SYSTEM
  42   NT AUTHORITY\LOCAL SERVICE
   4   NT AUTHORITY\NETWORK SERVICE

Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム ログを指定します。 UserName パラメーターには、ユーザー名の一部を指定するアスタリスク (*) ワイルドカードが含まれています。 イベント オブジェクトは、パイプラインから Group-Object コマンドレットに送信されます。 Group-Object は、 Property パラメーターを使用して、 UserName プロパティを使用してオブジェクトをグループ化し、各ユーザー名のオブジェクト数をカウントすることを指定します。 NoElement パラメーターは、グループ メンバーを出力から削除します。 オブジェクトは、パイプラインから Select-Object コマンドレットに送信されます。 Select-Object では、 Property パラメーターを使用して、PowerShell コンソールに表示するプロパティを選択します。

例 11: 特定の日時範囲内に発生したイベントを取得する

この例では、指定した日付と時刻の範囲のシステム イベント ログからエラー イベントを取得します。 Before および After パラメーターは日付と時刻の範囲を設定しますが、出力から除外されます。

$Begin = Get-Date -Date '1/17/2019 08:00:00'
$End = Get-Date -Date '1/17/2019 17:00:00'
Get-EventLog -LogName System -EntryType Error -After $Begin -Before $End

Index Time          EntryType   Source   InstanceID  Message
----- ----          ---------   ------   ----------  -------
13821 Jan 17 13:40  Error       DCOM          10016  The description for Event ID...
13820 Jan 17 13:11  Error       DCOM          10016  The description for Event ID...
...
12372 Jan 17 10:08  Error       DCOM          10016  The description for Event ID...
12371 Jan 17 09:04  Error       DCOM          10016  The description for Event ID...

Get-Date コマンドレットでは、Date パラメーターを使用して日付と時刻を指定します。 DateTime オブジェクトは、$Begin変数と$End変数に格納されます。 Get-EventLog コマンドレットは、LogName パラメーターを使用してシステム ログを指定します。 EntryType パラメーターは、Error イベントの種類を指定します。 日付と時刻の範囲は、 After パラメーターと $Begin 変数、および Before パラメーターと $End 変数によって設定されます。

パラメーター

-After

指定した日時より後に発生したイベントを取得します。 After パラメーターの日付と時刻は出力から除外されます。 Get-Date コマンドレットによって返される値など、DateTime オブジェクトを入力します。

型:DateTime
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-AsBaseObject

このコマンドレットは、各イベントの標準 System.Diagnostics.EventLogEntry オブジェクトを返します。 このパラメーターを指定しない場合、Get-EventLogは、追加の EventLogNameSource、および InstanceId プロパティを持つ拡張PSObject オブジェクトを返します。

このパラメーターの効果を確認するには、イベントを Get-Member コマンドレットにパイプし、結果の TypeName 値を調べます。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-AsString

このコマンドレットは、オブジェクトではなく文字列として出力を返します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Before

指定した日時より前に発生したイベントを取得します。 Before パラメーターの日付と時刻は出力から除外されます。 Get-Date コマンドレットによって返される値など、DateTime オブジェクトを入力します。

型:DateTime
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ComputerName

このパラメーターは、リモート コンピューターの NetBIOS 名、インターネット プロトコル (IP) アドレス、または完全修飾ドメイン名 (FQDN) を指定します。

ComputerName パラメーターが指定されていない場合、Get-EventLogは既定でローカル コンピューターに設定されます。 このパラメーターは、ローカル コンピューターを指定するドット (.) も受け取ります。

ComputerName パラメーターは、Windows PowerShell リモート処理に依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、ComputerName パラメーターでGet-EventLogを使用できます。

型:String[]
Aliases:Cn
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-EntryType

文字列配列として、このコマンドレットが取得するイベントのエントリ型を指定します。

このパラメーターの有効値は、次のとおりです。

  • エラー
  • 情報
  • FailureAudit
  • SuccessAudit
  • 警告
型:String[]
Aliases:ET
指定可能な値:Error, Information, FailureAudit, SuccessAudit, Warning
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Index

イベント ログから取得するインデックス値を指定します。 このパラメーターは、コンマ区切りの値の文字列を受け取ります。

型:Int32[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InstanceId

イベント ログから取得するインスタンス ID を指定します。 このパラメーターは、コンマ区切りの値の文字列を受け取ります。

型:Int64[]
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-List

コンピューター上のイベント ログの一覧を表示します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LogName

1 つのイベント ログの名前を指定します。 ログ名を検索するには、 Get-EventLog -Listを使用します。 ワイルドカード文字を使用できます。 このパラメーターは必須です。

型:String
Aliases:LN
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Message

イベント メッセージ内の文字列を指定します。 このパラメーターを使用して、特定の単語または語句を含むメッセージを検索できます。 ワイルドカードを使用できます。

型:String
Aliases:MSG
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Newest

最新のイベントで始まり、指定した数のイベントを取得します。 -Newest 100など、イベントの数が必要です。 返されるイベントの最大数を指定します。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Source

文字列配列として、このコマンドレットが取得するログに書き込まれたソースを指定します。 ワイルドカードを使用できます。

型:String[]
Aliases:ABO
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-UserName

文字列配列として、イベントに関連付けられているユーザー名を指定します。 User01User*Domain01\User*などの名前または名前のパターンを入力します。 ワイルドカードを使用できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

入力

None

Get-EventLogに入力をパイプすることはできません。

出力

System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String

LogName パラメーターが指定されている場合、出力は System.Diagnostics.EventLogEntry オブジェクトのコレクションです。

List パラメーターのみが指定されている場合、出力は System.Diagnostics.EventLog オブジェクトのコレクションです。

List パラメーターと AsString パラメーターの両方が指定されている場合、出力は System.String オブジェクトのコレクションです。

メモ

コマンドレット Get-EventLogGet-WinEvent は、Windows プレインストール環境 (Windows PE) ではサポートされていません。