Skip to content

Forensik von PowerShell-Transkripten: Das Transkript lesen

Wie PowerShell-Transkripte aufgebaut sind, was der Header aufzeichnet, wie Befehlszeitstempel mit -IncludeInvocationHeader funktionieren und wie man Transkripte untersucht.

Veröffentlicht am 2 Min. Lesezeit

Kurzfassung. Ein Transkript ist eine Textaufzeichnung einer ganzen PowerShell-Sitzung – Eingabe und Ausgabe –, geschrieben von Start-Transcript oder der Transkriptionsrichtlinie nach PowerShell_transcript.<computer>.<random>.<timestamp>.txt. Der Header enthält Startzeit, Benutzer, Rechner, Host-Anwendung und PID; mit -IncludeInvocationHeader erhält jeder Befehl seine eigene Startzeit. Alle Zeiten entsprechen der lokalen Uhr des Systems. Öffnen Sie den Parser, um Sitzungen und Befehle als Zeitleiste zu lesen.

Aufbau

Die Transkription wird durch Start-Transcript oder per Gruppenrichtlinie („PowerShell-Aufzeichnung aktivieren“) eingeschaltet; die Richtlinie kann sie für jede Sitzung erzwingen und ein OutputDirectory festlegen (Microsoft: about_Logging_Windows). Eine Datei beginnt mit einem Header zwischen Sternchenzeilen:

**********************
Windows PowerShell transcript start
Start time: 20260914104500
Username: FIN-WKS-07\svc_backup
Machine: FIN-WKS-07 (Microsoft Windows NT 10.0.19045.0)
Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Process ID: 4242
PSVersion: 5.1.19041.4648
**********************

Danach folgt auf jede Prompt-Zeile (PS C:\Users\svc_backup>) der Befehl und seine Ausgabe. Mit -IncludeInvocationHeader steht vor jedem Befehl ein Block Command start time: – der Parser ordnet diese Zeit dem Befehl zu; ohne ihn übernehmen Befehle die Startzeit der Sitzung (als ungefähr gekennzeichnet). Siehe PowerShell-Transkription.

Ortszeit, keine Zeitzone

Jeder Zeitstempel in einem Transkript – Start time, End time, Command start time – ist die lokale Uhrzeit des Systems im Format yyyyMMddHHmmss, ohne Zeitzone. Wenn Sie ein Transkript mit den Ereignisprotokollen in UTC korrelieren, müssen Sie die Zeitzone des Rechners kennen. Der Parser zeigt Transkriptzeiten als lokal (gekennzeichnet) an und rechnet sie niemals stillschweigend um.

Was Transkripte ergänzen

Anders als die Ereignisprotokolle erfasst ein Transkript die Ausgabe, sodass Sie sehen, was ein Befehl zurückgegeben hat – ein Verzeichnislisting, einen Dateiinhalt, einen Fehler. Dieser Kontext klärt oft, ob eine Aktion erfolgreich war. Der Parser dekodiert jeden kodierten Befehl in einer Transkriptzeile, markiert Download-Cradles und Manipulationen und liest Dateien mit mehreren Sitzungen (eine Datei kann mehrere Paare aus transcript start/transcript end enthalten). Ein fehlender Abschluss transcript end bedeutet, dass die Sitzung abgebrochen wurde oder die Datei abgeschnitten ist – der Parser warnt Sie davor.

Lesen Sie Transkripte zusammen mit dem PSReadLine-Verlauf und den Protokollen; analysieren Sie den gesamten Bestand im Browser.

FAQ

Wo werden PowerShell-Transkripte gespeichert?

Standardmäßig im Ordner Dokumente des Benutzers als PowerShell_transcript.<computer>.<random>.<timestamp>.txt oder im OutputDirectory, das die Transkriptionsrichtlinie festlegt. Jede Sitzung ist eine Datei.

Haben Transkripte Zeitstempel?

Der Header enthält eine Start time und eine End time, und mit -IncludeInvocationHeader erhält jeder Befehl eine Command start time. Alle Zeiten entsprechen der lokalen Uhr des Systems, ohne dass eine Zeitzone aufgezeichnet wird.

Was enthält ein Transkript, das die Protokolle nicht enthalten?

Die vollständige Ein- und Ausgabe einer Sitzung, so wie der Benutzer sie gesehen hat, einschließlich der Befehlsergebnisse – Kontext, den die Ereignisprotokolle nicht erfassen.

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.
Was die PSReadLine-Verlaufsdatei aufzeichnet, wo sie liegt, warum sie keine Zeitstempel hat und wie man sie – samt ihren Grenzen – in einer Untersuchung nutzt.
Wie -EncodedCommand und gängige PowerShell-Obfuskation funktionieren – base64/UTF-16LE, gzip/deflate, Zeichencodes, Verkettung, der Formatoperator und Backticks – und wie man sie gefahrlos dekodiert.