Типы команд PowerShell
В отличии от командной строки (внутренние и внешние команды), PowerShell имеет в своем составе команды четырех видов: командлеты, функции, сценарии и внешние исполняемые файлы.
- Командлеты (cmdlet) – это первый тип PowerShell команд, которые являют собой .NET класс, порожденный от базового класса Cmdlet. Командлеты компилируются в динамическую библиотеку (DLL), которая подгружается процессом PowerShell при запуске консоли, отсюда следует, что в отличии от внешних команд командной строки, они не могут быть отдельно запущены в виде приложений. Командлеты PowerShell являются своеобразным аналогом внутренних команд командной строки, но в отличии от них, могут быть добавлены дополнительно в систему. Для их разработки используется пакет PowerShell Software Developers Kit (SDK).
Все данные команды PowerShell соответствуют шаблону “глагол-существительное” (Get-Process – получить список процессов, Get-Command – получить список установленных в системе командлетов, Stop-Service – остановка службы, Clear-Host – очистить экран консоли и так далее).
Как и в командной строке, можно передавать параметры:
cmdlet name –parameter1 –parameter2 –argument1 –argument2, ….
Тут parameter1 – тут идет название параметра, который принимает значение argument1, а parameter2 – тут идет название параметра, который принимает значение argument2 и так далее. Например, Get-Childitem –Recurse (вместо Get-Childitem можно использовать псевдоним dir ).
Все командлеты (cmdlet) являются потомками базового класса Cmdlet, который определяет несколько универсальных параметров, которые поддерживаются всеми PowerShell командами данного типа:
-Verbose – тип Boolean, режим для вывода подробных сведений об операции, например, мониторинг или журналирование транзакций. Параметр Verbose дает эффект лишь в тех командах, которые создают подробные данные (информация о файлах, например).
-Debug – тип Boolean, режим создания подробного отчета об операции на уровне программирования. Эффективен при создании данных отладки.
-ErrorAction – тип Enum, реакция на возникшую ошибку, принимает значения Continue (по умолчанию), Stop, SilentlyContinue или Inquire.
-ErrorVariable – тип String, определяет переменную, хранящую в себе ошибки команды во время выполнения. Эта переменная создается дополнительно к переменной Serror.
-OutVariable – тип String, определяет переменную, хранящую в себе выходные данные команды PowerShell во время выполнения.
-OutBuffer – тип Int32, определяет количество хранящихся в буфере объектов перед вызовом следующего командлета в конвейере.
-Whatif – тип Boolean, предоставляет сведения об изменениях, которые произойдут в результате указанных действий, не производя самих этих действий. Данный параметр поддерживается в том случае, если происходит изменение состояния системы.
-Confirm – тип Boolean, запрашивает разрешение у пользователя на выполнение каких-либо действий, вносящих изменения в систему. Данный параметр поддерживается командлетами в том случае, если изменяется состояние системы.
- Функции – это команды, которые представляют собой блок кода на языке PowerShell, данный блок имеет название и хранится в памяти до завершения текущего сеанса командной оболочки. Как и командлеты, функции могут принимать параметры. Для примера создадим собственную функцию, которая будет принимать параметр и выводить сообщение на экран консоли:
function MyFunc($a) {"Вы передали, $a значение"}
Вызвать функцию MyFunc можно следующим способом:
Myfunc Параметр
Сценарии – тип команд PowerShell, которые представляют собой также блок кода на языке PowerShell, но уже хранящийся во внешнем файле расширением psl.
Внешние исполняемые файлы – PowerShell команды, которые представляют собой внешние исполняемые файлы, которые выполняются операционной системой обычным образом. В частности, из оболочки PowerShell можно запускать любые внешние команды интерпретатора cmd.exe (например, хсору), просто указывая их имена.
Советую почитать:
Опубликовано в рубрике PowerShell