Glossaire
Transcription PowerShell
Fonctionnalité qui écrit un enregistrement texte complet d'une session PowerShell, entrées et sorties, dans un fichier PowerShell_transcript.
La transcription PowerShell écrit dans un fichier un enregistrement texte de toute une session PowerShell, à la fois les commandes tapées et les sorties qu'elles ont produites. Un utilisateur peut la lancer manuellement avec Start-Transcript, ou un administrateur peut l'imposer à chaque session avec le paramètre de stratégie de groupe « Activer la transcription PowerShell », qui permet aussi de définir un OutputDirectory centralisé et d'ajouter des en-têtes d'invocation par commande.
Pourquoi c'est important en investigation
Les transcriptions sont le seul artefact PowerShell courant qui enregistre les sorties. Les journaux d'événements et l'historique PSReadLine montrent ce qui a été exécuté ; une transcription montre aussi ce qui a été renvoyé : un listage de répertoire, le contenu d'un fichier lu, une erreur prouvant qu'une commande a échoué. Ce contexte permet souvent de trancher si une action a réussi.
Deux réserves s'appliquent. D'abord, toutes les heures d'une transcription correspondent à l'horloge locale de l'hôte, au format yyyyMMddHHmmss, sans fuseau horaire : notez donc le fuseau de la machine avant de corréler avec des journaux d'événements en UTC. Ensuite, un fichier auquel il manque le pied de page transcript end a été interrompu ou tronqué, et un même fichier peut contenir plusieurs paires début/fin.
Exemple
Par défaut, chaque session est enregistrée dans le dossier Documents de l'utilisateur sous le nom PowerShell_transcript.<computer>.<random>.<timestamp>.txt. L'en-tête ressemble à ceci :
**********************
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
**********************
Chaque ligne d'invite est ensuite suivie de la commande et de sa sortie. Avec -IncludeInvocationHeader, un Command start time: précède chaque commande et le parseur l'associe à cette commande ; sans lui, les commandes héritent de l'heure de début de la session et sont affichées comme approximatives.
Termes associés
- PSReadLine, le fichier d'historique sans horodatage à lire en parallèle
- Commande encodée, que le parseur décode sur les lignes de transcription
- Journal classique Windows PowerShell, dont le
HostApplicationse recoupe avec l'en-tête de la transcription
Lisez les transcriptions sous forme de chronologie dans PowerShell Parser, et consultez l'analyse forensique de la transcription PowerShell pour le format complet.