Glossar
PowerShell-Transkription
Funktion, die eine PowerShell-Sitzung samt Ein- und Ausgabe mit lokalen Zeitstempeln vollständig in eine PowerShell_transcript-Datei schreibt.
Die PowerShell-Transkription schreibt eine Textaufzeichnung einer gesamten PowerShell-Sitzung in eine Datei, also sowohl die eingegebenen Befehle als auch die Ausgabe, die sie erzeugt haben. Ein Benutzer kann sie von Hand mit Start-Transcript starten, oder ein Administrator kann sie über die Gruppenrichtlinie „PowerShell-Aufzeichnung aktivieren“ für jede Sitzung erzwingen; diese Richtlinie kann außerdem ein zentrales OutputDirectory festlegen und Aufrufheader pro Befehl hinzufügen.
Warum es für Untersuchungen wichtig ist
Transkripte sind das einzige verbreitete PowerShell-Artefakt, das die Ausgabe aufzeichnet. Ereignisprotokolle und der Verlauf von PSReadLine zeigen, was ausgeführt wurde; ein Transkript zeigt zusätzlich, was zurückkam: eine Verzeichnisauflistung, den Inhalt einer gelesenen Datei, eine Fehlermeldung, die belegt, dass ein Befehl fehlgeschlagen ist. Dieser Kontext entscheidet oft, ob eine Aktion erfolgreich war.
Zwei Einschränkungen gelten. Erstens entspricht jede Zeitangabe in einem Transkript der lokalen Uhrzeit des Systems im Format yyyyMMddHHmmss, ohne Zeitzone. Notieren Sie daher die Zeitzone des Rechners, bevor Sie mit UTC-basierten Ereignisprotokollen korrelieren. Zweitens wurde eine Datei, der die abschließende Fußzeile transcript end fehlt, abgebrochen oder abgeschnitten, und eine einzelne Datei kann mehrere Start/Ende-Paare enthalten.
Beispiel
Standardmäßig wird jede Sitzung im Ordner Dokumente des Benutzers als PowerShell_transcript.<computer>.<random>.<timestamp>.txt gespeichert. Der Header sieht so aus:
**********************
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
**********************
Auf jede Eingabeaufforderungszeile folgen dann der Befehl und seine Ausgabe. Mit -IncludeInvocationHeader steht vor jedem Befehl ein Command start time:, und der Parser ordnet diese Zeit dem jeweiligen Befehl zu; ohne diese Option übernehmen Befehle die Startzeit der Sitzung und werden als ungefähr angezeigt.
Verwandte Begriffe
- PSReadLine, die Verlaufsdatei ohne Zeitstempel, die Sie parallel lesen sollten
- Kodierter Befehl, den der Parser in Transkriptzeilen dekodiert
- Klassisches Windows-PowerShell-Protokoll, dessen
HostApplicationzum Transkript-Header passt
Lesen Sie Transkripte als Zeitleiste im PowerShell Parser, und lesen Sie unter Forensik von PowerShell-Transkripten das vollständige Format nach.