Відстеження історії команд PowerShell у Windows 10
PowerShell у Windows 10 надає можливість перегляду історії команд, виконаних у межах поточного сеансу. Однак, для багатьох користувачів цього може виявитися недостатньо. Часто виникає потреба в аналізі історії команд, що виконувались протягом різних сеансів. Якщо вам необхідна така розширена історія, то існують спеціальні сценарії та файли журналів, які допоможуть вам у цьому.
Перегляд історії команд поточного сеансу
Для користувачів 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<ім’я_користувача>DocumentsWindowsPowerShell
Якщо такого файлу немає, відкрийте PowerShell та виконайте команду. Це відкриє файл вашого профілю в блокноті. Якщо файл не існує, PowerShell повідомить вас про це та запропонує створити його. Погодьтеся на створення файлу.
notepad $Profile
Закрийте блокнот. Потім, у PowerShell, виконайте наступну команду для підтвердження, що ви використовуєте PowerShell 5:
$PSVersionTable.PSVersion
Встановіть політику виконання на RemoteSigned за допомогою команди:
set-executionpolicy remotesigned
Далі, необхідно встановити модулі PsUrl та PSReadline. Ви можете зробити це за допомогою наступної команди. Якщо під час інсталяції виникають помилки, встановіть модулі вручну, дотримуючись інструкцій на сторінках або ж додайте репозиторій як довірений, а потім спробуйте запустити команду знову.
install-module PsUrl
install-module PSReadline
Після успішного встановлення модулів, відкрийте файл:
C:Users<ім’я_користувача>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
Щоб переглянути історію команд, скористайтеся командою Get-History. Важливо пам’ятати, що для збереження історії, ви НЕ ПОВИННІ закривати PowerShell, натискаючи на кнопку закриття вікна. Замість цього завжди використовуйте команду exit для коректного завершення роботи.
Для перемикання між попередніми командами можна використовувати клавіші зі стрілками вгору та вниз.