
Einige Apps oder Dienste in Windows verwenden zum Speichern ihrer Protokolle keine binären Ereignisanzeigeprotokolle („*.evtx“), sondern speichern sie stattdessen als Nur-Text-Protokolldateien. Bei der Behebung bestimmter Probleme kann es hilfreich sein, den Inhalt der Protokolldatei in Echtzeit auf dem Bildschirm anzuzeigen und automatisch zu aktualisieren, wenn neue Zeilen an das Protokoll angehängt werden. Unter Linux wird der Befehl „tail“ normalerweise verwendet, um den Inhalt einer Protokolldatei auf dem Bildschirm anzuzeigen und in Echtzeit zu aktualisieren. Für die Live-Protokollüberwachung (Echtzeit) in Windows können Sie das PowerShell-Cmdlet Get-Content als Analogon zum Befehl tail verwenden.
Der folgende Befehl gibt den Inhalt der Protokolldatei an die Konsole aus und zeigt neue Zeilen in Echtzeit an, wenn sie an das Protokoll angehängt werden:
Get-Content-Path „C:\LogFolder\appact.log“-Wait

Ein Nachteil des vorherigen Befehls besteht darin, dass er zunächst die gesamte Protokolldatei anzeigt, bevor neue Zeilen beim Anhängen angezeigt werden. Bequemer ist es, nur einige der aktuellsten Protokolleinträge auf dem Bildschirm anzuzeigen. Um beispielsweise nur die letzten 10 Zeilen einer Protokolldatei anzuzeigen und auf das Erscheinen neuer Zeilen zu warten, fügen Sie das Argument „-Tail 10“ hinzu.
Get-Content-Path „C:\LogFolder\appact.log“-Wait-Tail 10
PowerShell ermöglicht die Echtzeitfilterung von Protokolldateien, um nur die Zeilen anzuzeigen, die bestimmten Kriterien entsprechen. Ich möchte beispielsweise nur die Firewall-Protokolleinträge anzeigen, die eine bestimmte IP-Adresse enthalten:
$IP="123.12.2.22"Get-Content "C:\windows\system32\LogFiles\Firewall\pfirewall.log"-Tail 40-Wait | ? { $\_-match $IP }

PowerShell kann auch verwendet werden, um die Ausgabe der Protokolldateiinhalte einzufärben, um sie leichter lesbar zu machen. Ich möchte beispielsweise, dass Zeilen mit dem Schlüsselwort „Erfolg“ grün und Zeilen mit Fehlern rot hervorgehoben werden.
` Get-Content C:\Windows\System32\LogFiles\setupcln\setupact.log-Wait-Tail 50 | ForEach-Object {
switch-Regex ($_ ) {
„ERROR“{ Write-Host $_-F White-B Red }
„Erfolg“{ Write-Host $_-F Green }
default { Write-Host $_ }
}
} `
Die Ausgabe der Protokolldatei auf dem Bildschirm ist jetzt viel besser lesbar.

Damit bietet PowerShell ein einfaches und praktisches Tool zur Echtzeitüberwachung von Protokolldateiänderungen. Mit sehr großen Logdateien (mehrere GB) kommt PowerShell natürlich nicht besonders gut zurecht. Mit dem Parameter „-Tail“ wird jedoch nur das Ende der Datei und nicht das gesamte Protokoll gelesen. Daher führt diese Echtzeit-Protokolldateiüberwachungsmethode nicht zu einer hohen Speichernutzung.
*️⃣ Quelllink:
Firewall-Protokoll,