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.
Table des matières
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.
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.
Vous pouvez utiliser les touches fléchées Haut et Bas pour parcourir les commandes précédentes.