如何使用Select-Xml,-Xml和-XPath从事件查看器中过滤XML

时间:2017-10-09 11:13:31

标签: xml powershell xpath

我希望能够使用XPath从事件查看器中过滤XML。

首先,我抓住了这个事件:

$events = Get-WinEvent -FilterHashtable @{LogName="Security"; id=4624} | Select -First 2
[xml]$xmlEvent = $events[0].ToXml()

现在我想获取登录类型为2的事件。

一种工作正常的方法是:

($xmlEvent.Event.EventData.Data | Where-Object {$_.Name -eq "LogonType"}).'#text' -eq 2

但我希望能够使用XPath,因为我想了解如何使用它。

这是我最初尝试过的:

PS C:\Windows\system32> Select-Xml -Xml $xmlEvent -XPath "*"

Node  Path        Pattern
----  ----        -------
Event InputStream *

我收到的活动很好,但现在我想添加过滤器 我试过了:

Select-Xml -Xml $xmlEvent -XPath "*/Event[EventData[@Name='LogonType'] = 2]"

根本没有输出,我也尝试了以下内容并且没有收到任何输出:

Select-Xml -Xml $xmlEvent -XPath "/Event[EventData[@Name='LogonType'] = 2]"
Select-Xml -Xml $xmlEvent -XPath "/Event"
Select-Xml -Xml $xmlEvent -XPath "//Event"
Select-Xml -Xml $xmlEvent -XPath "*/Event"  

我使用的参考:
Understanding XML and XPath
Search XML files with PowerShell using Select XML

0 个答案:

没有答案