История команд в сеансе работы оболочки Windows PowerShell

Оболочка Windows PowerShell предоставляет пользователю специальный журнал сеанса или журнал команд, в котором хранятся вводимые во время сеанса команды, с возможностью их повторного использования. По умолчанию, Window оболочка PowerShell хранит последние 64 команды, для изменения этого значения надо изменить параметры переменной $MaximumHistoryCount. Например:

PS  C:\>   $MaximumHistoryCount
64
PS C:\> $MaximumHistoryCount=100
PS C:\> $MaximumHistoryCount
100

Вы можете автоматизировать свои действия, применяя специальные клавиши (курсор вверх и курсор вниз) для выбора той или иной команды из журнала событий. Также можно ввести лишь команды, начинающиеся с определенных символов и нажать на клавишу F8, тем самым можно будет просмотреть лишь команды по шаблону. Для отображения всех системных команд, сохранившихся в журнале надо нажать клавишу F7 – на выходе получим окно со списком, каждый элемент списка имеет свой порядковый номер. Нажатие F9 позволяет по порядковому номеру получить нужную команду.

В оболочке PowerShell Windows есть набор командлетов для работы с журналом событий. Давайте введем в окне консоли следующую команду:

PS C:\ > get-help *-history -detailed

На выходе мы получаем справку по трем командлетам:

Get-History – возвращает список команд введенных пользователем во время сеанса работы, псевдонимы: h, history и ghy, например:

PS C:\ > get-history
Id CommandLine
-- -----------
1 $MaximumHistoryCount
2 $MaximumHistoryCountGet-History
3 Get-History
4 $MaximumHistoryCountGet-History
5 set-history
6 get-help *-history
7 get-help *-history -detayl
8 get-help *-history -detailed

Командлет выводит последние 32 команды, для изменения этого значения используется параметр –Count, например:

PS C:\ > get-history -count 5
Id CommandLine
-- -----------
5 set-history
6 get-help *-history
7 get-help *-history -detayl
8 get-help *-history -detailed
9 get-history

Тут мы вывели список из последних 5 элементов.

Как и в Windows CMD, оболочка PowerShel поддерживает конвееризацию, например:

PS C:\ > Get-History   |   Where-Object   {$_.CommandLine  -like   "*$*"}
Id CommandLine
-- -----------
1 $MaximumHistoryCount
2 $MaximumHistoryCountGet-History
4 $MaximumHistoryCountGet-History

Тут мы вывели список из тех команд, которые содержат в себе символ $.

Та же конвееризация позволяет экспортировать список во внешний файл в формате XML или CSV например:

PS С:<em>\> em>Get-History   |   Export-Clixml d:\data\history.xml

Add-History – предоставляет возможность добавлять команды в журнал сеанса. Для получения справки по данному командлету надо ввести в окне оболочки PowerShell Windows:

PS C:\ > get-help Add-History –full

Так, используя конвееризацию, мы можем добавить в жур­нал сеанса команды, сохраненные в файле history.xml:

PS  С:\> Import-Clixml d:\data\history.xml   |   Add-History

Invoke-History – данный командлет(псевдонимы r и ihy) позволяет выполнить команду из журнала события по заданному порядковому номеру или первым символам. Например:

Вызов последней команды:

PS C:\> Invoke-History

Вызов пятой команды по ее порядковому номеру:

PS  С:\>  Invoke-History -Id 5

или просто

PS  С:\>  r 5

Вызов последней команды Get-Help:

PS C:\> Invoke-History Get-He

Вызов команд, полученных по конвейеру от командлета Get-History:

PS C:\> Get-History | Where-Object ($_.CommandLine -like "*$*"} | Invoke-History

Помимо истории вводимых команд, оболочка Windows PowerShell позволяет сохранить весь сеанс работы, для этого используется Start-Transcript (для остановки протоколирования надо ввести Stop-Transcript):

PS C:\ > get-help Start-Transcript
ИМЯ
Start-Transcript
ОПИСАНИЕ
Создает запись всего сеанса оболочки Windows PowerShell или его части в текстовом файле.
СИНТАКСИС
Start-Transcript [[-path] <string>] [-force] [-noClobber] [-append] [-whatIf] [-confirm] [<CommonParameters>]

Тут:

-path – параметр который определяет путь (string) к текстовому файлу-протоколу, указывать надо явно без постановочных знаков. Если не задавать путь вручную и запустить командлет без параметров, то протокол будет сохранен в файле, путь к которому задан в значении глобальной переменной $Transcript. Если эта переменная не определена, то командлет Start-Transcript сохраняет протоколы в каталоге “$Home\Мои документы” в файлах “PowerShell_transcript.<метка времени>.txt” (в переменной $Home хранится путь к домаш­нему каталогу работающего пользователя). Оболочка Windows PowerShell. Например:

PS C:\ > Start-Transcript  -Path d:\data\protokol.txt

Транскрибирование запущено, выходной файл d:\data\protokol.txt

Для остановки ведения протокола для текущего сеанса PowerShell Windows оболочки надо ввести:

PS C:\ > stop-transcript

Транскрибирование остановлено, выходной файл D:\data\protokol.txt

Если файл протокола уже существует, то по умолчанию он будет перезаписан.

-append – параметр позволяет включить режим добавления нового протокола к уже созданному файлу.

-NoClobber – если этот параметр указан, а файл про­токола уже существует, то командлет start-Transcript оболочка Windows PowerShell не выполняет ника­ких действий.

Если нужны качественные опоры, то вот сайт производства. .

Комментарии закрыты.