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


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

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

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

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

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

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

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

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

О Windows PowerShell

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

Помимо команд, Windows PowerShell поддерживает различные настраиваемые провайдеры Windows PowerShell, которые предоставляют определённые наборы cmdlet. Оболочка работает внутри хост-приложения Windows PowerShell (powershell.exe), но также доступна и через собственное хост-приложение, которое можно разработать под конкретные требования. Для получения дополнительной информации смотрите раздел «Как работает Windows PowerShell».

Windows PowerShell Cmdlets

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

Для получения дополнительной информации о cmdlet-файлах см. раздел «Написание команды Windows PowerShell».

Провайдеры Windows PowerShell

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

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

Если вы откроете хранилище данных, к которому пользователю потребуется получить доступ, возможно, вам придётся написать собственного провайдера Windows PowerShell, как описано в разделе «Создание Windows PowerShell Providers». Для получения дополнительной информации о провайдерах Windows PowerShell смотрите раздел «Как работает Windows PowerShell».

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

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

Редко приходится писать собственное хост-приложение для Windows PowerShell, хотя поддерживается настройка. Один из случаев, когда вам может понадобиться собственное приложение, — это когда вам требуется интерфейс графического интерфейса, более богатый, чем интерфейс, предоставляемый стандартным хост-приложением. Возможно, вам также понадобится пользовательское приложение, когда вы строите свой GUI на командной строке. Для получения дополнительной информации смотрите раздел «Как создать хост-приложение Windows PowerShell».

Windows PowerShell Runtime

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

Windows PowerShell Language

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

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

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

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

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

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

  • Пишу индивидуальные объекты.

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

    Для получения дополнительной информации об ETS и о том, как Windows PowerShell использует объекты, см. раздел Windows PowerShell Object Concepts.

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

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

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

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

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

Для получения дополнительной информации о начале использования оболочки Windows PowerShell см. раздел «Как начать с Windows PowerShell , поставляемый с Windows PowerShell». Также предоставляется документ Quick Reference tri-fold в качестве вводного материала для использования cmdlet.

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

Тема Definition
Как создать хост-приложение Windows PowerShell В этом разделе описывается, как написать хост-приложение, управляющее пространством выполнения, и как написать хост-приложение, реализующее собственный собственный хост.
Как создать Windows PowerShell Snap-in В этом разделе описывается, как создать snap-in, который используется для регистрации всех cmdlet и провайдеров в ассембле, а также как создать пользовательский snap-in.
Концепции Windows PowerShell В этом разделе содержится концептуальная информация, которая поможет вам понять Windows PowerShell с точки зрения разработчика.

См. также

Windows PowerShell SDK