Erstellen eines Ereignisfilters mit der Powershell
Um Windows-Ereignisse mit PowerShell zu filtern, kannst Du das Cmdlet Get-WinEvent
verwenden. Dieses Cmdlet ist flexibler und leistungsfähiger als das ältere Cmdlet Get-EventLog
, insbesondere wenn es darum geht, spezifische Ereignisse zu filtern.
Hier sind einige grundlegende Beispiele, wie Du die Ereignisse mit Get-WinEvent
filtern kannst:
1. Filtern nach Protokollname
Um Ereignisse aus einem bestimmten Protokoll, wie z. B. dem Systemprotokoll, zu erhalten:
Get-WinEvent -LogName System
2. Filtern nach Ereignis-ID
Um nach einer bestimmten Ereignis-ID zu filtern, beispielsweise nach der ID 4624 (Anmeldung erfolgreich):
Get-WinEvent -LogName Security -FilterHashtable @{Id=4624}
3. Filtern nach Zeitraum
Um Ereignisse aus den letzten 24 Stunden anzuzeigen:
Get-WinEvent -LogName Application -StartTime (Get-Date).AddDays(-1)
4. Filtern nach Quelle
Um nach Ereignissen zu filtern, die von einer bestimmten Quelle stammen, beispielsweise “Microsoft-Windows-Security-Auditing”:
Get-WinEvent -LogName Security -FilterHashtable @{ProviderName=”Microsoft-Windows-Security-Auditing”}
5. Kombination von Filtern
Du kannst auch mehrere Filter kombinieren, zum Beispiel nach Protokollname, Ereignis-ID und Zeitraum:
Get-WinEvent -FilterHashtable @{
LogName = ‘System’
Id = 6006
StartTime = (Get-Date).AddDays(-7)
}
6. Filtern mit XML Query
Für komplexere Filter kannst Du eine XML-Abfrage verwenden:
$filterXml = @”
<QueryList>
<Query Id=”0″ Path=”Security”>
<Select Path=”Security”>
*[System[EventID=4624]] and
*[EventData[Data[@Name=’TargetUserName’] and (Data=’Administrator’)]]
</Select>
</Query>
</QueryList>
“@
Get-WinEvent -FilterXml $filterXml
7. Ereignisse exportieren
Um die gefilterten Ereignisse in eine Datei zu exportieren:
Get-WinEvent -LogName System -MaxEvents 100 | Export-Csv -Path “C:\Temp\Events.csv” -NoTypeInformation
Windows Event Log Filtering
Kommen wir nun zu den etwas anspruchsvolleren Skripten. Die folgenden Skripte exportieren die Ergebniss in eine Exceltabelle. Excel muss somit installiert sein. Voreingestellt sind immer die letzten 2 Tage. Der Ausgabepfad $OutputFile = “D:\DNSClientEvents.xlsx” muss angepasst werden.
Zur Ausgabe gehören immer folgende Headers:
$Worksheet.Cells.Item(1,1) = “TimeCreated”
$Worksheet.Cells.Item(1,2) = “EventID”
$Worksheet.Cells.Item(1,3) = “Level”
$Worksheet.Cells.Item(1,4) = “Message”
$Worksheet.Cells.Item(1,5) = “ProviderName”
Mit diesem Skript wertet ihr das Log Microsoft-Windows-WindowsUpdateClient/Operational aus.
Get Windows Events Windows Update Client Operational
Mit diesem Skript wertet ihr die Powershell Events aus.
Get Windows Events Windows Powershell
Mit diesem Skript wertet ihr die lediglich administrative Ereignisse aus. Kritische, Warnungen und Fehler.
Get Windows Events Windows Administrative Ereignisse
Mit diesem Skript wertet ihr das Log Microsoft-Windows-SMBClient/Connectivity aus.
Get Windows Events SMB Client Connectivity
Get Windows Events SMB Client Operational
Mit diesem Skript wertet ihr das Log Microsoft-Windows-DNS-Client/Operational aus.
Ein Kommentar
Kommentare sind geschlossen.