Wie du mit der PowerShell die Log-Einträge deines Windows Servers überwachen kannst

CmdLet zeigt dir die neusten Einträge an

Die Logfiles unseres Servers sind der Dreh- und Angelpunkt einer Analyse, wenn es zu Problemen kommt. Unter einem Windows Server ist die Auswertung der Protokolle aber häufig umständlich. Mit der PowerShell deines Windows-Servers verarbeitest du die Log-Einträge direkt in der Konsole oder in deinen Analyse-Scripten.

 

Welche Log file- bzw. Protokoll-Dateien gibt es auf einem Windows Server?

Die Log-Einträge auf deinem Windows Server werden in unterschiedliche Protokoll-Dateien eingetragen. Es gibt fünf Kategorien. Die wichtigsten drei sind sind die folgenden systemeigenen Windows-Protokolle:

  • Das Anwendungsprotokoll
  • Das Securityprotokoll
  • Das Systemprotokoll

Daneben kannst du selbst weitere Protokolldateien erstellen, in denen bestimmte Log-Einträge abgespeichert werden sollen.

Wie du siehst, ist es sehr schwer hier den Überblick zu behalten. Viele Administratoren von Servern mit Microsoft Windows Betriebssystemen vernachlässigen daher häufig den regelmäßigen Check ihrer Log-Dateien. Das kann unter Umständen zu einem Sicherheitsproblem werden.

Mit Hilfe von regelmäßigen Logfile-Auswertungen kannst du nicht nur Fehleranalysen durchführen und so zum Beispiel Skript-Fehler, fehlerhafte Prozesse, Shutdowns, Reboots etc. diagnostizieren, du kannst auch sicherheitsrelevante Ereignisse, wie unberechtigte Login-Versuche per Remote Desktop schneller entdecken.

Selbstverständlich lassen sich die Log-Einträge z.B. mit Skripten gezielt über die Kommandozeile auswerten. Eine komfortable Möglichkeit dafür bietet dir die Windows PowerShell. Denn bei der Windows PowerShell handelt es sich um ein Framework, das speziell für die Automatisierung, Konfiguration und Verwaltung von Windows-Systemen entwickelt wurde. Die zentralen Bestandteile sind ein Interpreter für die Kommandozeile sowie eine Skript-Sprache.

Mit Cmdlets kannst du die neusten Log-Einträge anzeigen lassen

Der Zugriff auf die System- und Anwendungsprotokolle gelingt dir in der Windows PowerShell mit dem Cmdlet „Get-EventLog“.

MSH-Befehle heißen Commandlets oder kurz: Cmdlets und enthalten immer drei Teile:

  • Ein Verb
  • Ein Substantiv
  • Einen Parameter

Wenn du beispielsweise nur die letzten Einträge aus einem bestimmten Protokoll anzeigen möchtest, verwendest du folgende Kommando-Syntax:

Get-Eventlog [LogName] –Newst [Anzahl]

Ersetzen [LogName] durch ein Ereignisprotokoll (z.B. „System“ oder „Application“) und [Anzahl] durch die Anzahl der Log-Einträge. Wenn du beispielsweise die neusten fünf Einträge aus dem System-Logfile abfragen möchtest, nutze folgenden Befehl:

Get-EventLog System -Newest 5

Wenn du nicht nur die letzten Beiträge sehen möchtest, sondern alle Beiträge ab einem bestimmten Zeitpunkt (z.B. nach Auftreten eines Fehlers), verwendest du den Zeit-Parameter „-After“. Folgendes Kommando zeigt beispielsweise alle Einträge in das System-Log an, die nach 11:00 Uhr aufgetreten sind:

Get-EventLog System –After 11:00:00

Nützliche Ereignis-IDs aus dem Systemprotokoll

Ereignis-ID Protokolliert wird:
6005 dass der Ereignisprotokollierdienst gestartet wurde
6006 dass das System fehlerfrei heruntergefahren wurde
6008 dass das System fehlerhaft heruntergefahren wurde
6009 diese ID wird bei jedem Start protokolliert und zeigt die Betriebssystemversion, die Build-Nummer, das Service-Pack-Level und sonstige relevante Systeminformationen an
4625 Fehlerhafte RDP Anmeldung
4647 Windows Abmeldung nicht abbrechen
4768 Anfrage TGT
1074 Shutdown
6008 Bluescreen (The previous shutdown was unexpected)

 

