В настоящее время я экспортирую журналы аудита безопасности 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) <= 604800000]]] </Select> </Query> </QueryList> "@ Get-WinEvent -FilterXML $CustomView | Export-CSV "C:\CustomView_$(Get-Date -format "yyyy-MM-DD").csv"
Как можно экспортировать CSV со следующими столбцами?
Идентификатор события, Идентификатор безопасности, имя учетной записи, домен учетной записи, идентификатор входа, вход в систему, время создания
Подробная информация из тела сообщения о событии хранится в 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