PowerShell у Windows 10 може надати вам історію кожної команди, яку ви виконали в поточному сеансі, однак для багатьох користувачів цього недостатньо. Їм потрібна історія команд, що виконуються в сеансах. Якщо вам потрібно отримати історію команд PowerShell, а історія для поточного сеансу сама по собі не допомагає, є сценарій і файл журналу, які можуть вам допомогти.
Історія команд Поточний сеанс
Якщо ви використовуєте PowerShell 5, ви можете отримати історію команд для поточного сеансу, виконавши таку команду;
Get-History
За замовчуванням PowerShell може зберігати до 50 команд, але ви можете змінити його, щоб зберегти більше. Відкрийте PowerShell і клацніть правою кнопкою миші рядок заголовка. З контекстного меню перейдіть до Властивості. У вікні Властивості перейдіть на вкладку Параметри. Ви побачите розділ «Історія команд», де за замовчуванням встановлено значення 50. Змініть його на вищі значення.
Журнал історії PowerShell
Щоб переглянути журнал історії, вам потрібно спочатку встановити модуль PSReadLine за допомогою наступної команди;
Install-Module PSReadLine
Далі виконайте таку команду, і вона поверне розташування файлу. Файл у цьому місці надасть вам повну історію кожної команди, яку ви запускали в PowerShell.
(Get-PSReadlineOption).HistorySavePath
Історія команд PowerShell між сеансами
Це трохи тривалий процес, але він того варте. Це рішення походить з Intel. Спочатку відкрийте наведене нижче розташування та перевірте, чи є в цьому місці файл Microsoft.PowerShell_profile.ps1.
C:Users<username>DocumentsWindowsPowerShell
Якщо там немає файлу, відкрийте PowerShell і виконайте таку команду. Він відкриє файл вашого профілю в Блокноті, але цього файлу не існує, і PowerShell розповість вам про це та запитає, чи хочете ви його створити. Дозвольте йому створити файл.
notepad $Profile
Закрийте файл блокнота, що відкриється. У PowerShell виконайте цю команду, щоб переконатися, що ви використовуєте PowerShell 5.
$PSVersionTable.PSVersion
Далі встановіть політику виконання на RemoteSigned за допомогою такої команди.
set-executionpolicy remotesigned
Далі необхідно встановити PsUrl і PSReadline модулі. Ви можете встановити їх за допомогою наступної команди, але якщо ви отримаєте помилку, просто встановіть їх вручну за допомогою процесу, описаного на пов’язаних сторінках, або спробуйте додати репозиторій як надійне сховище, а потім запустіть команду знову.
install-module PsUrl
install-module PSReadline
Тепер, коли ці модулі встановлено, відкрийте цей файл;
C:Users<username>DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
Вставте наступне в цей файл і збережіть його.
$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
Щоб переглянути історію команд у PowerShell, вам потрібно запустити команду Get-History, однак є один дуже важливий крок, щоб переконатися, що ваша історія збережена. Ви НЕ МОЖЕТЕ закрити PowerShell, натиснувши кнопку закрити. Натомість ви завжди повинні закривати його за допомогою команди exit.
Ви можете використовувати клавіші зі стрілками вгору та вниз для перемикання попередніх команд.