Microsoft Security Essentials のスキャン履歴を取得する(PowerShell 2.0)


概要

  • Get-Eventlog コマンドレットは、PowerShell 2.0 でパラメーターが増強されたので、イベントログを見るだけなら Where-Object コマンドレットは必要なさそう
  • オブジェクトの特定のプロパティを表示させたいときは Format-Table コマンドレット

PowerShell 1.0 の方法

「Microsoft Security Essentials のスキャン履歴を取得する」では、以下のコードでイベントログにアクセスしていた。

Get-EventLog -logName System | Where-Object { $_.Source -eq "Microsoft Antimalware" -and $_.EventId -eq 1001 } | Select-Object -first 10 

実は、このやり方では実行に少し時間がかかる。

これはおそらく、Get-Eventlog コマンドレットが全てのシステムログを取り出しているからだろう。上記の方法を使う限り、最終的に必要とされるレコード数が少なかったとしても、全てのログレコードを取得する必要がある。明らかに効率が悪い。

PowerShell 2.0 の方法

しかし、PowerShell 2.0 では、Get-Eventlog コマンドレットに新たに追加されたパラメーターを使って、イベントソースやイベントIDの絞り込むことができるようになったようだ。

Get-EventLog -LogName System -Source "Microsoft Antimalware" -InstanceID 1001 -Newest 10

イベントソースでフィルタするために Source 、イベントIDでフィルタするために InstanceID 、新着の10件のみを表示させるために Newest (これは1.0からあった)というプロパティを使っている。

ということで Where-Object コマンドレットも、Select-Object コマンドレットも必要なくなった。

Format-Table コマンドレット

このページで知ったのだけど、Format-Table コマンドレットを使うことで、オブジェクトを画面に表示するときの形式を整えられるようだ。

便利そうなのは Property パラメーターで、オブジェクトのどのプロパティを表示するか、明示的に指定できる。

PS C:\Users\daisuke> Get-EventLog -LogName System -Source "Microsoft Antimalware" -InstanceID 1001 -Newest 10 | Format-Table -Property TimeGenerated, Source, InstanceID, Message

TimeGenerated                 Source                                           InstanceId Message
-------------                 ------                                           ---------- -------
2010/04/16 20:13:42           Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/14 2:19:46            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/11 2:05:17            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/10 8:59:37            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/09 2:24:08            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/08 2:24:40            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/07 22:14:01           Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/06 2:24:08            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/04/05 19:45:45           Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...
2010/03/31 2:48:31            Microsoft Antimalware                                  1001 %Microsoft Antimalware sca...

参考文献

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>