Конвейеры в Windows PowerShell

Конвейеры в Windows PowerShellКак мы уже говорили ранее, Windows PowerShell работает с объектами, которые являются совокупностью свойств и методов. По сути, работая с файлами, параметрами реестра или чем-то еще, PowerShell интерпретирует их в понятные для себя объекты.

Определив тип объекта, PowerShell способен выполнять с ними различные действия. При этом действия могут быть объединены в конвейеры.

Строго говоря, конвейер это не изобретение PowerShell. Конвейеризация есть и классической командной строке Windows. Правда там это объединение команд, при котором идет направление выходного потока текста из одной команды во входной команд другой.

В Windows PowerShell конвейеры передают не текст, а объекты. Каждая команда в конвейере получает объект от предыдущей, выполняет с ним операции и передаёт следующей. Команды в конвейере разделяются символом вертикальной черты |.

Ниже пошагово составим конвейер, который выводил бы на экран только конкретные параметры объекта PowerShell.

Как мы знаем, информацию о запущенных в системе процессах, можно получить командой

Get-Process

ниже пример её выполнения.

Конвейеры в Windows PowerShell

Каждый процесс это по сути своей объект в Windows PowerShell, который обладает определенными параметрами (Handles, NPM(K), PM(K) и т.д.).

По умолчанию в окне консоли выводится информацию не обо всех параметрах объекта. Для того, чтобы просмотреть все параметры нашего объекта (в данном случае запущенный процесс), составим небольшой конвейер:

Get-Process | Get-Member

В этом конвейере командлет Get-Process вывел информацию о запущенных процессах, которые в PowerShell являются объектами и передал эти объекты командлету Get-Member, который вывел информацию об их параметрах.

Конвейеры в Windows PowerShell

В чем практический смысл этого конвейера? Допустим, Вы хотите отслеживать «зависшие» процессы или их приоритет. По умолчанию PowerShell такие параметры не выводит. Для изменения параметров вывода нужно править определенные конфигурационные файлы. Но для начала нам нужно было узнать имена искомых параметров, что мы и сделали этим конвейером. Так, в частности, «завис» процесс или нет, показывает параметр Responding.

Что касается правки конфигурационных файлов, то к этой теме надо подходить с особенной осторожностью, и лучше было бы осветить её в отдельной статье. Для общего понимания скажу, что информация об отображении параметров объектов в PowerShell хранится в специальных конфигурационных файлах pslxml, находящихся в каталоге с PowerShell. Править эти файлы крайне не рекомендуется. Желательно создавать собственные конфигурационные файлы и включать их в состав автоматически загружаемых файлов при старте Windows PowerShell.

Обо всём этом поговорим подробнее в следующий раз.

Добавить комментарий

Ваш адрес email не будет опубликован.