次の方法で共有


Get-EventLog

ローカル コンピューターまたはリモート コンピューター上のイベント ログまたはイベント ログの一覧のイベントを取得します。

構文

Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParameters>]

Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTime>] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-EntryType <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest <int>] [-Source <string[]>] [-UserName <string[]>] [<CommonParameters>]

説明

Get-EventLog コマンドレットは、ローカル コンピューターおよびリモート コンピューター上のイベントおよびイベント ログを取得します。

プロパティ値を使用してイベントを検索するには、Get-EventLog のパラメーターを使用します。Get-EventLog は、指定されたプロパティ値のすべてと一致するイベントのみを取得します。

EventLog という名詞を含むコマンドレット (EventLog コマンドレット) は、従来のイベント ログでのみ有効です。Windows Vista 以降のバージョンで Windows イベント ログ技術を使用しているログからイベントを取得するには、Get-WinEvent を使用します。

パラメーター

-After <DateTime>

指定された日時の後に発生するイベントのみを取得します。Get-Date コマンドレットによって返されるような DateTime オブジェクトを入力してください。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-AsBaseObject

各イベントの標準 System.Diagnostics.EventLogEntry オブジェクトを返します。このパラメーターがない場合、Get-EventLog は追加の EventLogName、Source、および InstanceId プロパティのある拡張 PSObject オブジェクトを返します。

このパラメーターの影響を確認するには、Get-Member コマンドレットに対してイベントをパイプ処理し、その結果に含まれる TypeName 値を調べます。

必須

false

位置

named

既定値

False

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-AsString

出力をオブジェクトではなく文字列として返します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Before <DateTime>

指定された日時の前に発生するイベントのみを取得します。Get-Date コマンドレットによって返されるような DateTime オブジェクトを入力してください。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ComputerName <string[]>

リモート コンピューターを指定します。既定値はローカル コンピューターです。

リモート コンピューターの NetBIOS 名、インターネット プロトコル (IP) アドレス、または完全修飾ドメイン名を入力します。ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または「localhost」を入力します。

このパラメーターは、Windows PowerShell リモート処理に依存しません。コンピューターがリモート コマンドを実行するように構成されていない場合でも、Get-EventLog の ComputerName パラメーターを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-EntryType <string[]>

指定された入力型を持つイベントのみを取得します。有効な値は、Error、Information、FailureAudit、SuccessAudit、および Warning です。既定値はすべてのイベントです。

必須

false

位置

named

既定値

All events

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Index <Int32[]>

指定されたインデックス値を持つイベントのみを取得します。

必須

false

位置

named

既定値

All events

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-InstanceId <Int64[]>

指定されたインスタンス ID を持つイベントのみを取得します。

必須

false

位置

2

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-List

コンピューター上のイベント ログの一覧を取得します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-LogName <string>

イベント ログを指定します。1 つのイベント ログのログ名 (LogDisplayName ではなく Log プロパティの値) を入力します。ワイルドカード文字は使用できません。このパラメーターは必須です。

必須

true

位置

1

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Message <string>

メッセージに指定された文字列が含まれるイベントを取得します。このプロパティを使用すると、特定の語句を含むメッセージを検索できます。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

-Newest <int>

取得されるイベントの最大数を指定します。Get-EventLog はログの最新のイベントから順に、指定された数のイベントを取得します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Source <string[]>

指定されたソースによってログに書き込まれたイベントを取得します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

-UserName <string[]>

指定されたユーザー名と関連付けられているイベントのみを取得します。User01、User*、Domain01\User* など、名前または名前のパターンを入力してください。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

true

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

System.Diagnostics.EventLogEntry。System.Diagnostics.EventLog。System.String

LogName パラメーターを指定すると、出力は EventLogEntry オブジェクトのコレクション (System.Diagnostics.EventLogEntry) となります。 List パラメーターのみを指定すると、出力は EventLog オブジェクトのコレクション (System.Diagnostics.EventLog) となります。 List パラメーターと AsString パラメーターの両方を指定すると、出力は Strings のコレクション (System.String) となります。

例 1

C:\PS>get-eventlog -list

説明
-----------
このコマンドを実行すると、コンピューター上のイベント ログに関する情報が表示されます。





例 2

C:\PS>get-eventlog -newest 5 -logname application

