Usar o Windows PowerShell

Concluído

Embora muitas vezes as ferramentas de gerenciamento de GUI sejam mais fáceis de usar do que as ferramentas de linha de comando, o gerente de departamento de TI da Contoso acredita que seja possível obter várias tarefas administrativas mais rapidamente usando um script simples ou um único comando. Por exemplo, pode ser que o processo de atualização das mesmas informações para várias contas de usuário usando usuários e computadores do Active Directory seja demorado. No entanto, com o uso do módulo Active Directory no Windows PowerShell, é possível que um administrador execute essa tarefa repetitiva rapidamente. Você decide investigar o impacto do uso do Windows PowerShell na administração da infraestrutura do servidor na Contoso.

Visão geral

O Windows PowerShell é um ambiente de linha de comando e de script que pode ser usado para gerenciar todos os aspectos do sistema operacional Windows. O Windows PowerShell usa comandos especiais chamados cmdlets que são compostos por pares de verbo-substantivo, como Restart-Computer.

Você também pode usar o Windows PowerShell para se conectar remotamente a outros computadores e até mesmo executar cmdlets do Windows PowerShell em uma lista de computadores, permitindo a execução de ações em vários computadores usando uma só instrução de linha de comando.

Comandos e cmdlets do Windows PowerShell

Comandos são blocos de construção que você junta usando a linguagem de script do Windows PowerShell. Eles fornecem a principal funcionalidade do Windows PowerShell. Ao usar comandos, você pode criar soluções personalizadas para problemas administrativos complexos.

Cmdlets são os componentes fundamentais dos comandos. Há milhares de cmdlets do Windows PowerShell disponíveis nos sistemas operacionais Windows e em outros produtos Microsoft. Conforme mencionado anteriormente, os cmdlets são compostos por um par verbo-substantivo.

Verbos de cmdlet

A parte que corresponde ao verbo do nome do cmdlet indica o que ele faz. Há um conjunto de verbos aprovados usados pelos criadores de cmdlet que gera consistência no uso de nomes de cmdlet. Os verbos comuns estão descritos na tabela a seguir.

Verbo Explicação
Obter Recupera um recurso, como um arquivo ou um usuário.
Definir Altera os dados associados a um recurso, como uma propriedade de arquivo ou de usuário.
Novo Cria um recurso, como um arquivo ou um usuário.
Adicionar Adiciona um recurso a um contêiner de vários recursos.
Remover Exclui um recurso de um contêiner de vários recursos.

Substantivos de cmdlet

A parte que corresponde ao substantivo do nome do cmdlet indica que tipos de recursos ou objetos o cmdlet afeta. Todos os cmdlets que operarem no mesmo recurso devem usar o mesmo substantivo. Por exemplo, o substantivo Service é usado para cmdlets que funcionam com serviços do Windows, e o substantivo Process é usado para gerenciar processos em um computador.

Formato do parâmetro

Os parâmetros modificam as ações executadas por um cmdlet. Os cmdlets podem ter: nenhum parâmetro, um parâmetro ou vários parâmetros. Os nomes de parâmetro começam com um hífen (-). Um espaço separa o valor que você deseja passar com o nome do parâmetro. Se o valor que você estiver passando contiver espaços, você precisará colocar o texto entre aspas. Alguns parâmetros aceitam vários valores, os quais são separados por vírgulas e não contêm espaços.

Exemplos

Você pode analisar os exemplos a seguir para ajudar a determinar como usar o Windows PowerShell para executar tarefas administrativas comuns. O comando a seguir exibe uma lista dos serviços em execução.

Get-Service | Where-Object {$_.Status -eq "Running"}

O comando a seguir exibe uma lista dos serviços que têm um nome que começa com “win”, com exceção do serviço chamado WinRM.

Get-Service -Name "win*" -Exclude "WinRM"

Este próximo comando gera uma lista de todos os serviços presentes em um arquivo de texto formatado para saída HTML.

Get-Service | ConvertTo-Html > File.html

Uma variação do comando anterior gera apenas dados selecionados sobre os serviços e depois exporta a saída para um arquivo CSV.

Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv

O comando a seguir recupera as informações especificadas (número de telefone comercial e nome UPN) sobre usuários do Active Directory.

Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName

Este exemplo final recupera um subconjunto de usuários do AD DS (aqueles na unidade organizacional de marketing) e modifica suas propriedades, adicionando uma descrição a cada conta.

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"

