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


Установка пакета SDK для Windows PowerShell

Область применения: Windows PowerShell 2.0, Windows PowerShell 3.0

В следующем разделе описывается установка пакета SDK PowerShell в разных версиях Windows.

Установка пакета SDK для Windows PowerShell 3.0 для Windows 8 и Windows Server 2012

Windows PowerShell 3.0 автоматически устанавливается с Windows 8 и Windows Server 2012. Кроме того, вы можете скачать и установить эталонные сборки для Windows PowerShell 3.0 в составе пакета SDK для Windows 8. Эти сборки позволяют создавать командлеты, поставщики и хост-программы для Windows PowerShell 3.0. При установке пакета SDK для Windows 8 сборки Windows PowerShell автоматически устанавливаются в папку эталонной сборки в \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0. Дополнительные сведения см. на сайте скачивания пакета SDK для Windows 8. Примеры кода Windows PowerShell также доступны в репозитории powershell-sdk-samples.

Эталонные сборки

Эталонные сборки устанавливаются в следующее расположение по умолчанию: C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0.

Примечание.

Код, скомпилированный для сборок Windows PowerShell 2.0, нельзя загрузить в установки Windows PowerShell 1.0. Однако код, скомпилированный для сборок Windows PowerShell 1.0, можно загрузить в установки Windows PowerShell 2.0.

Образцы

Примеры кода устанавливаются в следующее расположение по умолчанию: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\. В следующих разделах приводится краткое описание того, что делает каждый пример.

Примеры командлетов

  • GetProcessSample01 — показывает, как написать простой командлет, который получает все процессы на локальном компьютере.
  • GetProcessSample02 — показывает, как добавлять параметры в командлет. Командлет принимает одно или несколько имен процессов и возвращает соответствующие процессы.
  • GetProcessSample03 — показывает, как добавлять параметры, принимаюющие входные данные из конвейера.
  • GetProcessSample04 — показывает, как обрабатывать ошибки без прекращения.
  • GetProcessSample05 — показывает, как отобразить список указанных процессов.
  • SelectObject — показывает, как написать фильтр, чтобы выбрать только определенные объекты.
  • SelectString — показывает, как искать файлы для указанных шаблонов.
  • StopProcessSample01 — показывает, как реализовать параметр PassThru и как запросить отзыв пользователей вызовами методов ShouldProcess и ShouldContinue. Пользователи указывают параметр PassThru, если они хотят принудительно принудить командлет возвращать объект,
  • StopProcessSample02 — показывает, как остановить определенный процесс.
  • StopProcessSample03 — показывает, как объявлять псевдонимы для параметров и как поддерживать подстановочные знаки.
  • StopProcessSample04 — показывает, как объявлять наборы параметров, объект, который командлет принимает в качестве входных данных, и как указать используемый набор параметров по умолчанию.

Примеры удаленного взаимодействия

  • RemoteRunspace01 — показывает, как создать удаленное пространство выполнения, используемое для установки удаленного подключения.
  • RemoteRunspacePool01— показывает, как создать удаленный пул пространств выполнения и как одновременно выполнять несколько команд с помощью этого пула.
  • Serialization01— показывает, как просмотреть существующий класс .NET и убедиться, что данные из выбранных общедоступных свойств этого класса сохраняются в рамках сериализации или десериализации.
  • Serialization02 — показывает, как просмотреть существующий класс .NET и убедиться, что сведения из экземпляра этого класса сохраняются в сериализации или десериализации, если информация недоступна в общедоступных свойствах класса.
  • Сериализация03. Показывает, как просмотреть существующий класс .NET и убедиться, что экземпляры этого класса и производных классов десериализуются (регидратируются) в динамические объекты .NET.

Примеры событий

  • Event01 — показано, как создать командлет для регистрации событий, исходя из ObjectEventRegistrationBase.
  • Event02 — показывает, как получать уведомления о событиях Windows PowerShell, созданных на удаленных компьютерах. В нем используется событие PSEventReceived, предоставляемое через класс Runspace.

