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 в качестве значения свойства. понятия не имею почему. Даже с кавычками или чем-то еще, не выводите события.

0 ответов

Другие вопросы по тегам