Windows PowerShell ISE

O ISE é um ambiente totalmente gráfico que fornece um editor de scripts, funcionalidades de depuração, um console interativo e várias ferramentas que ajudam você a descobrir e aprender novos comandos do Windows PowerShell. Este módulo fornece um conhecimento básico com o funcionamento do ISE.

Uma captura de tela do Administrador: ISE do Windows PowerShell. O administrador ativou a janela de visualização do Comando. O administrador acabou de executar o Get-localuser no painel de script sem título.

Painéis

O ISE oferece dois painéis principais: um Painel de script (ou editor de script) e o Painel de console. Você pode posicioná-los tanto um acima do outro quanto lado a lado em um layout de dois painéis. Você também pode maximizar um painel e alternar entre os painéis. Por padrão, também é exibido um painel de Complemento de comando, o que permite pesquisar ou procurar comandos disponíveis, além de revisar e preencher parâmetros para um comando selecionado. Também há uma janela Comando flutuante que fornece a mesma funcionalidade.

Personalização da exibição

O ISE oferece várias maneiras de personalizar a exibição. Um controle deslizante na área inferior direita da janela altera o tamanho da fonte ativa. A caixa de diálogo Opções permite personalizar a seleção de fontes e de cores de vários elementos textuais diferentes do Windows PowerShell, como palavras-chave e valores de cadeia de caracteres. O ISE dá suporte à criação de temas visuais. Um tema é uma coleção de configurações de fonte e de cor que você pode aplicar como um grupo para personalizar a aparência do ISE. Há vários temas internos que empacotam personalizações para fins como fazer apresentações. O ISE também oferece a opção de criar temas personalizados. Outros recursos do ISE incluem:

  • Uma biblioteca extensível e interna de trechos de código que você pode usar para armazenar comandos usados com frequência.
  • A capacidade de carregar suplementos criados pela Microsoft ou por terceiros que fornecem funcionalidade adicional.
  • Integração com as funcionalidades de depuração do Windows PowerShell.

Comunicação remota do Windows PowerShell

A finalidade da comunicação remota do Windows PowerShell é conectar-se a computadores remotos para que você possa executar comandos neles e direcionar os resultados de volta ao seu computador local. Isso permite que você execute comandos do Windows PowerShell em vários computadores na sua rede a partir do computador cliente em vez de criar uma conexão com cada computador.

Uma meta importante da comunicação remota do Windows PowerShell é habilitar a administração em lotes, o que permite executar comandos em um conjunto de computadores remotos simultaneamente. Você pode usar uma das três maneiras de comunicação remota descritas na tabela a seguir.

Método Descrição
Comunicação remota de um para um No cenário de comunicação remota de um para um (também conhecido como comunicação remota interativa), você se conecta a um único computador remoto e executa comandos do Windows PowerShell nele, exatamente como se tivesse entrado no computador e aberto uma janela do Windows PowerShell.
Comunicação remota de um para muitos No cenário de comunicação remota de um para muitos, (também conhecido como comunicação remota do tipo fan-out), você emite um comando que será executado em um ou mais computadores remotos em paralelo. Você não está trabalhando interativamente com cada computador remoto. Na verdade, os comandos são emitidos e executados em um lote, e os resultados são retornados ao seu computador para você usar.
Comunicação remota de muitos para um No cenário de comunicação remota de muitos para um, (também conhecido como comunicação remota do tipo fan-in), vários administradores fazem conexões remotas com um único computador. Geralmente, esses administradores terão permissões diferentes no mesmo computador remoto e poderão estar trabalhando em uma sessão restrita do Windows PowerShell.

Cuidado

Ao executar comandos em vários computadores, fique atento às diferenças entre os computadores remotos, como diferenças em sistemas operacionais, estruturas do sistema de arquivos e registros do sistema.

PowerShell Direct

Muitos administradores preferem executar alguns de seus servidores em ambientes virtualizados. Para habilitar uma administração mais simples de VMs do Hyper-V que executam o Windows 10 ou o Windows Server, você pode usar um recurso chamado PowerShell Direct.

O PowerShell Direct permite que você execute um cmdlet ou um script do Windows PowerShell dentro de uma VM do sistema operacional do host, independentemente das configurações de rede, firewall e gerenciamento remoto.