Glossar
Klassisches Windows-PowerShell-Protokoll
Das ursprüngliche Protokoll Windows PowerShell.evtx mit Ereignissen zum Lebenszyklus von Engine und Providern (400/403/600) und zur Pipeline-Ausführung (800).
Das Protokoll Windows PowerShell (Windows PowerShell.evtx in System32\winevt\Logs) ist das ursprüngliche Ereignisprotokoll von PowerShell. Es ist älter als die modernen Kanäle pro Provider, weshalb PowerShell Microsoft-Windows-PowerShell/Operational später daneben hinzufügte, statt es zu ersetzen. Das klassische Protokoll ist standardmäßig vorhanden und aktiviert und zeichnet vier Ereignis-IDs auf:
- 400: Engine-Status wechselte zu Available, d. h. ein PowerShell-Host wurde gestartet
- 403: Engine-Status wechselte zu Stopped, d. h. der Host wurde beendet
- 600: Provider-Lebenszyklus, für Provider wie Registry oder Certificate
- 800: Details der Pipeline-Ausführung
Warum es für Untersuchungen wichtig ist
Da es keine Richtlinie benötigt, ist das klassische Protokoll auf Systemen ohne Skriptblockprotokollierung häufig der einzige PowerShell-Nachweis. Die Ereignisse 400 und 403 klammern die Lebensdauer jedes PowerShell-Hosts ein, und ihr Detailblock enthält HostApplication: die vollständige Befehlszeile, mit der er gestartet wurde. Genau dort tauchen ein -EncodedCommand, ein -WindowStyle Hidden oder ein Downgrade mit -Version 2 auf. EngineVersion bestätigt, welche Engine tatsächlich lief, und Ereignis 800 zeichnet die Befehlszeile jeder Pipeline auf – oft die beste Aufzeichnung dessen, was ausgeführt wurde, wenn 4104 fehlt.
Beispiel
Der Detailblock eines Ereignisses 400 ist eine Liste von Key=Value-Zeilen:
NewEngineState=Available
PreviousEngineState=None
HostName=ConsoleHost
HostVersion=5.1.19041.4648
HostApplication=powershell.exe -nop -w hidden -enc VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAnAHMAeQBuAHQAaABlAHQAaQBjACAAcwBhAG0AcABsAGUAJwA=
EngineVersion=5.1.19041.4648
RunspaceId=...
Der Parser zerlegt diese Zeilen in sortierbare Felder, dekodiert den kodierten Befehl in HostApplication und markiert das versteckte Fenster. Für ein Ereignis 400 oder 403 mit einer EngineVersion von 2.x erzeugt er einen Downgrade-Befund.
Verwandte Begriffe
- Ereignis-ID 4104 und Modulprotokollierung (4103), im Operational-Protokoll
- PowerShell-Downgrade-Angriff, hier über
EngineVersionsichtbar - Kodierter Befehl, oft in
HostApplicationzu finden
Führen Sie das klassische Protokoll im PowerShell Parser mit dem Operational-Protokoll zusammen, und lesen Sie im Leitfaden zu den PowerShell-Ereignisprotokollen, was jede Ereignis-ID belegt.