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.
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 cmdletGet-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
eSort-Object
de forma síncrona. O cmdletGet-Process
retorna objetos Process para cada processo em execução no computador local e oSort-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
eExit-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
eRemove-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
eSet-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-Item
eRemove-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
eJoin-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-Content
eSet-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.