Get-EventLog
ローカル コンピューターまたはリモート コンピューター上のイベント ログまたはイベント ログの一覧内のイベントを取得します。
構文
Get-EventLog
[-LogName] <string>
[[-InstanceId] <long[]>]
[-ComputerName <string[]>]
[-Newest <int>]
[-After <datetime>]
[-Before <datetime>]
[-UserName <string[]>]
[-Index <int[]>]
[-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します。
例
例 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-ObjectProperty パラメーターを使用して、オブジェクトをソース別にグループ化し、各ソースのオブジェクト数をカウントします。 NoElement パラメーターは、出力からグループ メンバーを削除します。
このコマンドレットでは Sort-Object 、 Property パラメーターを使用して、各ソース名の数で並べ替えます。
降順パラメーターは、リストをカウント順に昇順に並べ替えます。
例 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 パラメーターは、イベントをフィルター処理して、エラー イベントのみを表示します。
例 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 を使用して Event 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-ObjectProperty パラメーターを使用して、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 オブジェクトは、変数と$End変数に$Begin格納されます。 このコマンドレットではGet-EventLog、LogName パラメーターを使用してシステム ログを指定します。 EntryType パラメーターは、Error イベントの種類を指定します。 日付と時刻の範囲は、 After パラメーターと変数、および $BeginBefore パラメーターと $End 変数によって設定されます。
パラメーター
指定した日時の後に発生したイベントを取得します。 After パラメーターの日付と時刻は出力から除外されます。 コマンドレットによって返される値など、 DateTime オブジェクトを Get-Date 入力します。
| Type: | DateTime |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
このコマンドレットは、イベントごとに標準の System.Diagnostics.EventLogEntry オブジェクトを返します。 このパラメーターを指定しない場合は、 Get-EventLog追加の EventLogName、Source、InstanceId プロパティを含む拡張 PSObject オブジェクトを返します。
このパラメーターの効果を確認するには、コマンドレットに Get-Member イベントをパイプし、結果の TypeName 値を調べます。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
このコマンドレットは、オブジェクトの代わりに、出力を文字列として返します。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定した日時より前に発生したイベントを取得します。 Before パラメーターの日付と時刻は出力から除外されます。 コマンドレットによって返される値など、 DateTime オブジェクトを Get-Date 入力します。
| Type: | DateTime |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
このパラメーターは、リモート コンピューターの NetBIOS 名、インターネット プロトコル (IP) アドレス、または完全修飾ドメイン名 (FQDN) を指定します。
ComputerName パラメーターが指定されていない場合は、Get-EventLog既定でローカル コンピューターが使用されます。 このパラメーターは、ローカル コンピューターを指定するドット (.) も受け取ります。
ComputerName パラメーターは、Windows PowerShellリモート処理に依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、ComputerName パラメーターと共に使用Get-EventLogできます。
| Type: | String[] |
| Aliases: | Cn |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
文字列配列として、このコマンドレットが取得するイベントのエントリの種類を指定します。
このパラメーターの有効値は、次のとおりです。
- エラー
- Information
- FailureAudit
- SuccessAudit
- 警告
| Type: | String[] |
| Aliases: | ET |
| Accepted values: | Error, Information, FailureAudit, SuccessAudit, Warning |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
イベント ログから取得するインデックス値を指定します。 パラメーターは、コンマ区切りの値の文字列を受け取ります。
| Type: | int[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
イベント ログから取得するインスタンス ID を指定します。 パラメーターは、コンマ区切りの値の文字列を受け取ります。
| Type: | long[] |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
コンピューター上のイベント ログの一覧を表示します。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
1 つのイベント ログの名前を指定します。 ログ名を検索するには、次を使用 Get-EventLog -Listします。 ワイルドカード文字を使用できます。 このパラメーターは必須です。
| Type: | String |
| Aliases: | LN |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | True |
イベント メッセージ内の文字列を指定します。 このパラメーターを使用して、特定の単語または語句を含むメッセージを検索できます。 ワイルドカードを使用できます。
| Type: | String |
| Aliases: | MSG |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | True |
最新のイベントで始まり、指定された数のイベントを取得します。 たとえば -Newest 100、イベントの数が必要です。 返されるイベントの最大数を指定します。
| Type: | Int |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
このコマンドレットが取得するログに書き込まれたソースを、文字列配列として指定します。 ワイルドカードを使用できます。
| Type: | String[] |
| Aliases: | ABO |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | True |
イベントに関連付けられているユーザー名を文字列配列として指定します。 名前または名前のパターンを入力します (例: User01, User*, ) または Domain01\User*. ワイルドカードを使用できます。
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | 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) ではサポートされていません。