2017-01-26 10 views
0

昨日からPowerShellを使用してTaskSchedulerイベントの結果を取得しようとしています。昨日からイベントを取得する

Get-WinEvent -LogName Microsoft-Windows-TaskScheduler/Operational -MaxEvents 5 | 
    Where-Object ($_.TimeCreated -gt [DateTime]::Today.AddDays(-1)) 
Format-List * 

注:これは私のコードです

  1. -MaxEvents 5は、私が開発していながら、出力を制限することです。

  2. Where-objectを削除すると、完全なリストが返されます。これは、フィルタリングが適用されていないために予想されます。したがって、エラーはフィルタリングが行われている途中にある必要があります。

+0

あなたのフィルタ式では動作しますが、あなたの構文が間違っています。フィルター式はカッコではなく、中括弧で囲む必要があります。 '... | Where-Object {...} | ... ' –

答えて

1

は、あなたはそれがすべてのイベントを取得し、それらのあなたが欲しいだけフィルタリングよりも高速になり、フィルタリングするGet-WinEventFilterHashTableプロパティを使用することができます。

これは、TaskSchedulerのログがないため、最終日のすべてのイベントをシステムログから取得します。

$date = (Get-Date).AddDays(-1) 
$events = Get-WinEvent -FilterHashTable @{ LogName = "System"; StartTime = $date;} 
$events | Format-List 

あなたは、イベントログにほとんどすべてのフィールドをフィルタ処理することができます - further info on this

関連する問題