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
は、追加の EventLogName、Source、および 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
文字列配列として、イベントに関連付けられているユーザー名を指定します。 User01
、User*
、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-EventLog
と Get-WinEvent
は、Windows プレインストール環境 (Windows PE) ではサポートされていません。
関連リンク
PowerShell