Befehl Beschreibung
wevtutil qe system /rd:true /f:text /q:*[System[(EventID=1074)]] Listet die „Shutdowns“ in Textform auf
wevtutil qe system /rd:true /f:text /q:*[System[(EventID=1074)]] Listet die „Shutdowns“ auf
wevtutil qe System /f:text /q:“*[Security[(EventID=4624)]] Listet korrekte und fehlerhafte RDP Anmeldungen auf
wevtutil qe System /f:text /q:“*[Security[(EventID=4625)]] geeignet um RDP Bruteforce zu erkennen
wevtutil qe Security /c:10 /rd:true /f:text Listet die letzten 10 Sicherheitsmeldungen auf
wevtutil qe Security /f:text /q:“*[Security[(EventID=4768)]] Anfrage TGT auflisten
wevtutil qe system /c:10 /rd:true /f:text Listet die letzten 10 System-Ereignisse auf
wevtutil qe security /c:10 /rd:true /f:text Listet die letzten 10 Sicherheits-Ereignisse auf
powershell -c „& {import-modue eventlog;get-eventlog -logname Security;}“ PowerShell listet alle Sicherheitsmeldungen auf
get-eventlog -logname Application -newest 50 | where-object { $_.entrytype -eq „error“ } Listet die letzten 50 Fehler unter Anwendungen auf
powershell -c „& {Get-EventLog Security | ?{$_.EventID -eq 4625};}“ PowerShell listet alle Sicherheitsmeldungen auf
wevtutil qe security /c:1000 /rd:true /f:text|findstr 4625 Listet die letzten 100 fehlerhafte RDP Anmeldungen auf

 

Hinweis:

Bei der Formulierung von Cmdlets brauchst du die Groß-und-Kleinschreibung nicht beachten, sie spielt keine Rolle.

Das Dateiformat von Protokollen 

Protokolldateien auf Windows-Systemen sind in der Regel nicht nur unübersichtlich, sondern es gibt auch unterschiedliche Datei-Formate. Während bei älteren Windows-Versionen das EVT-Format zum Einsatz kam, liegen die Protokoll-Dateien von aktuellen Windows-Versionen im EVTX-Format vor.
Für die Konvertierung und Auslesen steht dir das Konvertierungs-Tool wevtutil.exe zur Verfügung. Wenn du das Tool wevtutil.exe ausführen möchtest, solltest du allerdings über fortgeschrittene Kenntnisse in der Administration von Windows-Betriebssystemen verfügen!

 

MMC (Microsoft Management Console) – die Lösung für Einsteiger und Fortgeschrittene

Für alle, die sich noch nicht so gut in der Administration ihres Windows Servers auskennen, hat Microsoft eine alternative Lösung: die Microsoft Management Console oder kurz: MMC, eine grafische Benutzeroberfläche zur Verwaltung deines Windows-Servers.

Um die MMC von Microsoft aufzurufen, gehe wie folgt vor:

  • Öffnen mit der Tastaturkombination [Windows]+R das Ausführen-Fenster
  • Gib nun mmc ein
    Abbildung - Ausführen
  • Nun erhältst du eine Verwaltungskonsole, die du selbst mit Snap-Ins – ganz nach deinen Bedürfnissen – einrichten kannst.
    Abbildung - MMC - Microsoft Management Console
  • Unter „Datei“ findest du den Menüpunkt Snap-In hinzufügen/entfernen. Wenn du deine Protokoll-Dateien checken möchtest, brauchst du lediglich das Snap-In Ereignisanzeige zu starten. Wähle das Snap-In aus und füge es der Ansicht hinzu.
    Abbildung - MMC individuell erweitern
  • Klicke auf Windows-Protokolle und öffne den entsprechenden Protokoll-Ordner, z.B. System. Nun erhältst du eine Übersicht aller Log-Dateien. Log-Dateien, die Warnhinweise oder Fehler enthalten sind mit einem entsprechenden Icon gekennzeichnet.
    Abbildung - MMC - Check System-Protokolle
  • Die Protokolldateien sind so noch sehr unübersichtlich und eine Analyse dementsprechend zeitaufwändig. Deshalb solltest du eine Benutzerdefinierte Ansicht erstellen und die Filterfunktionen nutzen. Hier kannst du mit einem Klick definieren, welche Art von Fehlermeldungen du angezeigt bekommen möchtest, welche Log-Dateien analysiert werden sollen uvm.
    Abbildung - MMC-Persönliche Einstellungen

Wie du siehst, ist die Log-File-Analyse mit dem MMC für Einsteiger und Fortgeschritten sehr viel einfacher und komfortabler als der professionelle Log-File-Check via Windows PowerShell.

 

Weitere Informationen zur Microsoft PowerShell und Commandlets findest du hier:

Bildnachweis: Fotolia, Lizenz: GoDaddy