Get-WinEvent
ローカルおよびリモート コンピューター上のイベント ログとイベント トレース ログ ファイルからイベントを取得します。
構文
Get-WinEvent
[[-LogName] <string[]>]
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-ListLog] <string[]>
[-ComputerName <string>]
[-Credential <pscredential>]
[-Force]
[<CommonParameters>]
Get-WinEvent
[-ListProvider] <string[]>
[-ComputerName <string>]
[-Credential <pscredential>]
[<CommonParameters>]
Get-WinEvent
[-ProviderName] <string[]>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-Path] <string[]>
[-MaxEvents <long>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-FilterXml] <xml>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-FilterHashtable] <hashtable[]>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-Force]
[-Oldest]
[<CommonParameters>]
説明
コマンドレットは Get-WinEvent
、 システム ログや アプリケーション ログなどのクラシック ログを含むイベント ログからイベントを取得します。 コマンドレットは、Windows Vista で導入された Windows イベント ログ テクノロジによって生成されたイベント ログからデータを取得します。 また、 Event Tracing for Windows (ETW) によって生成されたログ ファイル内のイベント。 既定では、 Get-WinEvent
は、最新から最も古い順にイベント情報を返します。
Get-WinEvent
には、イベント ログとイベント ログ プロバイダーが一覧表示されます。 コマンドを中断するには、Ctrl C キーを押します+。 選択したログまたは選択したイベント プロバイダーによって生成されたログからイベントを取得できます。 さらに、1 つのコマンドで複数のソースからのイベントを組み合わせることができます。
Get-WinEvent
では、XPath クエリ、構造化 XML クエリ、ハッシュ テーブル クエリを使用してイベントをフィルター処理できます。
管理者として PowerShell を実行していない場合は、ログに関する情報を取得できないエラー メッセージが表示されることがあります。
例
例 1: ローカル コンピューターからすべてのログを取得する
このコマンドは、ローカル コンピューター上のすべてのイベント ログを取得します。 ログは、ログを取得する Get-WinEvent
順序で一覧表示されます。 クラシック ログが最初に取得され、その後に新しい Windows イベント ログが取得されます。
ログの RecordCount が null (空白)、または 0 である可能性があります。
Get-WinEvent -ListLog *
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14500 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 3015 CxAudioSvcLog
Circular 20971520 ForwardedEvents
Circular 20971520 0 HardwareEvents
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 ListLog パラメーターは、アスタリスク (*
) ワイルドカードを使用して各ログに関する情報を表示します。
例 2: クラシック セットアップ ログを取得する
このコマンドは、クラシック セットアップ ログを表す EventLogConfiguration オブジェクトを取得します。 オブジェクトには、ファイル サイズ、プロバイダー、ファイル パス、ログが有効になっているかどうかなど、ログに関する情報が含まれます。
Get-WinEvent -ListLog Setup | Format-List -Property *
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Setup
LogType : Operational
LogIsolation : Application
IsEnabled : True
IsClassicLog : False
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes : 1052672
LogMode : Circular
OwningProviderName : Microsoft-Windows-Eventlog
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
コマンドレットでは Get-WinEvent
、 ListLog パラメーターを使用して セットアップ ログを指定します。 オブジェクトは、パイプラインから コマンドレットに Format-List
送信されます。 Format-List
では、 Property パラメーターとアスタリスク (*
) ワイルドカードを使用して、各プロパティを表示します。
例 3: サーバーからイベント ログを取得する
このコマンドは、イベントを含むローカル コンピューター上のイベント ログのみを取得します。 ログの RecordCount が null またはゼロになる可能性があります。 この例では、 変数を使用します $_
。 詳細については、「about_Automatic_Variables」を参照してください。
Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14546 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 2990 CxAudioSvcLog
Circular 1052672 9 MSFTVPN Setup
Circular 1052672 282 OAlerts
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 ListLog パラメーターは、アスタリスク (*
) ワイルドカードを使用して各ログに関する情報を表示します。 ComputerName パラメーターは、ローカル コンピューター localhost からログを取得することを指定します。 オブジェクトは、パイプラインから コマンドレットに Where-Object
送信されます。 Where-Object
を使用 $_.RecordCount
して、データを含むログのみを返します。 $_
は、パイプライン内の現在のオブジェクトを表す変数です。 RecordCount は、null 以外の値を持つオブジェクトのプロパティです。
例 4: 複数のサーバーからイベント ログを取得する
この例では、3 台のコンピューター (Server01、Server02、Server03) の アプリケーション イベント ログを表すオブジェクトを取得します。 ComputerName パラメーターは 1 つの値のみを受け入れるため、ForEach キーワード (keyword)が使用されます。 詳細については、「 about_Foreach」を参照してください。
$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
Get-WinEvent -ListLog Application -ComputerName $Server |
Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
@{name='ComputerName'; expression={$Server}} |
Format-Table -AutoSize
}
LogMode MaximumSizeInBytes RecordCount LogName ComputerName
------- ------------------ ----------- ------- ------------
Circular 15532032 14577 Application Server01
Circular 15532032 9689 Application Server02
Circular 15532032 5309 Application Server03
変数$S
には、Server01、Server02、Server03 の 3 つのサーバーという名前が格納されます。 ForEach ステートメントでは、 ($Server in $S)
ループを使用して各サーバー を処理します。 中かっこ ({ }
) のスクリプト ブロックは、 コマンドを Get-WinEvent
実行します。 ListLog パラメーターは、アプリケーション ログを指定します。 ComputerName パラメーターは、 変数$Server
を使用して各サーバーからログ情報を取得します。
オブジェクトは、パイプラインから コマンドレットに Select-Object
送信されます。 Select-Object
プロパティ LogMode、MaximumSizeInBytes、RecordCount、LogName を取得し、計算式を使用して、 変数を使用して $Server
ComputerName を表示します。 オブジェクトは、PowerShell コンソールに出力を Format-Table
表示するために、パイプラインをコマンドレットに送信します。 AutoSize パラメーターは、画面に合わせて出力の書式を設定します。
例 5: イベント ログ プロバイダーとログ名を取得する
このコマンドは、イベント ログ プロバイダーと、そのプロバイダーが書き込むログを取得します。
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 ListProvider パラメーターは、アスタリスク (*
) ワイルドカードを使用して各プロバイダーに関する情報を表示します。 出力では、 Name はプロバイダー、 LogLinks はプロバイダーが書き込むログです。
例 6: 特定のログに書き込むすべてのイベント ログ プロバイダーを取得する
このコマンドは、 アプリケーション ログに書き込むすべてのプロバイダーを取得します。
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 ListLog パラメーターは、Application を使用してそのログのオブジェクトを取得します。 ProviderNames は オブジェクトのプロパティであり、 アプリケーション ログに書き込むプロバイダーを表示します。
例 7: 特定の文字列を含むイベント ログ プロバイダー名を取得する
このコマンドは、プロバイダーの名前に特定の文字列を含む名前を持つイベント ログ プロバイダーを取得します。
Get-WinEvent -ListProvider *Policy*
Name : Group Policy Applications
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Client
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Data Sources
LogLinks : {Application}
Opcodes : {}
Tasks : {}
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 ListProvider パラメーターは、アスタリスク (*
) ワイルドカードを使用して、プロバイダーの名前内の任意の場所で Policy を検索します。
例 8: イベント プロバイダーによって生成されるイベント ID を取得する
このコマンドは、 Microsoft-Windows-GroupPolicy イベント プロバイダーが生成するイベント ID とイベントの説明を一覧表示します。
(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description
Id Description
-- -----------
1500 The Group Policy settings for the computer were processed successfully...
1501 The Group Policy settings for the user were processed successfully...
4115 Group Policy Service started.
4116 Started the Group Policy service initialization phase.
4117 Group Policy Session started.
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 ListProvider パラメーターは、プロバイダーである Microsoft-Windows-GroupPolicy を指定します。 式はかっこで囲まれ、 Events プロパティを使用してオブジェクトを取得します。 オブジェクトは、パイプラインから コマンドレットに Format-Table
送信されます。 Format-Table
には、イベント オブジェクトの ID と 説明 が表示されます。
例 9: イベント オブジェクトのプロパティからログ情報を取得する
この例では、イベント オブジェクトのプロパティを使用してログの内容に関する情報を取得する方法を示します。 イベント オブジェクトは変数に格納され、 イベント ID と Level でグループ化およびカウントされます。
PS> $Event = Get-WinEvent -LogName 'Windows PowerShell'
PS> $Event.Count
195
PS> $Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
Count Name
----- ----
147 600
22 400
21 601
3 403
2 103
PS> $Event | Group-Object -Property LevelDisplayName -NoElement
Count Name
----- ----
2 Warning
193 Information
コマンドレットは Get-WinEvent
LogName パラメーターを使用して、Windows PowerShellイベント ログを指定します。 イベント オブジェクトは 変数に $Event
格納されます。
$Event.Count
は、変数の $Event
Count プロパティを使用して、ログに記録されたイベントの合計数を表示します。
変数は $Event
、パイプラインをコマンドレットに Group-Object
送信します。 Group-Object
では、 Property パラメーターを使用して Id プロパティを指定し、Id でオブジェクトをカウント します。 NoElement パラメーターは、オブジェクトの出力から他のプロパティを削除します。 グループ化されたオブジェクトは、パイプラインから コマンドレットに Sort-Object
送信されます。 Sort-Object
Property パラメーターを使用して、Count でオブジェクトを並べ替えます。 Descending パラメーターは、最大から最も低い値までのカウントで出力を表示します。 出力の Count 列には 、各イベントの合計数が含まれています。 [名前] 列には、グループ化された ID 番号が含まれています。
変数は $Event
、パイプラインをコマンドレットに Group-Object
送信します。 Group-Object
Property パラメーターを使用して LevelDisplayName プロパティを指定し、LevelDisplayName でオブジェクトをカウントします。 オブジェクトは、 警告 や 情報などのレベルでグループ化されます。
NoElement パラメーターは、出力から他のプロパティを削除します。 出力の Count 列には 、各イベントの合計数が含まれています。 [名前] 列には、グループ化された LevelDisplayName が含まれています。
例 10: 名前に指定された文字列を含むエラー イベントを取得する
この例では、ログ名のコンマ区切り文字列を使用します。 出力は、エラーや警告などのレベルとログ名によってグループ化されます。
Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* | Group-Object -Property LevelDisplayName, LogName -NoElement | Format-Table -AutoSize
Count Name
----- ----
1 Error, PowerShellCore/Operational
26 Information, Microsoft-Windows-Kernel-WHEA/Operational
488 Information, Microsoft-Windows-PowerShell/Operational
77 Information, PowerShellCore/Operational
9835 Information, Windows PowerShell
19 Verbose, PowerShellCore/Operational
444 Warning, Microsoft-Windows-PowerShell/Operational
512 Warning, PowerShellCore/Operational
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 LogName パラメーターは、コンマ区切りの文字列とアスタリスク (*
) ワイルドカードを使用してログ名を指定します。 オブジェクトは、パイプラインから コマンドレットに Group-Object
送信されます。 Group-Object
では、 Property パラメーターを使用して、 LevelDisplayName と LogName でオブジェクトをグループ化 します。 NoElement パラメーターは、出力から他のプロパティを削除します。 グループ化されたオブジェクトは、パイプラインから コマンドレットに Format-Table
送信されます。 Format-Table
では、 AutoSize パラメーターを使用して列の書式を設定します。 Count 列には、各イベントの合計数が含まれます。 [名前] 列には、グループ化された LevelDisplayName と LogName が含まれます。
例 11: アーカイブされたイベント ログからイベントを取得する
Get-WinEvent
は、保存されたログ ファイルからイベント情報を取得できます。 このサンプルでは、ローカル コンピューターに格納されているアーカイブされた PowerShell ログを使用します。
Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'
ProviderName: PowerShell
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 13:54:13 403 Information Engine state is changed from Available to Stopped...
3/15/2019 13:54:13 400 Information Engine state is changed from None to Available...
3/15/2019 13:54:13 600 Information Provider "Variable" is Started...
3/15/2019 13:54:13 600 Information Provider "Function" is Started...
3/15/2019 13:54:13 600 Information Provider "FileSystem" is Started...
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 Path パラメーターは、ディレクトリとファイル名を指定します。
例 12: アーカイブされたイベント ログから特定の数のイベントを取得する
これらのコマンドは、アーカイブされたイベント ログから特定の数のイベントを取得します。 Get-WinEvent
には、イベントの最大数または最も古いイベントを取得できるパラメーターがあります。 このサンプルでは、 C:\Test\PowerShellCore Operational.evtx に格納されているアーカイブされた PowerShell ログを使用します。
PS> Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100
ProviderName: PowerShellCore
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 09:54:54 4104 Warning Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13 40962 Information PowerShell console is ready for user input
3/15/2019 07:56:24 4104 Warning Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22 40961 Information PowerShell console is starting up
3/7/2019 10:53:22 8197 Verbose Runspace state changed to Opening
3/7/2019 10:53:22 8195 Verbose Opening RunspacePool
コマンドレットは Get-WinEvent
、コンピューターからログ情報を取得します。 Path パラメーターは、ディレクトリとファイル名を指定します。 MaxEvents パラメーターは、新しいレコードから最も古いものまで、100 個のレコードが表示されるように指定します。
例 13: Windows のイベント トレース
イベント トレース for Windows (ETW) では、イベントが発生すると、イベントがログに書き込まれます。 イベントは、最も古いものから新しい順に格納されます。 アーカイブされた ETW ファイルは、TraceLog.etl などの として.etl
保存されます。
イベントはログに書き込まれる順序で一覧表示されるため、 Oldest パラメーターが必要です。
PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest | Sort-Object -Property TimeCreated -Descending | Select-Object -First 100
コマンドレットは Get-WinEvent
、アーカイブされたファイルからログ情報を取得します。 Path パラメーターは、ディレクトリとファイル名を指定します。 Oldest パラメーターは、書き込まれた順序でイベントを出力するために使用されます。最も古いものから最新の順序でイベントが出力されます。 オブジェクトはパイプラインの下に送信され、 Sort-Object
コマンドレット Sort-Object
は TimeCreated プロパティの値でオブジェクトを降順に並べ替えます。 オブジェクトは、100 個の最新のイベントを Select-Object
表示するコマンドレットにパイプラインの下に送信されます。
例 14: イベント トレース ログからイベントを取得する
この例では、イベント トレース ログ ファイル () とアーカイブされたWindows PowerShell ログ ファイル (.etl
.evtx
) からイベントを取得する方法を示します。 1 つのコマンドで複数のファイルの種類を組み合わせることができます。
ファイルには同じ種類の .NET Framework オブジェクト EventLogRecord が含まれているため、同じプロパティでフィルター処理できます。 ファイルから.etl
読み取っているため、コマンドには Oldest パラメーターが必要ですが、Oldest パラメーターは各ファイルに適用されます。
PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest | Where-Object { $_.Id -eq '403' }
コマンドレットは Get-WinEvent
、アーカイブされたファイルからログ情報を取得します。 Path パラメーターは、コンマ区切りのリストを使用して、各ファイル のディレクトリとファイル名を指定します。 Oldest パラメーターは、書き込まれた順序でイベントを出力するために使用されます。最も古いものから最新の順序でイベントが出力されます。 オブジェクトは、パイプラインの下にコマンドレットに Where-Object
送信されます。 Where-Object
では、スクリプト ブロックを使用して、 と ID が403 のイベントを検索します。 変数は $_
パイプライン内の現在のオブジェクトを表し、 Id は Event Id プロパティです。
例 15: イベント ログの結果をフィルター処理する
この例では、イベント ログからイベントをフィルター処理して選択するさまざまな方法を示します。 これらのコマンドはすべて、過去 24 時間以内に発生したイベントをWindows PowerShell イベント ログから取得します。
フィルター メソッドは、 コマンドレットを使用する Where-Object
よりも効率的です。 フィルターは、オブジェクトが取得されると適用されます。 Where-Object
は、すべてのオブジェクトを取得し、すべてのオブジェクトにフィルターを適用します。
# Using the Where-Object cmdlet:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }
# Using the FilterHashtable parameter:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }
# Using the FilterXML parameter:
PS> Get-WinEvent -FilterXML "<QueryList><Query><Select Path='Windows PowerShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime)<= 86400000]]]</Select></Query></QueryList>"
# Using the FilterXPath parameter:
PS> Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath "*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"
例 16: FilterHashtable を使用してアプリケーション ログからイベントを取得する
この例では、 FilterHashtable パラメーターを使用して 、アプリケーション ログからイベントを取得します。 ハッシュ テーブルでは 、キーと値 のペアが使用されます。 FilterHashtable パラメーターの詳細については、「FilterHashtable を使用した Get-WinEvent クエリの作成」を参照してください。 ハッシュ テーブルの詳細については、「about_Hash_Tables (ハッシュ テーブルについて)」をご覧ください。
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
コマンドレットは Get-Date
AddDays メソッドを使用して、現在の日付の 2 日前の日付を取得します。 date オブジェクトは 変数に $Date
格納されます。
コマンドレットは Get-WinEvent
ログ情報を取得します。 FilterHashtable パラメーターは、出力をフィルター処理するために使用されます。 LogName キーは、値をアプリケーション ログとして指定します。 StartTime キーは、 変数に格納されている値を$Date
使用します。 Id キーは、イベント ID 値 1003 を使用します。
例 17: FilterHashtable を使用してアプリケーション エラーを取得する
この例では、FilterHashtable パラメーターを使用して、過去 1 週間に発生したインターネット エクスプローラー アプリケーション エラーを検索します。
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{ Logname='Application'; ProviderName='Application Error'; Data='iexplore.exe'; StartTime=$StartTime }
コマンドレットは Get-Date
AddDays メソッドを使用して、現在の日付の 7 日前の日付を取得します。 date オブジェクトは 変数に $StartTime
格納されます。
コマンドレットは Get-WinEvent
ログ情報を取得します。 FilterHashtable パラメーターは、出力をフィルター処理するために使用されます。 LogName キーは、値をアプリケーション ログとして指定します。 ProviderName キーは、イベントの Source である値 Application Error を使用します。 Data キーは値を使用 iexplore.exeStartTime キーは変数に格納されている値を$StartTime
使用します。
パラメーター
-ComputerName
このコマンドレットがイベント ログからイベントを取得するコンピューターの名前を指定します。 NetBIOS 名、インターネット プロトコル (IP) アドレス、またはコンピューターの完全修飾ドメイン名 (FQDN) を入力します。 既定値はローカル コンピューター localhost です。 このパラメーターは、一度に 1 つのみコンピューター名を受け入れます。
リモート コンピューターからイベント ログを取得するには、リモート アクセスを許可するようにイベント ログ サービスのファイアウォール ポートを構成します。
このコマンドレットは、PowerShell リモート処理には依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、ComputerName パラメーターを使用できます。
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | Local computer |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01 などのユーザー名を入力します。 または、コマンドレットによって生成されたものなど、 PSCredential オブジェクトを Get-Credential
入力します。 ユーザー名を入力すると、パスワードの入力を求められます。 パラメーター名のみを入力すると、ユーザー名とパスワードの両方を入力するように求められます。
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilterHashtable
1 つ以上のイベント ログからイベントを選択するクエリをハッシュ テーブル形式で指定します。 クエリには、1 つ以上の キーと値 のペアを持つハッシュ テーブルが含まれています。
ハッシュ テーブル クエリには、次のルールがあります。
- キーと値では、大文字と小文字は区別されません。
- ワイルドカード文字は、 LogName キーと ProviderName キーに関連付けられている値でのみ有効です。
- 各キーは、各ハッシュ テーブルに 1 回だけ一覧表示できます。
- Path 値は、、
.evt
、および.evtx
ログ ファイルへのパスを.etl
受け取ります。 - LogName、Path、ProviderName の各キーは、同じクエリで使用できます。
- UserID キーは、有効なセキュリティ識別子 (SID) または有効な System.Security.Principal.NTAccount オブジェクトの構築に使用できるドメイン アカウント名を受け取ることができます。
- Data 値は、名前のないフィールド内のイベント データを受け取ります。 たとえば、クラシック イベント ログのイベントなどです。
<named-data>
key は、名前付きイベント データ フィールドを表します。
キーと値のペアを解釈できない場合Get-WinEvent
、キーはイベント内のイベント データの大文字と小文字を区別する名前として解釈されます。
有効な Get-WinEvent
キーと値 のペアは次のとおりです。
- Logname=
<String[]>
- ProviderName=
<String[]>
- パス=
<String[]>
- キーワード=
<Long[]>
- Id=
<Int32[]>
- レベル=
<Int32[]>
- Starttime=
<DateTime>
- Endtime=
<DateTime>
- Userid=
<SID>
- データ=
<String[]>
<named-data>
=<String[]>
Type: | Hashtable[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilterXml
このコマンドレットが 1 つ以上のイベント ログからイベントを選択する構造化 XML クエリを指定します。
有効な XML クエリを生成するには、Windows イベント ビューアーの Create カスタム ビューとフィルターの現在のログ機能を使用します。 ダイアログ ボックス内の項目を使用してクエリを作成し、その後、[XML] タブをクリックして XML 形式でクエリを表示します。 [XML] タブから FilterXml パラメーターの値に XML をコピーできます。 イベント ビューアーの機能の詳細については、イベント ビューアーのヘルプを参照してください。
XML クエリを使用して、複数の XPath ステートメントを含む複雑なクエリを作成します。 XML 形式では、クエリからイベントを除外する Suppress XML 要素を使用することもできます。 イベント ログ クエリの XML スキーマの詳細については、MSDN ライブラリのイベント選択の「クエリ スキーマと XML イベント クエリ」セクションを参照してください。
Type: | XmlDocument |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilterXPath
このコマンドレットが 1 つ以上のログからイベントを選択する XPath クエリを指定します。
XPath 言語の詳細については、MSDN ライブラリの「イベントの選択」の「XPath リファレンス」および「選択フィルター」セクションを参照してください。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
その他のイベント ログに加え、デバッグ ログと分析ログを取得します。 Force パラメーターは、Name パラメーターにワイルドカード文字が含まれる場合に、デバッグ ログと分析ログを取得するために必要です。
既定では、デバッグ ログまたは分析ログの Get-WinEvent
完全な名前を指定しない限り、コマンドレットはこれらのログを除外します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ListLog
イベント ログを指定します。 コンマ区切りの一覧で、イベント ログ名を入力します。 ワイルドカードを使用できます。 すべてのログを取得するには、アスタリスク (*
) ワイルドカードを使用します。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ListProvider
このコマンドレットが取得するイベント ログ プロバイダーを指定します。 イベント ログ プロバイダーは、イベント ログにイベントを書き込むプログラムまたはサービスです。
コンマ区切りの一覧でプロバイダー名を入力します。 ワイルドカードを使用できます。 コンピューター上のすべてのイベント ログのプロバイダーを取得するには、アスタリスク (*
) ワイルドカードを使用します。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LogName
このコマンドレットがイベントを取得するイベント ログを指定します。 コンマ区切りの一覧で、イベント ログ名を入力します。 ワイルドカードを使用できます。 ログ名を コマンドレットに Get-WinEvent
パイプすることもできます。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-MaxEvents
返されるイベントの最大数を指定します。 100 などの整数を入力します。 既定では、ログやファイル内のすべてのイベントを返します。
Type: | Int64 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Oldest
このコマンドレットが最も古い順にイベントを取得することを示します。 既定では、イベントは新しい順に返されます。
このパラメーターは、および ファイルおよび .etl
デバッグ ログと .evt
分析ログからイベントを取得するために必要です。 これらのファイルでは、イベントは古い順に記録され、イベントは古い順でのみ返すことができます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
このコマンドレットがイベントを取得するイベント ログ ファイルへのパスを指定します。 コンマ区切りの一覧でログ ファイルへのパスを入力するか、ワイルドカード文字を使用してファイル パス パターンを作成します。
Get-WinEvent
は、、.evtx
、および ファイル名拡張子を.evt
持つファイルを.etl
サポートします。 同じコマンドで、異なるファイルおよびファイルの種類からのイベントを含めることができます。
Type: | String[] |
Aliases: | PSPath |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-ProviderName
このコマンドレットがイベントを取得するイベント ログ プロバイダーを文字列配列として指定します。 コンマ区切りの一覧でプロバイダー名を入力するか、ワイルドカード文字を使用してプロバイダー名パターンを作成します。
イベント ログ プロバイダーは、イベント ログにイベントを書き込むプログラムまたはサービスです。 PowerShell プロバイダーではありません。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
入力
System.String, System.Xml.XmlDocument, System.Collections.Hashtable
LogName (文字列)、FilterXML クエリ、または FilterHashtable クエリを にGet-WinEvent
パイプライン化できます。
出力
System.Diagnostics.Eventing.Reader.EventLogConfiguration, System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.Eventing.Reader.ProviderMetadata
ListLog パラメーターを指定すると、 Get-WinEvent
System.Diagnostics.Eventing.Reader.EventLogConfiguration オブジェクトが返されます。
ListProvider パラメーターを使用すると、 Get-WinEvent
System.Diagnostics.Eventing.Reader.ProviderMetadata オブジェクトが返されます。
その他のすべてのパラメーターを指定すると、 Get-WinEvent
System.Diagnostics.Eventing.Reader.EventLogRecord オブジェクトが 返されます。
メモ
Get-WinEvent
は、Windows Vista、Windows Server 2008 R2、およびそれ以降のバージョンの Windows で実行されます。
Get-WinEvent
は、Windows Vista 以降のバージョンの Get-EventLog
Windows を実行しているコンピューターで コマンドレットを置き換えることを目的としています。 Get-EventLog
は、クラシック イベント ログでのみイベントを取得します。 Get-EventLog
は、下位互換性のために PowerShell 6 より前のバージョンで保持されます。
Get-WinEvent
コマンドレットと Get-EventLog
コマンドレットは、Windows プレインストール環境 (Windows PE) ではサポートされていません。