Comment obtenir l’historique des commandes PowerShell sur Windows 10



PowerShell sous Windows 10 conserve un historique des commandes exécutées durant une session en cours. Cependant, cette fonctionnalité peut s’avérer insuffisante pour de nombreux utilisateurs qui souhaitent conserver une trace des commandes saisies entre différentes sessions. Heureusement, il existe des méthodes alternatives, notamment un script et un fichier journal, permettant de récupérer un historique plus complet de vos activités dans PowerShell.

Historique de la session actuelle

Si vous utilisez PowerShell 5 ou une version ultérieure, vous pouvez accéder à l’historique des commandes de la session active en utilisant la commande suivante :

Get-History

Par défaut, PowerShell enregistre les 50 dernières commandes saisies. Vous pouvez modifier cette limite en augmentant le nombre de commandes conservées. Pour cela, ouvrez PowerShell, faites un clic droit sur la barre de titre et sélectionnez « Propriétés ». Dans la fenêtre des propriétés, allez dans l’onglet « Options » et repérez la section « Historique des commandes ». Vous pourrez alors modifier la valeur par défaut (50) et la remplacer par une valeur plus élevée, adaptée à vos besoins.

Le journal d’historique PowerShell

Pour consulter l’historique complet de vos commandes PowerShell, il est nécessaire d’installer au préalable le module PSReadLine. Utilisez la commande suivante pour cela :

Install-Module PSReadLine

Une fois le module installé, exécutez la commande suivante. Elle vous indiquera l’emplacement d’un fichier contenant l’historique complet de toutes les commandes que vous avez utilisées dans PowerShell :

(Get-PSReadlineOption).HistorySavePath

Historique des commandes PowerShell entre les sessions

Bien que légèrement plus complexe, cette méthode permet de conserver l’historique des commandes entre les différentes sessions PowerShell. Cette solution s’inspire des travaux de Intel. Commencez par vérifier l’existence d’un fichier nommé « Microsoft.PowerShell_profile.ps1 » dans le répertoire suivant :

C:Users<username>DocumentsWindowsPowerShell

Si le fichier n’existe pas, ouvrez PowerShell et saisissez la commande suivante. Cela ouvrira un fichier de profil vierge dans le Bloc-notes. PowerShell vous demandera alors si vous souhaitez créer le fichier. Acceptez pour que le fichier soit créé :

notepad $Profile

Refermez le fichier de profil. Assurez-vous que vous utilisez PowerShell 5 (ou une version plus récente) en exécutant cette commande :

$PSVersionTable.PSVersion

Ensuite, configurez votre politique d’exécution sur « RemoteSigned » avec cette commande :

set-executionpolicy remotesigned

Il est maintenant nécessaire d’installer les modules PsUrl et PSReadLine. Vous pouvez utiliser les commandes suivantes pour les installer. Si une erreur survient, installez-les manuellement en suivant les instructions disponibles sur les pages correspondantes, ou essayez d’ajouter le dépôt comme source de confiance avant de réessayer :

install-module PsUrl
install-module PSReadline

Une fois ces modules installés, ouvrez le fichier suivant :

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Collez le code suivant dans ce fichier, puis enregistrez-le :

$HistoryFilePath = Join-Path ([Environment]::GetFolderPath('UserProfile')) .ps_history
Register-EngineEvent PowerShell.Exiting -Action { Get-History | Export-Clixml $HistoryFilePath } | out-null
if (Test-path $HistoryFilePath) { Import-Clixml $HistoryFilePath | Add-History }
# if you don't already have this configured...
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

Pour consulter l’historique des commandes dans PowerShell, utilisez la commande « Get-History ». Toutefois, une étape cruciale est à retenir pour garantir l’enregistrement de votre historique : vous ne devez pas fermer PowerShell en cliquant sur le bouton « Fermer » de la fenêtre. Utilisez toujours la commande « exit » pour fermer la session.

Vous pouvez parcourir votre historique de commandes en utilisant les touches fléchées Haut et Bas.