加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-event-log – 事件日志>过滤器当前日志> XML>

发布时间:2020-12-13 23:26:43 所属栏目:Windows 来源:网络整理
导读:我正在尝试在 Windows事件日志中搜索事件数据包含字符串TCP提供程序的任何内容,错误:0作为较长错误消息的一部分.为此,我创建了以下代码: QueryList Query Id="0" Path="Application" Select Path="Application"*[System[Provider[@Name='MyDemo' or @Name=
我正在尝试在 Windows事件日志中搜索事件数据包含字符串TCP提供程序的任何内容,错误:0作为较长错误消息的一部分.为此,我创建了以下代码:
<QueryList>
  <Query Id="0" Path="Application">
    <Select Path="Application">*[System[Provider[@Name='MyDemo' or @Name='AnotherDemo'] and (Level=2 or Level=3)]][EventData[Data[contains(.,'TCP Provider,error: 0')]]]</Select>
  </Query>
</QueryList>

然而,这被视为无效的查询 – 我猜测无法识别contains语句(因为它看起来像这里使用的XPath语法的特殊版本.有谁知道我正在尝试的是可能的/如何这样做呢?

提前致谢,

JB

你总是可以使用powershell脚本并通过powershell的where函数传递XML(支持-contains -like -match):

nv.ps1

$Query = @"
  <QueryList>
    <Query Id="0" Path="System">
      <Select Path="System">
        *[System[(EventID=20001)]]
      </Select>
    </Query>
  </QueryList>
"@

$events = Get-WinEvent -FilterXml $Query
ForEach ($Event in $Events) {
    # Convert the event to XML
    $eventXML = [xml]$Event.ToXml()
    Add-Member -InputObject $Event -MemberType NoteProperty -Force -Name  DriverVersion -Value $eventXML.Event.UserData.InstallDeviceID.DriverVersion
    Add-Member -InputObject $Event -MemberType NoteProperty -Force -Name  DriverDescription -Value $eventXML.Event.UserData.InstallDeviceID.DriverDescription
    Add-Member -InputObject $Event -MemberType NoteProperty -Force -Name  Data -Value $eventXML.Event.EventData.Data
}
$Events | Select TimeCreated,Id,DriverDescription,DriverVersion,ProviderName,@{Name="MessageData";Expression={$_.Message + $_.Data}} | Where {$_.DriverDescription -match "NVIDIA GeForce GTX*"} | Out-GridView
pause

用于启动它的cmd(nv.cmd):

powershell.exe -executionpolicy bypass "& '.nv.ps1'"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读