次の方法で共有


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-EventLogList パラメーターを使用して、使用可能なログを表示します。

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

例 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-EventLogLogName パラメーターを使用してシステム ログを指定します。 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-EventLogLogName パラメーターを使用してシステム ログを指定します。 InstanceID パラメーターは、指定されたインスタンス ID を持つイベントを選択します。 Source パラメーターは、イベント プロパティを指定します。

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

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

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

コマンドレットでは Get-EventLogLogName パラメーターを使用してシステム ログを指定します。 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-EventLogLogName パラメーターを使用してシステム イベント ログを指定します。 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-EventLogLogName パラメーターを使用してシステム イベント ログを指定します。 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-EventLogLogName パラメーターを使用してアプリケーション イベント ログを指定します。 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-EventLogLogName パラメーターを使用してシステム ログを指定します。 UserName パラメーターには、ユーザー名の一部を指定するアスタリスク (*) ワイルドカードが含まれています。 イベント オブジェクトは、パイプラインの下にコマンドレットに Group-Object 送信されます。 Group-ObjectProperty パラメーターを使用して、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-DateDate パラメーターを使用して日付と時刻を指定します。 DateTime オブジェクトは、 および $End 変数に$Begin格納されます。 コマンドレットでは Get-EventLogLogName パラメーターを使用してシステム ログを指定します。 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追加の EventLogNameSourceおよび 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*などのUser01User*名前または名前パターンを入力します。 ワイルドカードを使用できます。

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) ではサポートされていません。