Partilhar via


Windows PowerShell Programmer's Guide (Guia do Programador do Windows PowerShell)

Este guia para programadores destina-se a programadores interessados em fornecer um ambiente de gestão em linha de comandos para administradores de sistemas. O Windows PowerShell oferece uma forma simples de construir comandos de gestão que expõem objetos .NET, permitindo que o Windows PowerShell faça a maior parte do trabalho por si.

No desenvolvimento tradicional de comandos, é necessário escrever um parser de parâmetros, um binder de parâmetros, filtros e todas as outras funcionalidades expostas por cada comando. O Windows PowerShell fornece o seguinte para facilitar a escrita de comandos:

  • Um poderoso runtime PowerShell (motor de execução) com o seu próprio parser e um mecanismo para ligar automaticamente parâmetros de comando.

  • Utilitários para formatação e apresentação de resultados de comandos usando um interpretador de linha de comandos (CLI).

  • Suporte para níveis elevados de funcionalidade (através de fornecedores Windows PowerShell) que facilitam o acesso a dados armazenados.

    A baixo custo, pode representar um objeto .NET através de um comando rico ou conjunto de comandos que ofereça uma experiência completa na linha de comandos ao administrador.

    A secção seguinte aborda os conceitos e termos chave do Windows PowerShell. Familiarize-se com estes conceitos e termos antes de começar o desenvolvimento.

Sobre o Windows PowerShell

O PowerShell do Windows define vários tipos de comandos que podes usar no desenvolvimento. Estes comandos incluem: funções, filtros, scripts, pseudónimos e executáveis (aplicações). O principal tipo de comando discutido neste guia é um comando simples e pequeno chamado "cmdlet". O PowerShell do Windows fornece um conjunto de cmdlets e suporta totalmente a personalização dos cmdlets para se adequar ao seu ambiente. O runtime do Windows PowerShell processa todos os tipos de comandos tal como processa os cmdlets, usando pipelines.

Para além dos comandos, o Windows PowerShell suporta vários fornecedores personalizáveis de Windows PowerShell que disponibilizam conjuntos específicos de cmdlets. O shell opera dentro da aplicação host fornecida pelo Windows PowerShell (powershell.exe), mas é igualmente acessível a partir de uma aplicação host personalizada que pode desenvolver para satisfazer requisitos específicos. Para mais informações, consulte Como Funciona o Windows PowerShell.

Windows PowerShell Cmdlets

Um cmdlet é um comando leve utilizado no ambiente Windows PowerShell. O runtime do Windows PowerShell invoca estes cmdlets no contexto dos scripts de automação fornecidos na linha de comandos, e o runtime do Windows PowerShell também os invoca programaticamente através das APIs do Windows PowerShell.

Para mais informações sobre cmdlets, consulte Escrever um Cmdlet PowerShell para Windows.

Fornecedores Windows PowerShell

Ao realizar tarefas administrativas, o utilizador pode precisar de examinar dados armazenados num armazenamento de dados (por exemplo, o sistema de ficheiros, o Registo do Windows ou um armazenamento de certificados). Para facilitar estas operações, o Windows PowerShell define um módulo chamado fornecedor Windows PowerShell que pode ser usado para aceder a um armazenamento de dados específico, como o Windows Registry. Cada fornecedor suporta um conjunto de cmdlets relacionados para dar ao utilizador uma visão simétrica dos dados na loja.

O Windows PowerShell fornece vários fornecedores padrão de PowerShell do Windows. Por exemplo, o fornecedor do Registo suporta a navegação e manipulação do Registo do Windows. As chaves do registo são representadas como itens, e os valores do registo são tratados como propriedades.

Se expor um armazenamento de dados ao qual o utilizador terá de aceder, poderá ser necessário escrever o seu próprio fornecedor Windows PowerShell, conforme descrito em Criar Fornecedores Windows PowerShell. Para mais informações sobre os fornecedores Windows PowerShell, consulte Como Funciona o Windows PowerShell.

Aplicação do Host

