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 パラメーターは、イベントをフィルター処理して、エラー イベントのみを表示します。

例 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 パラメーターの日付と時刻は出力から除外されます。 コマンドレットによって返される値など、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) アドレス、または完全修飾 doメイン 名 (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

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

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

  • エラー
  • 情報
  • 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:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

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

Type:Int64[]
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:Int32
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

文字列配列として、イベントに関連付けられているユーザー名を指定します。 名前または名前のパターンを入力します (例: User01,User*、)。Domain01\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-EventLogGet-WinEventは、Windows プレインストール環境 (Windows PE) ではサポートされていません。