Поделиться через


Руководство программиста по Windows PowerShell

Руководство программиста предназначено для разработчиков, заинтересованных в предоставлении среды управления командной строкой системным администраторам. Windows PowerShell предоставляет простой способ создания команд управления, которые предоставляют объекты .NET, позволяя Windows PowerShell выполнять большую часть работы.

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

  • Мощная среда выполнения Windows PowerShell (подсистема выполнения) с собственным средством синтаксического анализа и механизмом автоматической привязки параметров команд.

  • Служебные программы для форматирования и отображения результатов команд с помощью интерпретатора командной строки (CLI).

  • Поддержка высокого уровня функциональности (через поставщики Windows PowerShell), которая упрощает доступ к хранимым данным.

    При небольших затратах можно представить объект .NET с помощью полной команды или набора команд, которые будут предлагать администратору полный интерфейс командной строки.

    В следующем разделе рассматриваются основные понятия и термины Windows PowerShell. Ознакомьтесь с этими понятиями и терминами перед началом разработки.

Сведения о Windows PowerShell

Windows PowerShell определяет несколько типов команд, которые можно использовать в разработке. К этим командам относятся функции, фильтры, скрипты, псевдонимы и исполняемые файлы (приложения). Основной тип команды, рассмотренный в этом руководстве, — это простая, небольшая команда, называемая командлетом. Windows PowerShell предоставляет набор командлетов и полностью поддерживает настройку командлетов в соответствии с вашей средой. Среда выполнения Windows PowerShell обрабатывает все типы команд так же, как и командлеты, используя конвейеры.

Помимо команд, Windows PowerShell поддерживает различные настраиваемые поставщики Windows PowerShell, которые предоставляют доступ к определенным наборам командлетов. Оболочка работает в хост-приложении, предоставленном Windows PowerShell (powershell.exe), но она также доступна из настраиваемого ведущего приложения, которое можно разработать в соответствии с конкретными требованиями. Дополнительные сведения см. в статье о том, как работает Windows PowerShell.

Командлеты Windows PowerShell

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

Дополнительные сведения о командлетах см. в записи командлета Windows PowerShell.

Поставщики Windows PowerShell

При выполнении административных задач пользователю может потребоваться проверить данные, хранящиеся в хранилище данных (например, файловая система, реестр Windows или хранилище сертификатов). Чтобы упростить эти операции, Windows PowerShell определяет модуль, называемый поставщиком Windows PowerShell, который можно использовать для доступа к определенному хранилищу данных, например к реестру Windows. Каждый поставщик поддерживает набор связанных командлетов, чтобы предоставить пользователю симметричное представление данных в хранилище.

Windows PowerShell предоставляет несколько поставщиков Windows PowerShell по умолчанию. Например, поставщик реестра поддерживает навигацию и управление реестром Windows. Разделы реестра представлены как элементы, а значения реестра рассматриваются как свойства.

Если вы предоставляете хранилище данных, к которому пользователю потребуется доступ, может потребоваться написать собственный поставщик Windows PowerShell, как описано в создании поставщиков Windows PowerShell. Дополнительные сведения о поставщиках PowerShellWindows см. в windows PowerShell.

Хост-приложение

Windows PowerShell включает в себя powershell.exeведущего приложения по умолчанию, которое является консольным приложением, которое взаимодействует с пользователем и размещает среду выполнения Windows PowerShell с помощью окна консоли.

Только редко вам потребуется написать собственное хост-приложение для Windows PowerShell, хотя настройка поддерживается. Один из вариантов, в котором может потребоваться собственное приложение, заключается в том, что у вас есть требование к интерфейсу графического интерфейса, который больше, чем интерфейс, предоставляемый ведущим приложением по умолчанию. Вам также может потребоваться пользовательское приложение при создании графического интерфейса в командной строке. Дополнительные сведения см. в статье How to Create a Windows PowerShell Host Application.

Среда выполнения Windows PowerShell

Среда выполнения Windows PowerShell — это подсистема выполнения, реализующая обработку команд. Он включает классы, которые предоставляют интерфейс между ведущим приложением и командами Windows PowerShell и поставщиками. Среда выполнения Windows PowerShell реализуется как объект пространства выполнения для текущего сеанса Windows PowerShell, который является операционной средой, в которой выполняется оболочка и команды. Сведения о работе см. в windows PowerShell.

Язык Windows PowerShell

Язык Windows PowerShell предоставляет функции скриптов и механизмы для вызова команд. Полные сведения о скриптах см. в справочнике по языку Windows PowerShell, отправленной в Windows PowerShell.

Расширенная система типов (ETS)

Windows PowerShell предоставляет доступ к различным объектам, таким как .NET и XML-объекты. В результате для представления общей абстракции для всех типов объектов оболочка использует свою систему расширенного типа (ETS). Большинство функций ETS прозрачны для пользователя, но сценарий или разработчик .NET используют его в следующих целях:

  • Просмотр подмножества элементов определенных объектов. Windows PowerShell предоставляет "адаптированное" представление нескольких конкретных типов объектов.

  • Добавление элементов в существующие объекты.

  • Доступ к сериализованным объектам.

  • Написание настраиваемых объектов.

    С помощью ETS можно создать гибкие "типы", совместимые с языком Windows PowerShell. Если вы являетесь разработчиком .NET, вы можете работать с объектами, используя ту же семантику, что и язык Windows PowerShell, применяется к скриптам, например, чтобы определить, оценивает ли объект true.

    Дополнительные сведения об ETS и использовании объектов Windows PowerShell см. в концепциях объектов Windows PowerShell.

Программирование для Windows PowerShell

Windows PowerShell определяет свой код для команд, поставщиков и других модулей программы с помощью .NET Framework. Вы не ограничиваетесь использованием Microsoft Visual Studio в создании настраиваемых модулей для Windows PowerShell, хотя примеры, приведенные в этом руководстве, известны как запускаемые в этом средстве. Вы можете использовать любой язык .NET, поддерживающий наследование классов и использование атрибутов. В некоторых случаях API Windows PowerShell требуют, чтобы язык программирования мог получить доступ к универсальным типам.

Справочник программиста

Дополнительные сведения о разработке для Windows PowerShell см. в пакете SDK для Windows PowerShell.

Начало работы с Windows PowerShell

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

Содержимое этого руководства

Тема Определение
Создание поставщика Windows PowerShell В этом разделе описывается создание поставщика Windows PowerShell для Windows PowerShell.
Создание ведущего приложения Windows PowerShell В этом разделе описывается, как написать хост-приложение, которое управляет пространством выполнения и как написать ведущее приложение, реализующее собственный пользовательский узел.
Создание оснастки Windows PowerShell В этом разделе описывается создание оснастки, которая используется для регистрации всех командлетов и поставщиков в сборке и создания пользовательской оснастки.
Создание консоли оболочки В этом разделе описывается, как создать консольную оболочку, которая не расширяема.
основные понятия Windows PowerShell В этом разделе содержатся концептуальные сведения, которые помогут вам понять Windows PowerShell с точки зрения разработчика.

См. также

пакета SDK для Windows PowerShell