O Windows PowerShell inclui a aplicação anfitriã predefinida powershell.exe, que é uma aplicação de consola que interage com o utilizador e hospeda o runtime do Windows PowerShell usando uma janela de consola.

Raramente precisará de escrever a sua própria aplicação anfitriã para o Windows PowerShell, embora a personalização seja suportada. Um caso em que pode precisar da sua própria aplicação é quando precisa de uma interface gráfica mais rica do que a interface fornecida pela aplicação anfitriã padrão. Também pode querer uma aplicação personalizada quando basear a sua interface gráfica na linha de comandos. Para mais informações, veja Como Criar uma Aplicação Anfitriã Windows PowerShell.

Execução do Windows PowerShell

O runtime do Windows PowerShell é o motor de execução que implementa o processamento de comandos. Inclui as classes que fornecem a interface entre a aplicação anfitriã e os comandos e fornecedores do Windows PowerShell. O runtime do Windows PowerShell é implementado como um objeto de runspace para a sessão atual do Windows PowerShell, que é o ambiente operacional onde o shell e os comandos são executados. Para detalhes operacionais, consulte Como Funciona o Windows PowerShell.

Linguagem PowerShell do Windows

A linguagem PowerShell do Windows fornece funções e mecanismos de scripting para invocar comandos. Para informações completas sobre scripts, consulte a Referência da Linguagem Windows PowerShell incluída com o Windows PowerShell.

Sistema de Tipos Estendidos (ETS)

O Windows PowerShell oferece acesso a uma variedade de objetos diferentes, como .NET e objetos XML. Como consequência, para apresentar uma abstração comum para todos os tipos de objetos, a casca utiliza o seu sistema de tipos estendido (ETS). A maior parte das funcionalidades do ETS é transparente para o utilizador, mas o programador do script ou do .NET utiliza-a para os seguintes fins:

  • Visualizar um subconjunto dos membros de objetos específicos. O Windows PowerShell fornece uma vista "adaptada" de vários tipos específicos de objetos.

  • Adicionar membros a objetos existentes.

  • Acesso a objetos serializados.

  • Escrever objetos personalizados.

    Usando o ETS, pode criar novos "tipos" flexíveis que sejam compatíveis com a linguagem PowerShell do Windows. Se for programador .NET, pode trabalhar com objetos usando a mesma semântica que a linguagem PowerShell do Windows aplica ao scripting, por exemplo, para determinar se um objeto avalia como true.

    Para mais informações sobre o ETS e como o Windows PowerShell utiliza objetos, consulte Windows PowerShell Object Concepts.

Programação para Windows PowerShell

O Windows PowerShell define o seu código para comandos, fornecedores e outros módulos de programa usando o .NET Framework. Não está limitado ao uso do Microsoft Visual Studio na criação de módulos personalizados para o Windows PowerShell, embora os exemplos fornecidos neste guia sejam conhecidos por funcionar nesta ferramenta. Podes usar qualquer linguagem .NET que suporte herança de classes e o uso de atributos. Em alguns casos, as APIs PowerShell do Windows exigem que a linguagem de programação consiga aceder a tipos genéricos.

Referência do Programador

Para referência ao desenvolver para Windows PowerShell, consulte o Windows PowerShell SDK.

Começar a usar o Windows PowerShell

Para mais informações sobre como começar a usar o shell do Windows PowerShell, consulte o Getting Started with Windows PowerShell fornecido com o Windows PowerShell. Um documento tri-fold de Referência Rápida também é fornecido como introdução para uso em cmdlet.

Índice deste Guia

Tópico Definition
Como Criar uma Aplicação Anfitriã Windows PowerShell Esta secção descreve como escrever uma aplicação anfitriã que manipule um espaço de execução e como escrever uma aplicação anfitriã que implemente o seu próprio anfitrião personalizado.
Como criar um snap-in para Windows PowerShell Esta secção descreve como criar um snap-in usado para registar todos os cmdlets e fornecedores num assembly e como criar um snap-in personalizado.
Conceitos do Windows PowerShell Esta secção contém informações conceptuais que o ajudarão a compreender o Windows PowerShell do ponto de vista de um programador.

Ver também

Windows PowerShell SDK