вот альтернативный подход, который сохраняет историю без использования другого ярлыка PowerShell.
взяты из
https://software.intel.com/en-us/blogs/2014/06/17/giving-powershell-a-persistent-history-of-commands
откройте PowerShell в режиме администратора и узнайте, какая версия PowerShell у вас есть, выполнив следующую команду:
$PSVersionTable.PSVersion
вам понадобится версия выше 3, Чтобы запустить это, если у вас есть старая версия, обновите ее.
разрешить PowerShell импортировать или использовать сценарии, включая модули, выполнив следующую команду:
set-executionpolicy remotesigned
установите PsGet и установите необходимые модули, выполнив следующие команды:
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
import-module PsGet
install-module PsUrl
install-module PSReadline
создайте следующий скрипт
$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
сохранить файл как C:\Users\<username>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
, где вы должны заменить имя папке на вашем компьютере. Не забудьте изменить опцию "Сохранить как тип" на все архив.
закройте PowerShell и откройте его снова, чтобы он начал использовать сохраненный сценарий.
теперь
get-history
будет получать последние несколько сотен команд, которые вы ввели, и вы можете перемещаться между ними с помощью клавиш со стрелками.