Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Петухов_итог.doc
Скачиваний:
36
Добавлен:
01.04.2025
Размер:
742.91 Кб
Скачать
    1. Типы команд PowerShell

Все команды в оболочке cmd.exe разделялись на внутренние, которые распознавались и выполнялись непосредственно интерпретатором cmd.exe, и внешние, которые представляли собой отдельные исполняемые модули. К внутренним относятся, например, команды dir и copy, а к внешним – scopy и more. Кроме этого, оболочка cmd.exe поддерживала сценарии – командные файлы.

В оболочке PowerShell поддерживаются команды четырёх типов: командлеты, функции, сценарии и внешние исполняемы файлы.

      1. Командлеты

Первый тип команд PowerShell – так называемые командлеты (cmdlet). Этот термин используется пока только в нутрии PowerShell. Командлет представляет собой класс .NET, порождённый от базового класса Cmdlet. Единый базовый класс Cmdlet гарантирует совместный синтаксис всех командлетов, а также автоматизирует анализ параметров командной строки и описание синтаксиса командлетов, выдаваемое встроенной справкой.

Команды этого типа компилируются в динамическую библиотеку (DLL) и подгружаются к процессу PowerShell во время запуска оболочки (то есть сами по себе командлеты не могут быть запущены как приложения, но в них содержатся исполняемые объекты). Так как компилируемый код подгружается к процессу оболочки, такие команды выполняются наиболее эффективно. Командлеты можно считать в определённом смысле аналогом внутренних команд традиционных оболочек, хотя в отличие от внутренних команд новые командлеты могут быть добавлены в систему в любое время. Командлеты могут быть очень простыми или очень сложными, но каждый из них разрабатывается для решения одной узкой задачи. Работы с командлетами становится по-настоящему эффективной при использовании их композиции, когда объекты передаются от одного командлета другому по конвейеру.

Имена и структура командлетов

Имена командлетов всегда соответствуют шаблону «глагол-существительное», где глагол задаёт определённое действие, а существительное определяет объект, над которым это действие будет совершено. Например, для получения информации о процессе служит командлет Get-Process, для остановки запущенной службы - Stop-Service, для очистки экрана консоли – командлет Clear-Host и т.д.

Командлеты могут иметь параметры – элементы, предоставляющие командлетам дополнительную информацию. Данная информация либо определяет элементы, с которыми должна работать команда, либо определяет, каким образом будет работать командлет. Параметры командлетов могут быть трёх разных типов; обратиться к ним можно по имени, перед которым ставится дефис (-) или по позиции (в последнем случае интерпретация параметра будет выполняться в зависимости от его местоположения, а командной строке).

Общие параметры командлетов

Все командлеты являются потоками базового класса Cmdlet, в котором определены несколько параметров, обеспечивающих определённый уровень совместимости командлетов и согласования интерфейса оболочки PowerShell. Таким образом, некоторые параметры, называемые общими, поддерживаются всеми командлетами PowerShell (при этом на некоторые командлеты подобные параметры могут никак не влиять). Общие параметры перечислены в таблице 12.

Таблица 12. Требования к инструменту автоматизации

Параметр

Тип

Описание

-Verbose

Boolean

Включает режим вывода подробных сведений об операции, таких как результаты её мониторинга или журналирование транзакций. Этот параметр эффективен только в командлетах, создающих подробные данные.

-Debug

Boolean

Включает режим создания подробного отчёта об операции на уровне программирования. Этот параметр эффективен только в командлетах, создающих данные отладки.

-ErrorAction

Enum

Определяет, какой будет реализация командлета на возникновение ошибки. Возможные значения: Continue, Stop, SilentContinue, Inquire.

-ErrorVariable

String

Определяет переменную, в которой будут сохраняться ошибки команды во время выполнения. Эта переменная создаётся дополнительно к переменной Serror.

-OutVariable

String

Задаёт переменную, в которой будут сохраняться выходные данные команды во время выполнения.

-OutBuffer

Int32

Определяет количество хранящихся в буфере объектов перед вызовом следующего командлета в конвейере.

-WhatIf

Boolean

Предоставляет сведения об изменениях, которые произойдут в результате указанных действий, не производя самих этих действий. Данный параметр поддерживается командлетами в то случае, если они изменяют состояние системы.

-Confim

Boolean

Запрашивает разрешение у пользователя на выполнении каких-либо действий, вносящих изменения в систему. Данный параметр поддерживается командлетами в том случае, если они изменяют состояние системы.