History - командлет, который возвращает в powershell историю команд аналогично Linux. Мы так же можем вызвать команду из истории, экспортировать и импортировать.
Что бы увидеть все команды по работе с историей выполните:
Get-Command -Noun History
Вся история хранится в рамках текущей сессии и поэтому, если вы закрыли окно Powershell, вся история будет потеряна.
У Get-History есть алиас history, так что можно использовать что вам удобнее.
С помощью этого командлета мы получим всю историю:
Get-History
У нас доступно два параметра:
- id - получение команды по идентификатору
- Count - число последних команд, которые должны вернуться
Следующий командлет исполнит команду по её id:
Invoke-History 129
Вместо ID можно написать и часть команды, но исполнится именно та, которая употреблялась чаще всего:
Invoke-History Get-Tem
Если сомневаетесь какая команда выполнится, то можете использовать ключ WhatIF, который сэмулирует действия без каких либо изменений.
Если у нас целый ряд команд, который мы хотим выполнить, то можно просто передать их через цикл. В моем случае это команделты с 162 по 166:
162..166 | % {Invoke-History -id $_}
Мы можем выгрузить данные в csv с Powershell:
Get-History | Export-Csv -Path C:\csv.csv -NoTypeInformation
Как работать с WMI в Powershell
Затем импортировать и добавить в историю команды:
$csv = Import-Csv -Path C:\csv.csv
Add-History -InputObject $csv
Отмечу, что команды импортируются под другими номерами.
Для очистки истории:
Clear-History
Очистить историю можно по:
- id - по идентификатору
- CommandLine - по точному соответствию команд
- Count - определенное число
- Newest - самые последние
Кроме этого, при получении истории у нас так же есть данные по времени запуска и окончании работы команд:
Get-History
...
Подписывайтесь на наш Telegram канал
Теги: #powershell