Требуется помощь по XPath в powershell командлете Get-WinEvent

Обращаюсь за помощью, потому что голову уже всю сломал... Через интерфейс EventViewer я отфильтровываю вчерашние события журнала Microsoft-Windows-TerminalServices-Gateway/Operational:

Фильтр текущего журнала

…и беру строку XML-запроса:

XML-фильтр текущего журнала

…и, если я правильно понял, то, что заключено в элементе <select></select> – это строка XPath, а, сохранив отфильтрованные события в файл и открыв его в EventViewer я увижу, как в XML-запросе выглядит указатель на файл.

Однако, нижеследующий код в 1 и 3 случаях возвращает ошибку «запрос задан неверно» 8-о, во 2-м – отрабатывает без ошибок, а в 4-м – по факту отрабатывает, но пуляет исключение «Не удалось получить сведения о журнале file://C:\Users\User\Desktop\2020-04-26.evtx. Ошибка: Указан неверный путь к каналу.»

$firstevent = (Get-Date -Hour 0 -Minute 00 -Second 00 -Millisecond 000).AddDays(-1).AddHours(-4).ToString("yyyy-MM-ddTHH:mm:ss.fffZ")
$lastevent  = (Get-Date -Hour 23 -Minute 59 -Second 59 -Millisecond 999).AddDays(-1).AddHours(-4).ToString("yyyy-MM-ddTHH:mm:ss.fffZ")

$XPathString = "*[System[TimeCreated[@SystemTime&gt;='"+$firstevent+"' and @SystemTime&lt;='$lastevent']]]"

$PathString = "Microsoft-Windows-TerminalServices-Gateway/Operational"

$XFilter = "<QueryList><Query Id=`"0`" Path=`"$PathString`"><Select Path=`"$PathString`">$XPathString</Select></Query></QueryList>"



$events = @()
$events = Get-WinEvent -LogName $PathString -FilterXPath $XPathString
$events
'1##########################################################################################################################################'

$events = @()
$events = Get-WinEvent -FilterXml $XFilter
$events
'2##########################################################################################################################################'



$OpenFileDialog = New-Object 'System.Windows.Forms.OpenFileDialog'
$OpenFileDialog.ShowDialog() | Out-Null

$PathString = "file://"+$OpenFileDialog.FileName
$XFilter = "<QueryList><Query Id=`"0`" Path=`"$PathString`"><Select Path=`"$PathString`">$XPathString</Select></Query></QueryList>"



$events = @()
$events = Get-WinEvent -Path $OpenFileDialog.FileName -FilterXPath $XPathString
$events
'3##########################################################################################################################################'

$events = @()
$events = Get-WinEvent -FilterXml $XFilter
$events
'4##########################################################################################################################################'

Однако...

Всю голову сломал, что не так-то???

Други, выручайте, а?


Ответы (0 шт):