如何获取应用程序事件日志

如何获取应用程序事件日志

我有一些服务器经常出现错误 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]}

这给了我想要的输出,但它生成了三行,而 Export-CSV 无法正确解析它。我怎样才能将它们全部放在一行上?

答案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

相关内容