説明
-----------
このコマンドを実行すると、アプリケーション イベント ログの最新のエントリが 5 件表示されます。





例 3

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | group-object -property source -noelement | sort-object -property count -descending

Count Name
----- ----
   75 Service Control Manager
   12 Print
    6 UmrdpService
    2 DnsApi
    2 DCOM
    1 Dhcp
    1 TermDD
    1 volsnap

説明
-----------
この例は、システム イベント ログの最新エントリ 1000 件に示されたすべてのソースを検索する方法を示します。

最初のコマンドを実行すると、システム イベント ログから最新のエントリが 1000 件取得され、$events 変数に格納されます。

2 番目のコマンドは、パイプライン演算子 (|) を使用して、$events に保存されているイベントを Group-Object コマンドレットに送信します。このコマンドレットは、Source プロパティの値によってエントリをグループ化します。このコマンドは、第 2 のパイプライン演算子を使用してグループ化されたイベントを Sort-Object コマンドレットに送信します。このコマンドレットはそれらを降順に並べ替えるので、頻繁に表示されるソースから先に一覧に表示されます。

ソースはイベント ログ エントリのプロパティにすぎません。イベント ログ エントリのすべてのプロパティを表示するには、Get-Member コマンドレットに対してイベントをパイプ処理します。





例 4

C:\PS>get-eventlog -logname System -EntryType Error

説明
-----------
このコマンドは、システム イベント ログからエラー イベントのみを取得します。





例 5

C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM"

説明
-----------
このコマンドは、InstanceID が 3221235481 で Source の値が "DCOM" のイベントをシステム ログから取得します。





例 6

C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, Server01, Server02

説明
-----------
このコマンドは、Server01、Server02、および "localhost" と呼ばれるローカル コンピューターの 3 台のコンピューター上の "Windows PowerShell" イベント ログからイベントを取得します。





例 7

C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*"

説明
-----------
このコマンドは、Windows PowerShell イベント ログ内で、メッセージの値に "failed" という単語が含まれるすべてのイベントを取得します。





例 8

C:\PS>$a = get-eventlog -log System -newest 1

C:\PS> $a | format-list -property *

EventID            : 7036
MachineName        : Server01
Data               : {}
Index              : 10238
Category           : (0)
CategoryNumber     : 0
EntryType          : Information
Message            : The description for Event ID
Source             : Service Control Manager
ReplacementStrings : {WinHTTP Web Proxy Auto-Disco
InstanceId         : 1073748860
TimeGenerated      : 4/11/2008 9:56:05 PM
TimeWritten        : 4/11/2008 9:56:05 PM
UserName           :
Site               :
Container          :

説明
-----------
この例は、イベントのすべてのプロパティ値を表示する方法を示しています。

最初のコマンドは、システム イベント ログから最新のイベントを取得し、$a 変数に保存します。

2 番目のコマンドは、パイプライン演算子 (|) を使用して $a に格納されるイベントを Format-List コマンドに送信します。これによりイベント プロパティのすべて (*) が表示されます。





例 9

C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 34}

説明
-----------
このコマンドは、アプリケーション イベント ログから Source が Outlook でイベント ID が 34 であるイベントを取得します。Get-EventLog には EventID パラメーターはありませんが、Where-Object コマンドレットを使用するとイベント プロパティの値に基づきイベントを選択できます。





例 10

C:\PS>get-eventlog -log system -username NT* | group-object -property username -noelement | format-table Count, Name -auto

Count Name
----- ----
 6031 NT AUTHORITY\SYSTEM
   42 NT AUTHORITY\LOCAL SERVICE
    4 NT AUTHORITY\NETWORK SERVICE

説明
-----------
このコマンドは、システム ログのイベントを UserName プロパティの値でグループ化して返します。Get-EventLog コマンドは、UserName パラメーターを使用してユーザー名が "NT*" で始まるイベントのみを取得します。





例 11

C:\PS>$May31 = get-date 5/31/08

C:\PS> $July1 = get-date 7/01/08

C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may31 -before $july1

説明
-----------
このコマンドは、Windows PowerShell イベント ログから 2008 年 6 月に発生したすべてのエラーを取得します。





関連項目

概念

Get-WinEvent
Clear-EventLog
Limit-EventLog
New-EventLog
Remove-EventLog
Show-EventLog
Write-EventLog
Get-WinEvent