Примеры размещения приложений

  • Runspace01— показывает, как использовать класс PowerShell для синхронного выполнения командлета Get-Process. Командлет Get-Process возвращает объекты process для каждого процесса, выполняемого на локальном компьютере.
  • Runspace02— показывает, как использовать класс PowerShell для запуска Get-Process и командлетов Sort-Object синхронно. Командлет Get-Process возвращает объекты Process для каждого процесса, выполняемого на локальном компьютере, и Sort-Object сортирует объекты на основе их свойства Id. Результаты этих команд отображаются с помощью элемента управления DataGridView.
  • Runspace03 — показывает, как использовать класс PowerShell для синхронного выполнения скрипта и как обрабатывать неисправные ошибки. Скрипт получает список имен процессов, а затем извлекает эти процессы. Результаты скрипта, включая все неисключающие ошибки, созданные при выполнении скрипта, отображаются в окне консоли.
  • Runspace04— показывает, как использовать класс PowerShell для выполнения команд и как перехватывать завершающие ошибки, возникающие при выполнении команд. Выполняются две команды, а последняя команда передает недопустимый аргумент параметра. В результате не возвращаются объекты и возникает завершающая ошибка.
  • Runspace05 — показывает, как добавить оснастку в объект InitialSessionState, чтобы командлет оснастки был доступен при открытии пространства выполнения. Оснастка предоставляет командлет Get-Proc (определенный примером GetProcessSample01), который выполняется синхронно с помощью объекта PowerShell.
  • Runspace06 — показывает, как добавить модуль в объект InitialSessionState, чтобы модуль загружался при открытии пространства выполнения. Модуль предоставляет командлет Get-Proc (определенный примером GetProcessSample02), который выполняется синхронно с помощью объекта PowerShell.
  • Runspace07 — показывает, как создать пространство выполнения, а затем использовать это пространство выполнения для синхронного выполнения двух командлетов с помощью объекта PowerShell.
  • Runspace08 — показывает, как добавлять команды и аргументы в конвейер объекта PowerShell и как выполнять команды синхронно.
  • Runspace09 — показывает, как добавить скрипт в конвейер объекта PowerShell и как выполнять скрипт асинхронно. События используются для обработки выходных данных скрипта.
  • Runspace10 — показывает, как создать начальное состояние сеанса по умолчанию, как добавить командлет в InitialSessionState, как создать пространство выполнения, использующее начальное состояние сеанса, и как выполнить команду с помощью объекта PowerShell.
  • Runspace11 — показывает, как использовать класс ProxyCommand для создания команды прокси,которая вызывает существующий командлет, но ограничивает набор доступных параметров. Затем команда прокси-сервера добавляется в исходное состояние сеанса, которое используется для создания ограниченного пространства выполнения. Это означает, что пользователь может получить доступ к функциям командлета только с помощью команды прокси-сервера.
  • PowerShell01 — показывает, как создать ограниченное пространство выполнения с помощью объекта InitialSessionState.
  • PowerShell02 — показывает, как использовать пул runspace для одновременного выполнения нескольких команд.

Примеры узлов

  • Host01 — показывает, как реализовать хост-приложение, использующее пользовательский узел. В этом примере создается пространство выполнения, использующее пользовательский узел, а затем API PowerShell используется для запуска скрипта, который вызывает exit. Затем ведущее приложение просматривает выходные данные скрипта и выводит результаты.
  • Host02 — показывает, как писать хост-приложение, использующее среду выполнения Windows PowerShell, а также пользовательскую реализацию узла. Ведущее приложение устанавливает язык и региональные параметры узла на немецкий язык, запускает командлет Get-Process и отображает результаты, как они будут отображаться с помощью pwrsh.exe, а затем выводит текущие данные и время на немецком языке.
  • Host03 — показано, как создать интерактивное консольное хост-приложение, которое считывает команды из командной строки, выполняет команды, а затем отображает результаты в консоли.
  • Host04 — показано, как создать интерактивное консольное хост-приложение, которое считывает команды из командной строки, выполняет команды, а затем отображает результаты в консоли. Это хост-приложение также поддерживает отображение запросов, позволяющих пользователю указать несколько вариантов.
  • Host05 — показано, как создать интерактивное консольное хост-приложение, которое считывает команды из командной строки, выполняет команды, а затем отображает результаты в консоли. Это хост-приложение также поддерживает вызовы удаленных компьютеров с помощью командлетов Enter-PSSession и Exit-PSSession.
  • Host06 — показывает, как создать интерактивное консольное хост-приложение, которое считывает команды из командной строки, выполняет команды, а затем отображает результаты в консоли. Кроме того, в этом примере используются API-интерфейсы tokenizer, чтобы указать цвет текста, введенного пользователем.

Примеры поставщика

  • AccessDBProviderSample01— показывает, как объявить класс поставщика, производный непосредственно от класса КомандлетProvider. Она включена здесь только для полноты.

  • AccessDBProviderSample02— показывает, как перезаписать методы NewDrive и RemoveDrive для поддержки вызовов New-PSDrive и командлетов Remove-PSDrive. Класс поставщика в этом примере является производным от класса DriveCmdletProvider.

  • AccessDBProviderSample03 — показывает, как перезаписать методы GetItem и SetItem для поддержки вызовов командлетов Get-Item и Set-Item. Класс поставщика в этом примере является производным от класса ItemCmdletProvider.

  • AccessDBProviderSample04 — показывает, как перезаписать методы контейнера для поддержки вызовов Copy-Item, Get-ChildItem, New-Itemи командлетов Remove-Item. Эти методы следует реализовать, когда хранилище данных содержит элементы, которые являются контейнерами. Контейнер — это группа дочерних элементов под общим родительским элементом. Класс поставщика в этом примере является производным от класса ItemCmdletProvider.

  • AccessDBProviderSample05— показывает, как перезаписать методы контейнера для поддержки вызовов Move-Item и командлетов Join-Path. Эти методы должны быть реализованы, когда пользователю необходимо переместить элементы в контейнер и если хранилище данных содержит вложенные контейнеры. Класс поставщика в этом примере является производным от класса NavigationCmdletProvider.

  • AccessDBProviderSample06 — показывает, как перезаписать методы содержимого для поддержки вызовов Clear-Content, Get-Contentи командлетов Set-Content. Эти методы должны быть реализованы, когда пользователю необходимо управлять содержимым элементов в хранилище данных. Класс поставщика в этом примере является производным от класса NavigationCmdletProvider и реализует интерфейс IContentCmdletProvider.