PowerShell Get-WinEvent数据查询

时间:2017-09-26 10:00:49

标签: powershell biztalk biztalk-2013

尝试编写脚本以检索针对特定问题触发的事件的所有详细信息。

在事件查看器中看到的事件没有事件ID等有助于过滤结果。

我可以使用的唯一数据包含在EventData部分中,其中包含“Married”

Get-WinEvent @{LogName='Application';Level=2} | Where {$_.ProviderName -eq 'BizTalk Server' -and $_.Message -contains 'Marri'}

我不确定$_.Message是否正在查看EventData部分..是否有任何建议?

3 个答案:

答案 0 :(得分:0)

因此,这不是一个完全可行的解决方案,但它应该为您提供数据输出,为您提供有关使用内容的见解。 我完全不能完全为你做这件事,因为我没有要测试的数据。

    $events = Get-WinEvent  -FilterHashTable @{LogName = "Application";Level=2} -MaxEvents 50 | where {$_.Message -like '*'}

    foreach($event in $events){
    "-"*150

             $eventXML = [xml]$event.ToXml()
             #if there is data in the XML
             if($eventXML.Event.EventData.data -like '*Marri*'){
                $event.Message
                $event | gm
                write-host $event
                write-host $eventXML.Event.EventData.data -ForegroundColor Green
             }
    "-"*150
    }

答案 1 :(得分:0)

我真的不明白您对计算/日期时间部分的意思。 你可以显示时间和提供者:

 
    $events = Get-WinEvent  -FilterHashTable @{LogName = "Application";Level=2} -MaxEvents 50 |
    where {$_.Message -like '*'}

foreach($event in $events){
"-"*50                        
            $event.TimeCreated
            $event.ProviderName
            $event.Message             
"-"*50
}

foreach($event in $events){ "-"*50 $event.TimeCreated $event.ProviderName $event.Message "-"*50 }

答案 2 :(得分:0)

我不知道“已婚”事件数据在哪里,但是在Powershell 6中,您可以执行类似的操作,并在名为data字段的事件数据上使用-filterhashtable。提供商名称也可以在哈希表中。

Get-WinEvent @{LogName='Application'; Level=2; 
  providername='biztalk server'; status='married'}

一个对我有用的例子:

get-winevent @{ logname = 'application'; param2 = 'suppressduplicateduration' }