Сценарий Powershell для извлечения зарегистрированных ошибок

У меня есть много файлов журнала, из которых я хочу извлечь отличное сообщение об ошибке для определенного устройства записи трассировки.

Файлами журнала является SharePoint журналы ULS.

Заголовки: Процесс Метки времени Категория области TID сообщение Уровня EventID Корреляция

Так, учитывая определенное имя процесса я хочу все отличные сообщения.

Если бы я должен был использовать SQL, то я записал бы что-то вроде этого:

выберите Отличное сообщение из где Процесс как 'myprocessname'

Я хотел бы сделать это с powershell через полный набор файлов журнала.

Я полагаю, что журнал ULS является вкладкой или разграниченным пространством.

1
задан Joe Smith 18 July 2010 в 05:43
поделиться

2 ответа

Возможно, вас заинтересует Microsoft Log Parser , который, по сути, позволяет запускать SQL-подобные операторы в наборе файлов журналов. Вы также можете использовать это с Powershell. Вот несколько ссылок:

2
ответ дан 2 September 2019 в 22:57
поделиться

Предполагая, что файл журнала не слишком велик, вы можете прочитать его содержимое с помощью Import-Csv следующим образом:

$data = Import-Csv .\log.csv -Delimiter "`t"

Я предполагаю, что разделителем является табуляция, поскольку, вероятно, любое сообщение будет содержать пробелы. Когда у вас есть данные журнала, вы можете использовать стандартные операторы запросов PowerShell, например:

$data | Where {$_.Process -eq 'processname.exe'} | Select Message -Unique

Если файл журнала огромен (например, Import-Csv съедает слишком много памяти), я бы попытался использовать Log Parser или использовать регулярное выражение и анализируйте журнал по одной строке за раз.

0
ответ дан 2 September 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: