Я не могу проверить, действительно ли работает ваш фильтр, при условии, что с шиной все в порядке, у вас есть два варианта здесь.
- Попробуйте проанализировать данные (особенно часть
Message
), используя много неуклюжих регулярных выражений - Получите необходимые данные из XML
Я предпочитаю второй вариант:
$filter = "*[System[EventID=4670 and TimeCreated[timediff(@SystemTime) <= 86400000]] and EventData[Data[@Name='ObjectType']='File']]"
$result = Get-WinEvent -ComputerName DS1 -LogName Security -FilterXPath $filter | ForEach-Object {
# convert the event to XML and grab the Event node
$eventXml = ([xml]$_.ToXml()).Event
$eventData = $eventXml.EventData.Data
# output the properties you need
[PSCustomObject]@{
TimeCreated = [DateTime]$eventXml.System.TimeCreated.SystemTime
AccountName = ($eventData | Where-Object { $_.Name -eq 'SubjectUserName' }).'#text'
AccountDomain = ($eventData | Where-Object { $_.Name -eq 'SubjectDomainName' }).'#text'
ObjectType = ($eventData | Where-Object { $_.Name -eq 'ObjectType' }).'#text'
ObjectName = ($eventData | Where-Object { $_.Name -eq 'ObjectName' }).'#text'
Computer = $eventXml.System.Computer
}
}
# output on screen
$result
# output to CSV file
$result | Export-Csv -Path 'X:\TheOutputFile.csv' -NoTypeInformation