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