Назад | Перейти на главную страницу

Как получить приложение для журнала событий приложения

У меня есть несколько серверов, на которых обычно возникают ошибки 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 не хочет его правильно анализировать. Как я могу разместить их всех в одной строке?

Вероятно, это не будет точным для всех типов событий, но свойство 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