我对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.
}
将值抛入变量或直接放入数据表等似乎都很容易。
我已经寻找了一段时间的解决方案,但没有任何运气。
发布于 2017-07-11 20:03:47
您可以使用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
)中使用的所有属性
希望这能有所帮助
https://stackoverflow.com/questions/45028043
复制相似问题