Get-winEvent到XML,现在如何获取值

时间:2017-07-11 07:27:33

标签: xml powershell get-winevent

我对PowerShell相对较新,对SQL更加满意。

我需要从事件日志中获取一些数据。到目前为止,我已经设法建立了我需要使用Get-WinEvent并使用xml元素来获取我想要的实际信息。

到目前为止,我已经:

$filterxml = "


            *[System[(EventID='4624')]]
            and
            (
            *[EventData[Data[@Name='LogonType'] and (Data='10')]]
            or
            *[EventData[Data[@Name='LogonType'] and (Data='2')]]
            )


"
$Events = Get-WinEvent -maxEvents 1 -Filterxml $filterXml
# Get out the event message data            
ForEach ($Event in $Events) {            
    # Convert the event to XML            
    $eventXML = [xml]$Event.ToXml() 

 #Now what?? I need to find out how to return the actual data in a form I 
#can put into a datatable.

}

似乎应该很容易将值放入变量或直接放入数据表等。

我一直在寻找一个没有运气的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用Get-EventLog

$eventsIncludingTheId = Get-EventLog -LogName Application | ? { $_.EventID -eq 4624} 
# Export data as XML
$eventsIncludingTheId | Export-Clixml C:\temp\export.xml
# Reimport data from XML
$events = Import-Clixml C:\temp\export.xml

Get-EventLog通过-LogName为您提供不同的事件日志部分(应用程序,系统......)。

如果您想了解Get-Eventlog提供的属性,您可以这样做:

 Get-EventLog -LogName Application | select -first 1 | gm

将显示您可以在Where-Object子句中使用的所有属性(? { $_.EventID -eq 1234

希望有所帮助