Compartilhar via


Instalar o SDK do Windows PowerShell

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

O tópico a seguir descreve como instalar o SDK do PowerShell em diferentes versões do Windows.

Instalando o SDK do Windows PowerShell 3.0 para Windows 8 e Windows Server 2012

O Windows PowerShell 3.0 é instalado automaticamente com o Windows 8 e o Windows Server 2012. Além disso, você pode baixar e instalar os assemblies de referência para o Windows PowerShell 3.0 como parte do SDK do Windows 8. Esses assemblies permitem que você escreva cmdlets, provedores e programas de host para o Windows PowerShell 3.0. Quando você instala o SDK do Windows para Windows 8, os assemblies do Windows PowerShell são instalados automaticamente na pasta de assembly de referência, em \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0. Para obter mais informações, consulte o site de download do SDK do Windows 8. Exemplos de código do Windows PowerShell também estão disponíveis no repositório powershell-sdk-samples.

Assemblies de referência

Os assemblies de referência são instalados no seguinte local por padrão: C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0.

Observação

O código compilado nos assemblies do Windows PowerShell 2.0 não pode ser carregado nas instalações do Windows PowerShell 1.0. No entanto, o código compilado nos assemblies do Windows PowerShell 1.0 pode ser carregado em instalações do Windows PowerShell 2.0.

Exemplos

Exemplos de código são instalados no seguinte local por padrão: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\. As seções a seguir fornecem uma breve descrição do que cada exemplo faz.

Exemplos de cmdlet

  • GetProcessSample01 – Mostra como escrever um cmdlet simples que obtém todos os processos no computador local.
  • GetProcessSample02 – Mostra como adicionar parâmetros ao cmdlet. O cmdlet usa um ou mais nomes de processo e retorna os processos correspondentes.
  • GetProcessSample03 – Mostra como adicionar parâmetros que aceitam a entrada do pipeline.
  • GetProcessSample04 – Mostra como lidar com erros de não terminação.
  • GetProcessSample05 – Mostra como exibir uma lista de processos especificados.
  • SelectObject – Mostra como escrever um filtro para selecionar apenas determinados objetos.
  • SelectString – Mostra como pesquisar arquivos em busca de padrões especificados.
  • StopProcessSample01 – mostra como implementar um parâmetro PassThru e como solicitar comentários do usuário por chamadas aos métodos ShouldProcess e ShouldContinue. Os usuários especificam o parâmetro PassThru quando desejam forçar o cmdlet a retornar um objeto,
  • StopProcessSample02 – Mostra como interromper um processo específico.
  • StopProcessSample03 – mostra como declarar aliases para parâmetros e como dar suporte a curingas.
  • StopProcessSample04 – Mostra como declarar conjuntos de parâmetros, o objeto que o cmdlet usa como entrada e como especificar o conjunto de parâmetros padrão a ser usado.

Exemplos de comunicação remota

  • RemoteRunspace01 – mostra como criar um runspace remoto usado para estabelecer uma conexão remota.
  • RemoteRunspacePool01 – Mostra como construir um pool de runspace remoto e como executar vários comandos simultaneamente usando esse pool.
  • Serialização01 – mostra como examinar uma classe .NET existente e garantir que as informações de propriedades públicas selecionadas dessa classe sejam preservadas em serialização/desserialização.
  • Serialização02 – mostra como examinar uma classe .NET existente e garantir que as informações da instância dessa classe sejam preservadas em serialização/desserialização quando as informações não estiverem disponíveis em propriedades públicas da classe.
  • Serialização03 – mostra como examinar uma classe .NET existente e garantir que instâncias dessa classe e de classes derivadas sejam desserializadas (reidratadas) em objetos .NET dinâmicos.

Exemplos de evento

  • Event01 – mostra como criar um cmdlet para registro de evento derivando de ObjectEventRegistrationBase.
  • Event02 – Mostra como mostrar como receber notificações de eventos do Windows PowerShell gerados em computadores remotos. Ele usa o evento PSEventReceived exposto por meio da classe Runspace.

