アプリケーションイベントログを取得する方法

アプリケーションイベントログを取得する方法

よくエラー 1000 が発生するサーバーがいくつかあります。常に同じアプリケーションなのか、それとも異なるアプリケーションなのかを調べたいです。私はこれを使用しています:

Get-EventLog application 1000 -entrytype error -newest 10 | select timegenerated,message | Export-Csv errors.csv

出力には、複数行のメッセージ フィールドの一部としてアプリケーション名 (具体的には exe ファイル) が表示されます。

出力からアプリケーション名だけを抽出する方法がわかりません。

出力を Get-Member にパイプすると、メッセージ フィールドが配列のように見えますが、現時点では配列のその部分を抽出する方法がわかりません。


Get-EventLog application 1000 -entrytype error -newest 10 | %{$_.machinename,$_.timegenerated,$_.ReplacementStrings[0]}

これにより、必要な出力が得られますが、3 行にわたって生成され、Export-CSV では適切に解析されません。これらすべてを 1 行にまとめるにはどうすればよいですか?

答え1

おそらくすべてのイベント タイプで正確ではないでしょうが、プロパティはReplacementStrings配列であり、InstanceID 1000 を見ると、最初の要素は実行可能ファイルの名前になります。

> Get-EventLog application 1000 -entrytype error -newest 10 | %{$_.ReplacementStrings[0]}
Ssms.exe
Ssms.exe
Ssms.exe
uniStudio.exe
SwyxIt!.exe
Ssms.exe
uniRTE.exe
uniStudio.exe
Ssms.exe
Ssms.exe

私の PS-foo は朝のこの時間帯は弱いのですが、それをあなたのselectコマンドと組み合わせて CSV にエクスポートする方法がきっとあるはずです。


アップデートによると、必要な出力がテーブル形式で得られるようになります。export-csvただし、それがどの程度うまく機能するかはわかりません:

Get-EventLog application 1000 -entrytype error -newest 10|Format-Table @{Expression={$_.machinename};Label="Machine Name";width=25},@{Expression={$_.timegenerated.DateTime};Label="DateTime";width=25},@{Expression={$_.ReplacementStrings[0]};Label="EXEName";width=25}

気にしないでください。前回の更新では複雑になりすぎました。これで問題なく動作するはずです (後でもっとうまくできるとわかっていました):

> Get-EventLog application 1000 -entrytype error -newest 10|Select-Object  timegenerated,message,@{name='Executable';expression={$_.ReplacementStrings[0]}}|Export-CSV errors.csv


TimeGenerated                           Message                                 Executable
-------------                           -------                                 ----------
14/01/2014 7:23:13 AM                   Faulting application name: Ssms.exe,... Ssms.exe
13/01/2014 7:26:44 AM                   Faulting application name: Ssms.exe,... Ssms.exe
10/01/2014 7:30:24 AM                   Faulting application name: Ssms.exe,... Ssms.exe
8/01/2014 5:25:13 PM                    The description for Event ID '1000' ... uniStudio.exe
31/12/2013 3:09:58 PM                   The description for Event ID '1000' ... SwyxIt!.exe
19/12/2013 7:35:21 AM                   Faulting application name: Ssms.exe,... Ssms.exe
18/12/2013 2:55:45 PM                   Faulting application name: uniRTE.ex... uniRTE.exe
18/12/2013 9:25:49 AM                   The description for Event ID '1000' ... uniStudio.exe
18/12/2013 7:32:29 AM                   Faulting application name: Ssms.exe,... Ssms.exe
16/12/2013 1:22:38 PM                   Faulting application name: Ssms.exe,... Ssms.exe

関連情報