Skip to content

PowerShell-Protokolle, Transkripte und Verlauf sichern

PowerShell-Ereignisprotokolle, PSReadLine-Verlauf und Transkripte von einem Live-System, aus einer Triage-Sammlung oder einem Datenträgerabbild sichern – mit kopierfertigen Befehlen und den typischen Fallstricken.

Veröffentlicht am 2 Min. Lesezeit

Kurzfassung. Auf einem Live-System exportieren Sie die beiden PowerShell-Ereignisprotokolle mit wevtutil epl (eine einfache Kopie schlägt fehl – der Dienst hält sie geöffnet) und kopieren per Robocopy die Dateien *_history.txt und PowerShell_transcript.*.txt jedes Benutzers. Alternativ sichern Sie sie mit KAPE / Velociraptor oder aus einem eingebundenen Abbild. Behalten Sie den Pfad Users\<name>\ bei, damit Verlauf und Transkripte zugeordnet werden. Anschließend analysieren Sie sie im Browser. Die Ablagezone enthält dieselben Befehle mit Kopier-Schaltflächen.

Live-System (am schnellsten)

Starten Sie Windows PowerShell als Administrator:

New-Item -ItemType Directory -Force C:\triage\logs | Out-Null
wevtutil epl Microsoft-Windows-PowerShell/Operational "C:\triage\logs\Microsoft-Windows-PowerShell%4Operational.evtx" /ow:true
wevtutil epl "Windows PowerShell" "C:\triage\logs\Windows PowerShell.evtx" /ow:true
wevtutil epl PowerShellCore/Operational "C:\triage\logs\PowerShellCore%4Operational.evtx" /ow:true 2>$null
robocopy C:\Users C:\triage\Users *_history.txt PowerShell_transcript.*.txt /S /XJ /R:0 /W:0 /NP /NDL

Die dritte Zeile sichert das PowerShell-7-Protokoll, sofern vorhanden (ist es nicht vorhanden, schadet sie nicht). Packen Sie danach alles mit dem in Windows 10 1803+ integrierten tar.exe in ein Archiv:

tar -a -c -f C:\triage\powershell.zip -C C:\triage logs Users

Triage-Tools

KAPE – das Target EventLogs kopiert jede .evtx-Datei (einschließlich der PowerShell-Protokolle) direkt vom Rohdatenträger; PowerShellConsole und PowerShellTranscripts sichern die Verlaufs- und Transkriptdateien:

kape.exe --tsource C: --tdest C:\triage\kape --target EventLogs,PowerShellConsole,PowerShellTranscripts

Velociraptor – aktuelle Versionen erstellen in der GUI einen Offline-Collector aus Windows.Triage.Targets mit denselben Targets EventLogs, PowerShellConsole und PowerShellTranscripts. Ältere Versionen, die noch Windows.KapeFiles.Targets mitbringen, können Folgendes ausführen:

velociraptor.exe artifacts collect Windows.KapeFiles.Targets --args Device=C: --args EventLogs=Y --args PowerShellConsole=Y --args PowerShellTranscripts=Y --output C:\triage\powershell.zip

Beide Target-Namen sind gegen den Velociraptor triage collector geprüft. Legen Sie das Sammlungs-ZIP unverändert ab – Nicht-PowerShell-Protokolle werden beim Laden ignoriert.

Datenträgerabbild

Binden Sie das Abbild schreibgeschützt ein und kopieren Sie aus winevt\Logs sowie aus jedem Benutzerprofil. Unter Linux/macOS mit dem Abbild unter /mnt/win:

mkdir -p ~/triage/logs && cp "/mnt/win/Windows/System32/winevt/Logs/Microsoft-Windows-PowerShell%4Operational.evtx" "/mnt/win/Windows/System32/winevt/Logs/Windows PowerShell.evtx" ~/triage/logs/ 2>/dev/null
(cd /mnt/win && find Users \( -iname '*_history.txt' -o -iname 'PowerShell_transcript.*.txt' \) -exec cp --parents {} ~/triage/ \;)

Prüfen Sie auch die Volumeschattenkopien des Abbilds: Ein älterer Snapshot kann Protokolle enthalten, die inzwischen überschrieben wurden, und einen Verlauf, der später gelöscht wurde.

Fallstricke

  • Die Skriptblockprotokollierung (4104) ist standardmäßig deaktiviert, bis sie per Richtlinie aktiviert wird; selbst dann protokolliert Windows verdächtige Blöcke auf Warnstufe. Das klassische Protokoll Windows PowerShell und der PSReadLine-Verlauf sind standardmäßig aktiv.
  • Der EventLog-Dienst hält die Protokolle geöffnet, verwenden Sie daher wevtutil epl, KAPE oder Velociraptor – keine einfache Kopie.
  • Der PSReadLine-Verlauf hat keine Zeitstempel und kann Wochen älter sein als die Protokolle; seine Reihenfolge ist die einzige Chronologie.
  • Transkripte speichern die Ortszeit ohne Zeitzone: Notieren Sie die Zeitzone des Systems, bevor Sie sie mit den UTC-Ereignisprotokollen korrelieren.

Verwandte Artikel

Schritt für Schritt: PowerShell-.evtx-Protokolle, PSReadLine-Verlauf und Transkripte in einem kostenlosen Browser-Viewer öffnen, Skriptblöcke zusammensetzen, kodierte Befehle dekodieren und als CSV oder JSON exportieren.
Wie PowerShell-Transkripte aufgebaut sind, was der Header aufzeichnet, wie Befehlszeitstempel mit -IncludeInvocationHeader funktionieren und wie man Transkripte untersucht.
Was die PSReadLine-Verlaufsdatei aufzeichnet, wo sie liegt, warum sie keine Zeitstempel hat und wie man sie – samt ihren Grenzen – in einer Untersuchung nutzt.