Exemplos de aplicativo de hospedagem

  • Runspace01 – mostra como usar a classe powershell para executar o cmdlet Get-Process de forma síncrona. O cmdlet Get-Process retorna objetos Process para cada processo em execução no computador local.
  • Runspace02 – mostra como usar a classe PowerShell para executar os cmdlets Get-Process e Sort-Object de forma síncrona. O cmdlet Get-Process retorna objetos Process para cada processo em execução no computador local e o Sort-Object classifica os objetos com base em sua propriedade de ID. Os resultados desses comandos são exibidos usando um controle DataGridView.
  • Runspace03 – mostra como usar a classe do PowerShell para executar um script de forma síncrona e como lidar com erros de não terminação. O script recebe uma lista de nomes de processo e, em seguida, recupera esses processos. Os resultados do script, incluindo quaisquer erros de não terminação que foram gerados ao executar o script, são exibidos em uma janela do console.
  • Runspace04 – mostra como usar a classe do PowerShell para executar comandos e como capturar erros de encerramento que são gerados ao executar os comandos. Dois comandos são executados e o último comando é passado um argumento de parâmetro que não é válido. Como resultado, nenhum objeto é retornado e um erro de encerramento é gerado.
  • Runspace05 – mostra como adicionar um snap-in a um objeto InitialSessionState para que o cmdlet do snap-in esteja disponível quando o runspace for aberto. O snap-in fornece um cmdlet Get-Proc (definido pelo exemplo GetProcessSample01) que é executado de forma síncrona usando um objeto do PowerShell.
  • Runspace06 – mostra como adicionar um módulo a um objeto InitialSessionState para que o módulo seja carregado quando o runspace for aberto. O módulo fornece um cmdlet Get-Proc (definido pelo exemplo GetProcessSample02) que é executado de forma síncrona usando um objeto do PowerShell.
  • Runspace07 – mostra como criar um runspace e, em seguida, usar esse runspace para executar dois cmdlets de forma síncrona usando um objeto do PowerShell.
  • Runspace08 – mostra como adicionar comandos e argumentos ao pipeline de um objeto do PowerShell e como executar os comandos de forma síncrona.
  • Runspace09 – mostra como adicionar um script ao pipeline de um objeto do PowerShell e como executar o script de forma assíncrona. Os eventos são usados para lidar com a saída do script.
  • Runspace10 – mostra como criar um estado de sessão inicial padrão, como adicionar um cmdlet ao InitialSessionState, como criar um runspace que usa o estado inicial da sessão e como executar o comando usando um objeto do PowerShell.
  • Runspace11 – mostra como usar a classe ProxyCommand para criar um comando proxy que chama um cmdlet existente, mas restringe o conjunto de parâmetros disponíveis. Em seguida, o comando proxy é adicionado a um estado de sessão inicial que é usado para criar um runspace restrito. Isso significa que o usuário pode acessar a funcionalidade do cmdlet somente por meio do comando proxy.
  • PowerShell01 – mostra como criar um runspace restrito usando um objeto InitialSessionState.
  • PowerShell02 – mostra como usar um pool de runspaces para executar vários comandos simultaneamente.

Exemplos de host

  • Host01 – mostra como implementar um aplicativo host que usa um host personalizado. Neste exemplo, um runspace é criado que usa o host personalizado e, em seguida, a API do PowerShell é usada para executar um script que chama exit. Em seguida, o aplicativo host examina a saída do script e imprime os resultados.
  • Host02 – Mostra como escrever um aplicativo host que usa o runtime do Windows PowerShell junto com uma implementação de host personalizada. O aplicativo host define a cultura do host como alemão, executa o cmdlet Get-Process e exibe os resultados como você os veria usando pwrsh.exee imprime os dados atuais e a hora em alemão.
  • Host03 – mostra como criar um aplicativo host interativo baseado em console que lê comandos da linha de comando, executa os comandos e exibe os resultados no console.
  • Host04 – Mostra como criar um aplicativo host interativo baseado em console que lê comandos da linha de comando, executa os comandos e exibe os resultados no console. Esse aplicativo host também dá suporte à exibição de prompts que permitem que o usuário especifique várias opções.
  • Host05 – Mostra como criar um aplicativo host interativo baseado em console que lê comandos da linha de comando, executa os comandos e exibe os resultados no console. Esse aplicativo host também dá suporte a chamadas para computadores remotos usando os cmdlets Enter-PSSession e Exit-PSSession.
  • Host06 – Mostra como criar um aplicativo host interativo baseado em console que lê comandos da linha de comando, executa os comandos e exibe os resultados no console. Além disso, este exemplo usa as APIs do Tokenizer para especificar a cor do texto inserido pelo usuário.

Exemplos de provedor

  • AccessDBProviderSample01 – mostra como declarar uma classe de provedor que deriva diretamente da classe CmdletProvider. Ele está incluído aqui apenas para integridade.

  • AccessDBProviderSample02 – mostra como substituir os métodos NewDrive e RemoveDrive para dar suporte a chamadas para os cmdlets New-PSDrive e Remove-PSDrive. A classe de provedor neste exemplo deriva da classe DriveCmdletProvider.

  • AccessDBProviderSample03 – mostra como substituir os métodos GetItem e SetItem para dar suporte a chamadas para os cmdlets Get-Item e Set-Item. A classe de provedor neste exemplo deriva da classe ItemCmdletProvider.

  • AccessDBProviderSample04 – mostra como substituir métodos de contêiner para dar suporte a chamadas para os cmdlets Copy-Item, Get-ChildItem, New-Iteme Remove-Item. Esses métodos devem ser implementados quando o armazenamento de dados contém itens que são contêineres. Um contêiner é um grupo de itens filho em um item pai comum. A classe de provedor neste exemplo deriva da classe ItemCmdletProvider.

  • AccessDBProviderSample05 – mostra como substituir métodos de contêiner para dar suporte a chamadas para os cmdlets Move-Item e Join-Path. Esses métodos devem ser implementados quando o usuário precisa mover itens dentro de um contêiner e se o armazenamento de dados contiver contêineres aninhados. A classe de provedor neste exemplo deriva da classe NavigationCmdletProvider.

  • AccessDBProviderSample06 – mostra como substituir métodos de conteúdo para dar suporte a chamadas para os cmdlets Clear-Content, Get-Contente Set-Content. Esses métodos devem ser implementados quando o usuário precisa gerenciar o conteúdo dos itens no armazenamento de dados. A classe de provedor neste exemplo deriva da classe NavigationCmdletProvider e implementa a interface IContentCmdletProvider.