Экспорт имени учетной записи, домена и Отметка времени из журнала событий аудита безопасности

В настоящее время я экспортирую журналы аудита безопасности Microsoft Windows за последние 7 дней через powershell в csv.

Это работает, но с большим количеством деталей, а также с неправильным форматированием. Например, из csv ячейка «сообщение» имеет это в

«Учетная запись была успешно авторизована.

Тема: Идентификатор безопасности: X Имя учетной записи: - Домен учетной записи: -

В настоящее время я экспортирую журналы аудита безопасности Microsoft Windows за последние 7 дней через PowerShell в CSV.

Он работает, но с большим количеством деталей, а также в неправильном формате. Например, из csv ячейка «сообщение» имеет это в

«Учетная запись была успешно авторизована.

Тема: Идентификатор безопасности: X Имя учетной записи: - Домен учетной записи: -

В настоящее время я экспортирую журналы аудита безопасности Microsoft Windows за последние 7 дней через PowerShell в CSV.

Это работает, но с большим количеством деталей, а также с неправильным форматированием. Например, из csv ячейка «сообщение» имеет это в

«Учетная запись была успешно авторизована.

Тема: Идентификатор безопасности: X Имя учетной записи: - Домен учетной записи: - Идентификатор входа: 0x0

Тип входа: 3

Уровень олицетворения: олицетворение

Новый вход: безопасность ID: X Аккаунт Имя: XXX Домен учетной записи: XXX Идентификатор входа: XXX Вход в систему GUID: {XXX}

Информация о процессе: ID процесса: 0x0 Имя процесса: -

Сетевая информация: Имя рабочей станции: - Исходная сеть Адрес: XXX.XXX Исходный порт: XXX ............

Теперь, чтобы перенести вышеуказанное в csv, я использую этот сценарий PowerShell

[xml]$CustomView = @"
<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=4624 or EventID=4672 or EventID=4648 or EventID=463) and TimeCreated[timediff(@SystemTime) &lt;= 604800000]]] </Select>
  </Query>
</QueryList>
"@

Get-WinEvent -FilterXML $CustomView | Export-CSV "C:\CustomView_$(Get-Date -format "yyyy-MM-DD").csv"

Как можно экспортировать CSV со следующими столбцами?

Идентификатор события, Идентификатор безопасности, имя учетной записи, домен учетной записи, идентификатор входа, вход в систему, время создания

1
задан 9 April 2018 в 11:47
1 ответ

Подробная информация из тела сообщения о событии хранится в XML-файле события. Вы можете преобразовать событие в XML, а затем извлечь каждое из полей XML. Следует иметь в виду, что вы должны запрашивать несколько идентификаторов событий только в том случае, если они используют общую схему, в противном случае свойства события могут не совпадать в выводе. Есть хорошая статья, объясняющая проблему схемы процессов и событий здесь .

На GitHub есть командлет под названием Get-WinEventData , который делает всю тяжелую работу за вас. Выходные данные содержат свойства для всех полей основных событий, таких как имя компьютера, имя поставщика и сообщение. Он также содержит свойства для всех данных события XML. Чтобы использовать это, просто передайте команду Get-WinEvent в Get-WinEventData, выберите нужные свойства и экспортируйте в CSV. Конечно, вам нужно будет заранее импортировать функцию Get-WinEventData.

Пример использования:

Get-WinEvent -FilterHashtable @{LogName="Security";Id=4624,4672;StartTime=(Get-Date).AddDays(-1)} | Get-WinEventData | Select-Object TimeCreated,Id,EventDataSubjectUserSid,EventDataSubjectUserName,EventDataSubjectDomainName,EventDataSubjectLogonId | Export-CSV "Output.csv" -NoTypeInformation
3
ответ дан 3 December 2019 в 18:27

Теги

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