2016-04-13 9 views
1

次のPowershellスクリプトは、今日だけoccuringすべてのシステム・エラー・イベントをフェッチする - それが動作します:'GET-EVENTLOG'は完全なオブジェクトリストを作成し、フィルタリングされますか? - 速い方法がありますか?

Get-EventLog System -After ([datetime]::Today) | Where-Object { $_.EntryType -eq "Error" } 

をしかし、それは実行に数秒かかることができます:私はfirst'Get-EventLogに」コマンドレットを生成しているためである疑いがありますの完全なリストすべてイベントを最初に; 'Where-Object'コマンドレットはそのリストをトリムダウンします。

'Get-EventLog'の引数として 'where-object'フィルタを渡して、各オブジェクトをフェッチするときにそのオブジェクトをテストできるようにする方法ですか?

「Get-EventLog」は後続の「Where-Object」に渡されるオブジェクトの完全なリストを維持する必要がないため、このようなメカニズムが速く実行されると推測していますか?

しかし、私はここで推測しています。

また、これは大したことではありません。私の興味/関心のポイントです。

答えて

3
Get-EventLog System -After ([datetime]::Today) -EntryType Error 

はい、このパラメータは元のコマンドで指定できます。

+0

おっと:私はそれを逃している - はい - これははるかに速く動作します。 – monojohnny

+0

(しかし、私は*一般的に、あなたは任意のコマンドレットにフィルタを渡すことはできませんが、オブジェクトパイプラインの終わりに参加させる必要があります。例えば、「選択オブジェクトFirst 1」のような) – monojohnny

+0

実際には、私はそれがより速いのかどうかはわかりません(おそらく、EventLogは動的に変化するものであり、システムによってロックされる必要があります) – monojohnny

関連する問題