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