2011-12-29 12 views
21

Al editar la consulta de filtro XML manualmente en el visor de eventos de Windows, no puedo encontrar eventos en los que los datos coinciden con una cadena exactamente:Usando XPath comienza con o contiene funciones para buscar los registros de eventos de Windows

<QueryList> 
    <Query Id="0" Path="Application"> 
    <Select Path="Application">*[EventData[Data and (Data="Session end: imzcjflrrsq1sfdk3okc4jpf")]]</Select> 
    </Query> 
</QueryList> 

Ahora, querer hacer una coincidencia parcial:

<QueryList> 
    <Query Id="0" Path="Application"> 
    <Select Path="Application">*[EventData[Data and (Data[starts-with(.,"Session")])]]</Select> 
    </Query> 
</QueryList> 

registro de eventos me da el error:

The specified query is invalid

do Tengo la sintaxis mal?

Respuesta

4

Si no le importa dos pases, siempre se puede utilizar un script de PowerShell para volver a filtrar los datos como su                 -where operador apoya -like, -match, y -contains:

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 

Un cmd para lanzarlo (nv.cmd):

powershell.exe -executionpolicy bypass "& '.\nv.ps1'" 
Cuestiones relacionadas