Die Filter für die Windows Ereignisanzeige (Eventlog) sind sehr mächtig geworden. Mit den standard Optionen in der grafischen Oberfläche kann man schon viel machen, aber leider nicht im Nachrichtentext filtern. Das geht auch mit XML Abfragen. Klicken Sie dazu zunächst einmal auf ein ähnliches Ereignis und klicken Sie dort die Detailansicht an. Dort wählen Sie XML View:

Dann erstellen Sie einen benutzerdefinierten Filter und wählen dort den Reiter XML. Setzen Sie das Häkchen bei Abfrage manuell bearbeiten. Wenn Sie bereits bei Filter Reiter Einstellungen gemacht haben, sind diese auch schon im XML hier vordefiniert. Haben Sie z.B. das Anwendungslog ausgewählt steht dort:
<QueryList>
<Query Id=“0″ Path=“Application“>
<Select Path=“Application“>*</Select>
</Query>
</QueryList>
Oben habe ich Sie den XML-View auswählen lassen. Warum? Dort sehen Sie, wie die jeweiligen Felder nach denen Sie suchen können benannt sind. Um nun also z.B. nach dem Benutzernamen zu suchen ergänzen Sie die XML Zeilen wie folgt:
<QueryList>
Id=“0″ Path=“Security“>
<Select Path=“Security“>*</Select>
*[EventData[Data[@Name=‘TargetUserName‚] and (Data=‘s‚)]]
</Select>
</Query>
</QueryList>

Selbstverständlich dürfen Sie das gerne weiter verkomplizieren:
*[EventData[Data[@Name=’SubjectUserName‘] and (Data=’abc‘ or Data=’123’)]]
Dies würde alle mit der Angabe abc oder 123 finden bei UserName finden.

Möchten Sie in mehreren Logs suchen:
<Select Path=“Security“>*[System[(EventID=’1234′)]]</Select>
<Select Path=“Application“>*[System[(EventID=’4321′)]]</Select>
Würde alle Ereignisse aus dem Eventlog Security mit der ID 1234 und alle Ereignisse aus dem Applicationlog mit der ID 4321 anzeigen.

Um die Filter in der PowerShell zu nutzen können Sie die XML-Abfrage genauso in einen String schreiben und mit Get-WinEvent abfragen:
$Query=@“
<QueryList>
Id=“0″ Path=“Security“>
<Select Path=“Security“>
*[EventData[Data[@Name=’TargetUserName‘] and (Data=’s‘)]]
</Select>
</Query>
</QueryList>
„@
$Evts=Get-WinEvent -log Security -FilterXPath $Query -maxevents 1000


Kommentare

4 Antworten zu „XML-Abfrage Ereignisanzeige“

  1. Avatar von Peter Nerger
    Peter Nerger

    …leider ist von dem Codeteil einiges verloren gegangen.

    1. Vielen Dank für den Hinweis. Jetzt sollte es wieder ordentlich aussehen.

  2. Avatar von Peter Nerger
    Peter Nerger

    Hallo Herr Lehmann,
    Ich nutze den Mechanismus, um beim Anstecken einer Festplatte das Backup zu starten. Seit dem Windows-Upgrade auf die Version 1709 funktioniert das nicht mehr ohne weiteres. Microsoft hat die Struktur der XML-Ausgabe im DriverFrameworks -UserMode geändert. Ich habe schon versucht den Ereignisfilter anzupassen. Bisher leider ergebnislos. Haben Sie eine Idee? Die ID des USB-Gerätes ist jetzt in der InstanceID verpackt, vorher stand sie direkt hinter UMDFHostAddDeviceEnd


    {CE9ADDA4-0028-49F7-9402-BCA82AE7857E}
    SWD\WPDBUSENUM_??_USBSTOR#DISK&VEN_INTENSO&
    PROD_ULTRA_LINE&REV_1.00#14110900007040&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}

    Mit freundlichen Grüßen
    Peter Nerger

    1. Da es nun wieder lesbar ist. Hilft es bei Ihrer Problemlösung? Leider kann ich es aktuell nicht nachstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert