get-winevent: невозможно отфильтровать определенное поле FailureReason %%2313
Я использую get-winevent для события 4625, потому что мне нужна причина сбоя, которая находится в поле xml события.
Первое, что я попробовал, - это распечатать все поля, надеясь, что причина сбоя доступна где-то в пути к данным XML, но безуспешно.
я не нашел способ запросить код состояния %%2313 к чему-то с powershell, чтобы получить читаемый текст.
Последнее, что я сделал, это отфильтровал конкретное событие и сам записал сообщение о статусе в специальное поле моего файла экспорта.
Я использовал этот код для достижения этой цели:
Get-WinEvent -FilterHashtable @{Path="c:\temp\test.evtx";} -ErrorAction SilentlyContinue |
Where-Object {($_.id -eq "4625" -and $_.properties[9].value -in "%% 2313")}|ForEach-Object{
$SelectorStrings = [string[]]@(
'Event/EventData/Data[@Name="TargetUserName"]',
'Event/EventData/Data[@Name="TargetDomainName"]',
'Event/EventData/Data[@Name="WorkstationName"]',
'Event/EventData/Data[@Name="IpAddress"]',
'Event/EventData/Data[@Name="IpPort"]',
'Event/EventData/Data[@Name="LogonType"]',
'Event/EventData/Data[@Name="FailureReason"]',
'Event/EventData/Data[@Name="Remark"]'
)
$PropertySelector = [System.Diagnostics.Eventing.Reader.EventLogPropertySelector]::new($SelectorStrings)
$TargetUserName,$TargetDomainName,$WorkstationName,$IpAddress,$IpPort,$LogonType,$FailureReason,$Remark = $_.GetPropertyValues($PropertySelector)
$Remark ="Unbekannter Benutzername oder ungültiges Kennwort."
#Create the PSCustomObject from the given Fieldnames
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
Id = $_.Id
UserName = $TargetUserName
Domain = $TargetDomainName
WorkstationName = $WorkstationName
IPAddress = $IpAddress
Port = $IpPort
LogonType = $LogonType
Message = ($_.Message).split(".")[0]
Remark = $Remark
FailureReason =$FailureReason
}
}|Export-Csv -NoTypeInformation -Force -Encoding UTF8 -Path 'c:\temp\failurereason.csv'
но: это швы, я не могу фильтровать для %%2313 в качестве значения свойства. понятия не имею почему. Даже с кавычками или чем-то еще, не выводите события.