Comment obtenir l’historique des commandes PowerShell sur Windows 10

PowerShell sur Windows 10 peut vous donner un historique de chaque commande que vous avez exécutée dans la session en cours, cependant, pour de nombreux utilisateurs, cela ne suffit pas. Ils ont besoin d’un historique des commandes exécutées au cours des sessions. Si vous avez besoin d’obtenir l’historique des commandes PowerShell et que l’historique de la session en cours ne suffit pas, il existe un script et un fichier journal qui peuvent vous aider.

Historique des commandes Session actuelle

Si vous exécutez PowerShell 5, vous pouvez obtenir l’historique des commandes pour la session en cours en exécutant la commande suivante;

Get-History

Par défaut, PowerShell peut enregistrer jusqu’à 50 commandes, mais vous pouvez le modifier pour en enregistrer davantage. Ouvrez PowerShell et cliquez avec le bouton droit sur la barre de titre. Dans le menu contextuel, accédez à Propriétés. Dans la fenêtre Propriétés, accédez à l’onglet Options. Vous verrez une section Historique des commandes où la valeur par défaut est définie sur 50. Remplacez-la par une valeur plus élevée.

  Comment empêcher un utilisateur d'installer ou d'exécuter des extensions dans Chrome

Journal de l’historique PowerShell

Pour afficher l’historique, vous devez d’abord installer le module PSReadLine avec la commande suivante;

Install-Module PSReadLine

Ensuite, exécutez la commande suivante et elle retournera un emplacement de fichier. Le fichier à cet emplacement vous donnera un historique complet de chaque commande que vous avez exécutée dans PowerShell.

(Get-PSReadlineOption).HistorySavePath

Historique des commandes PowerShell intersessions

C’est un processus un peu long mais ça vaut le coup. Cette solution vient de Intel. Ouvrez d’abord l’emplacement suivant et vérifiez s’il existe un fichier nommé Microsoft.PowerShell_profile.ps1 à cet emplacement.

C:Users<username>DocumentsWindowsPowerShell

S’il n’y a pas de fichier, ouvrez PowerShell et exécutez la commande suivante. Il ouvrira votre fichier de profil dans le Bloc-notes, mais ce fichier n’existe pas et PowerShell vous le dira et vous demandera si vous souhaitez le créer. Autorisez-le à créer le fichier.

notepad $Profile

Fermez le fichier du bloc-notes qui s’ouvre. Dans PowerShell, exécutez cette commande pour vous assurer que vous exécutez PowerShell 5.

$PSVersionTable.PSVersion

Ensuite, définissez votre stratégie d’exécution sur RemoteSigned avec la commande suivante.

set-executionpolicy remotesigned

Ensuite, vous devez installer le PsUrl et PSReadline modules. Vous pouvez les installer avec la commande suivante si vous obtenez une erreur, installez-les simplement manuellement par le processus décrit sur les pages liées, ou essayez d’ajouter le référentiel en tant que référentiel approuvé, puis exécutez à nouveau la commande.

install-module PsUrl
install-module PSReadline

Maintenant que ces modules ont été installés, ouvrez ce fichier;

C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Collez ce qui suit dans ce fichier et 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 afficher l’historique des commandes dans PowerShell, vous devez exécuter la commande Get-History, mais il existe une étape très cruciale pour vous assurer que votre historique est enregistré. Vous NE POUVEZ PAS fermer PowerShell en cliquant sur le bouton Fermer. Au lieu de cela, vous devez toujours le fermer avec la commande exit.

  Comment faire une capture d'écran sur Windows 11 ? 6 façons

Vous pouvez utiliser les touches fléchées Haut et Bas pour parcourir les commandes précédentes.