Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia para programadores é direcionado a desenvolvedores interessados em fornecer um ambiente de gerenciamento de linha de comando para administradores de sistemas. O Windows PowerShell oferece uma maneira simples de construir comandos de gerenciamento que expõem objetos .NET, enquanto permite que o Windows PowerShell faça a maior parte do trabalho para você.
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 oferece o seguinte para facilitar a escrita de comandos:
Um poderoso runtime PowerShell do Windows (motor de execução) com seu próprio parser e um mecanismo para vincular automaticamente parâmetros de comando.
Utilitários para formatação e exibição de resultados de comandos usando um interpretador de linha de comando (CLI).
Suporte a altos níveis de funcionalidade (por meio de provedores Windows PowerShell) que facilitam o acesso a dados armazenados.
Por baixo custo, você pode representar um objeto .NET por um comando rico ou conjunto de comandos que ofereça uma experiência completa na linha de comando ao administrador.
A próxima seção aborda os principais conceitos e termos do PowerShell do Windows. Familiarize-se com esses conceitos e termos antes de começar o desenvolvimento.
Sobre o PowerShell do Windows
O PowerShell do Windows define vários tipos de comandos que você pode usar no desenvolvimento. Esses comandos incluem: funções, filtros, scripts, aliases 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 assim como processa os cmdlets, usando pipelines.
Além dos comandos, o Windows PowerShell suporta vários provedores personalizáveis de PowerShell que disponibilizam conjuntos específicos de cmdlets. O shell opera dentro do aplicativo host fornecido pelo Windows PowerShell (powershell.exe), mas é igualmente acessível a partir de um aplicativo host personalizado que você pode desenvolver para atender a requisitos específicos. Para mais informações, veja Como Funciona o Windows PowerShell.
Windows PowerShell Cmdlets
Um cmdlet é um comando leve usado no ambiente PowerShell do Windows. O tempo de execução do Windows PowerShell invoca esses cmdlets dentro do contexto dos scripts de automação fornecidos na linha de comando, e o tempo de execução do Windows PowerShell também os invoca programaticamente por meio das APIs do Windows PowerShell.
Para mais informações sobre cmdlets, veja Escrevendo um Cmdlet PowerShell para Windows.
Provedores PowerShell para Windows
Ao realizar tarefas administrativas, o usuário pode precisar examinar dados armazenados em um armazenamento de dados (por exemplo, o sistema de arquivos, o Registro do Windows ou um armazenamento de certificados). Para facilitar essas operações, o Windows PowerShell define um módulo chamado provedor Windows PowerShell que pode ser usado para acessar um armazenamento de dados específico, como o Windows Registry. Cada provedor suporta um conjunto de cmdlets relacionados para dar ao usuário uma visão simétrica dos dados no armazenamento.
O Windows PowerShell fornece vários provedores padrão de PowerShell do Windows. Por exemplo, o provedor do Registro suporta a navegação e manipulação do Registro do Windows. Chaves de registro são representadas como itens, e valores de registro são tratados como propriedades.
Se você expor um armazenamento de dados que o usuário precisará acessar, pode ser necessário escrever seu próprio provedor Windows PowerShell, conforme descrito em Criando Provedores Windows PowerShell. Para mais informações sobre os provedores Windows PowerShell, veja Como Funciona o Windows PowerShell.
Aplicação do Host
O Windows PowerShell inclui a aplicação host padrão powershell.exe, que é uma aplicação de console que interage com o usuário e hospeda a runtime do Windows PowerShell usando uma janela de console.
Raramente você precisará escrever seu próprio aplicativo host para o Windows PowerShell, embora a personalização seja suportada. Um caso em que você pode precisar de sua própria aplicação é quando você exige uma interface gráfica mais rica do que a interface fornecida pelo aplicativo host padrão. Você também pode querer um aplicativo personalizado quando basear sua interface gráfica na linha de comando. Para mais informações, veja Como Criar um Aplicativo Host Windows PowerShell.
Windows PowerShell Runtime
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 hospedeira e os comandos e provedores do Windows PowerShell. O runtime do Windows PowerShell é implementado como um objeto de espaço de execução para a sessão atual do Windows PowerShell, que é o ambiente operacional no qual o shell e os comandos são executados. Para detalhes operacionais, veja Como Funciona o Windows PowerShell.
Linguagem PowerShell do Windows
A linguagem PowerShell do Windows fornece funções e mecanismos de script para invocar comandos. Para informações completas sobre scripts, veja a Referência de Linguagem do Windows PowerShell fornecida com o Windows PowerShell.
ETS (Sistema de Tipo Estendido)
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 seu sistema de tipos estendido (ETS). A maior parte das funcionalidades do ETS é transparente para o usuário, mas o script ou desenvolvedor .NET a utiliza para os seguintes propósitos:
Visualizando um subconjunto dos membros de objetos específicos. O Windows PowerShell oferece uma visão "adaptada" de vários tipos específicos de objetos.
Adicionando membros a objetos existentes.
Acesso a objetos serializados.
Escrever objetos personalizados.
Usando o ETS, você pode criar novos "tipos" flexíveis que são compatíveis com a linguagem PowerShell do Windows. Se você é um desenvolvedor .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 para
true.Para mais informações sobre o ETS e como o Windows PowerShell usa objetos, veja Conceitos de Objetos do Windows PowerShell.
Programação para Windows PowerShell
O Windows PowerShell define seu código para comandos, provedores e outros módulos de programa usando o .NET Framework. Você não está restrito ao uso do Microsoft Visual Studio para criar módulos personalizados para o Windows PowerShell, embora os exemplos fornecidos neste guia sejam conhecidos por rodar nesta ferramenta. Você pode usar qualquer linguagem .NET que suporte herança de classes e o uso de atributos. Em alguns casos, APIs do PowerShell do Windows exigem que a linguagem de programação possa acessar tipos genéricos.
Referência do Programador
Para referência ao desenvolver para Windows PowerShell, veja o Windows PowerShell SDK.
Começando a usar o Windows PowerShell
Para mais informações sobre como começar a usar o shell do Windows PowerShell, veja o Começo com o 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 cmdlets.
Conteúdo deste Guia
| Tópico | Definition |
|---|---|
| Como criar uma aplicação host do Windows PowerShell | Esta seção descreve como escrever uma aplicação host que manipula um espaço de execução e como escrever uma aplicação host que implemente seu próprio host customizado. |
| Como criar um snap-in para Windows PowerShell | Esta seção descreve como criar um snap-in usado para registrar todos os cmdlets e provedores em um assembly e como criar um snap-in personalizado. |
| Conceitos do Windows PowerShell | Esta seção contém informações conceituais que vão ajudar você a entender o Windows PowerShell do ponto de vista de um desenvolvedor. |