Aprenda o Microsoft Azure do Zero Curso Gratuito

>> O link será enviado via Whatsapp, Para receber o link do curso preencha o campo ao lado.

Powershell Leonardo Duarte

PowerShell – O que é, O que faz e quais são os recursos?

O que é PowerShell?

O PowerShell é um mecanismo de automação orientado a objetos e linguagem de script com um shell de linha de comando interativo que a Microsoft desenvolveu para ajudar os profissionais de TI a configurar sistemas e automatizar tarefas administrativas.

O PowerShell, foi construído na estrutura .NET, funciona com objetos, enquanto a maioria dos shells de linha de comando são baseados em texto. O PowerShell serve como uma ferramenta de automação para administradores de sistemas, empregados em departamentos de TI e entidades externas, como provedores de serviços gerenciados, devido aos seus recursos de scripting.

O PowerShell se originou como uma oferta de propriedade que só estava disponível no Windows. Em 2016, a Microsoft abriu o PowerShell e o disponibilizou no Linux e macOS.

O que o PowerShell faz?

A Microsoft projetou o PowerShell para automatizar tarefas do sistema, como processamento em lote, e criar ferramentas de gerenciamento de sistemas para processos comumente implementados. A linguagem PowerShell, semelhante a Perl, oferece várias maneiras de automatizar tarefas:

  • com cmdlets, que são classes .NET muito pequenas que aparecem como comandos do sistema;
  • com scripts, que são combinações de cmdlets e lógica associada;
  • com executáveis, que são ferramentas autônomas; E
  • com a instanciação de classes padrão .NET.

Os administradores podem usar o PowerShell para lidar com uma ampla gama de atividades. Ele pode extrair informações sobre os Sistemas Operacionais, como a versão específica e os níveis do pacote de serviço. “Provedores PowerShell” são programas que tornam os dados contidos em armazenamentos de dados especializados acessíveis na linha de comando. Essas lojas de dados incluem unidades de sistema de arquivos e registros do Windows.

O PowerShell também serve como substituto do Prompt de Comando da Microsoft, que remonta ao DOS. A Microsoft, por exemplo, fez do PowerShell a interface padrão de linha de comando (CLI) para o Windows 10 a partir da build 14791. O papel do PowerShell como um shell de linha de comando é como a maioria dos usuários se familiariza com a tecnologia.

Principais recursos do PowerShell

A Microsoft incorpora atualizações e novos recursos a cada versão do PowerShell, mas aqui está uma lista dos principais recursos e características.

Capacidade de descoberta. Os usuários podem descobrir os recursos do PowerShell usando cmdlets como o Get-Command, que cria uma lista de todos os comandos, incluindo cmdlets e funções, disponíveis em um determinado computador. Os parâmetros podem ser usados para estreitar o escopo da pesquisa.

Recursos de ajuda. Os usuários podem aprender mais sobre os princípios do PowerShell e componentes específicos, como cmdlets através do cmdlet Get-Help. O parâmetro -online fornece acesso a artigos de ajuda na web, se disponível para um determinado tópico.

Comandos remotos. Os administradores podem realizar operações remotas em um ou vários computadores, aproveitando tecnologias como o Windows Management Instrumentation e o WS-Management. O protocolo WS-Management, por exemplo, permite que os usuários executem comandos e scripts do PowerShell em computadores remotos.

Pipelining. Com o PowerShell, os comandos podem ser ligados em conjunto através do operador de tubos, simbolizado como |. Esta abordagem permite que a saída de um determinado comando se torne a entrada para o próximo comando na sequência do pipeline. O pipeline PowerShell permite que objetos, em vez de sequências de texto, fluam de um cmdlet para outro.

Detalhes sobre recursos adicionais podem ser encontrados nas seguintes seções.

Configuração de Estado Desejada (DSC)

Com o PowerShell 4.0, a Microsoft introduziu uma plataforma de gerenciamento de configuração chamada Desired State Configuration (DSC),que os administradores podem usar para definir uma configuração específica para um servidor. Depois que o administrador define as configurações do servidor, o PowerShell garante que os nódulos de destino mantenham o estado desejado. O DSC tem dois modos de operação: modo push e modo de puxar.

No modo push, um servidor envia notificações para os nódulos. É uma comunicação unidirecional, onde o administrador envia notificações de uma estação de trabalho. Os custos de configuração são menores porque o gerenciamento é executado a partir de um dispositivo, mas uma notificação é perdida se o dispositivo não estiver conectado à rede.

No modo push, o departamento de TI cria um servidor de tração com os detalhes de configuração de cada nó usando um arquivo MOF. Cada nó entra em contato com o servidor de tração para verificar se há uma nova configuração. Se a nova configuração estiver disponível, o servidor de tração enviará a configuração para o nó. Os administradores podem gerenciar todos os dispositivos, independentemente de sua conexão de rede. Quando um dispositivo se conecta à rede, ele entra em contato automaticamente com o servidor de tração para verificar se há uma nova configuração.

Recursos DSC

Os recursos DSC são os componentes de um script de configuração. Os administradores podem verificar os recursos DSC disponíveis em uma máquina com o comando Get-DscResource.

powershell

 

Os administradores usam esses recursos para configurar componentes como chaves de registro e serviços do Windows ou para criar e gerenciar usuários locais através de um script de configuração. Por exemplo, o recurso Arquivo gerencia arquivos e pastas, o recurso Environment gerencia variáveis de ambiente e o recurso Registry gerencia as chaves de registro de um nó.

Ambiente de scripting integrado do PowerShell

O PowerShell Integrated Scripting Environment (ISE),introduzido pela Microsoft na versão 2.0 do PowerShell, é um aplicativo de host do PowerShell usado para escrever, testar e depurar scripts ou gravar comandos em uma interface de usuário gráfica do Windows (GUI).

O PowerShell ISE vem com vários recursos, como coloração de sintaxe, edição multiline, ajuda sensível ao contexto e conclusão de guias.

powershell

O PowerShell ISE tem recursos sofisticados que são familiares aos usuários do Windows. Por exemplo, um usuário pode destacar e copiar uma parte de um comando PowerShell com um mouse ou com a combinação shift + arrow hotkey. O usuário também pode colar o conteúdo em qualquer lugar da janela do editor.

Outro recurso útil é a capacidade de manter diferentes versões de um comando no editor e executar comandos que você precisa no POWERShell ISE.

A tecla F5 lança um comando diretamente do editor. Para executar uma linha específica, selecione-a e pressione F8. A ajuda sensível ao contexto exibe cmdlets correspondentes quando o usuário começa a inserir um comando. Um complemento de comando mostra uma lista de cmdlets para selecionar.

O PowerShell ISE fornece guias para habilitar o trabalho em várias tarefas administrativas. O POWERShell ISE permite a mudança rápida do modo CLI para o scripting.

Módulos no PowerShell

Os módulos PowerShell permitem que os administradores reutilizem um script para automatizar uma tarefa. Um módulo PowerShell pode ser definido como um conjunto de funções powershell que são agrupadas para gerenciar todos os aspectos de uma determinada área. Os módulos PowerShell permitem que os administradores referenciam, carreguem, persistam e compartilhem código. A maneira mais simples de criar um módulo PowerShell é salvar o script como um arquivo PSM1.

Um módulo PowerShell contém quatro elementos essenciais:

  • um arquivo PSM, que é o módulo;
  • arquivos de ajuda ou scripts necessários pelo módulo;
  • um arquivo manifesto que descreve o módulo; E
  • um diretório que armazena o conteúdo.

Um módulo PowerShell pode ser um dos quatro tipos:

  • Módulo de script: Um arquivo PSM1 que contém várias funções para permitir que os administradores executem funções de importação, exportação e gerenciamento.
  • Módulo binário: Um conjunto de framework .NET (arquivo DLL) que contém código compilado. Os desenvolvedores normalmente usam um módulo binário para criar cmdlets com recursos poderosos não facilmente feitos com um script PowerShell.
  • Módulo manifesto: Um módulo manifesto é um arquivo de módulo (PSM1) com um arquivo PSD1 (manifesto) associado.
  • Módulo dinâmico: Um módulo dinâmico é criado dinamicamente sob demanda por um script. Não é armazenado ou carregado para armazenamento persistente.

Funções do PowerShell

Uma função PowerShell é semelhante a um cmdlet PowerShell, com várias pequenas diferenças. Os cmdlets são escritos em uma linguagem .NET compilada, como C#, enquanto as funções são escritas no PowerShell e não são compiladas.

Para desenvolvedores e fornecedores independentes de software, é mais fácil empacotar e implantar um cmdlet PowerShell em comparação com bibliotecas de embalagens de funções. Cmdlets e funções avançadas suportam poderosas ligações de parâmetros.

Ao descrever um parâmetro, os administradores podem usar qualquer tipo de parâmetros powershell, como parâmetros nomeados, parâmetros obrigatórios e parâmetros posicionais do PowerShell.

Um exemplo de uma função PowerShell é:

function Set-Something {
   [CmdletBinding()]
   param (
     [Parameter()]
     [string]$Thing
   )
 
   Write-Host $Thing
 }

Uma função contém um ou mais parâmetros de opção dentro de um bloco de parâmetros e um corpo.

Construções linguísticas

Como uma linguagem de script, o PowerShell oferece várias construções linguísticas que controlam o fluxo de scripts, ao mesmo tempo em que toma decisões sobre o que deve ser feito. Alguns dos construtos linguísticos incluem condicionais, interruptores, loops e variáveis.

Condicionals. A linguagem constrói se for usada para avaliar uma expressão condicional. Quando a expressão condicional é verdadeira, um bloco de script é executado.

if ($i -eq 1)
 {
   ## Do something
 }
 else
 {
   ## Do something else
 }

Troca. A instrução do switch é usada quando há uma longa lista de declarações condicionais para testar. O switch é comumente usado no lugar de muitas construções if/then/else.

switch ($i) {
   0
   {
     Write-Host "I is 0"
   }
   1
   {
     Write-Host "I is 0"
   }
   Default
   {
     Write-Host "I is not 0 or 1"
   }
 }

Loops. A instrução while repete o código, desde que a seguinte expressão condicional seja verdadeira:

while ($i -eq 0) {
   ## Do somthing
 }

O loop do é semelhante ao loop while. A única diferença é que o PowerShell executa o loop do no final do loop.

do {
   ## do something
 } while ($i -lt 0)

Quando você usa um loop de cada loop, o PowerShell repete o código de cada item mencionado no script.

$array = ('item1','item2','item3')
 foreach ($item in $array) {
   $item
 }

Use um loop para executar declarações repetidamente até que uma condição seja atendida.

for ($i = 0; $i -lt 5; $i++)
 {
   $i
 }

Variáveis

Variáveis armazenam dados, mas as variáveis do PowerShell são mais poderosas porque podem ser mapeadas para classes subjacentes no framework .NET. O PowerShell trata as variáveis como objetos .NET, o que significa que eles podem armazenar dados e manipular dados de várias maneiras.

Os nomes variáveis no PowerShell começam com um sinal de dólar e contêm uma mistura de números, letras, símbolos e espaços. Por exemplo, $var=”HELLO” armazena a string HELLO na variável $var. As variáveis também podem ter diferentes escopos, como escopos globais, locais, script, privados e numerados.

Matrizes

Um array PowerShell é um componente que permite o armazenamento de mais de um item em uma variável ou em um campo. Por exemplo, para atribuir vários valores a uma variável, use o seguinte script:

$a=1,2,3

O PowerShell trata cada item em uma matriz como um elemento separado. Para abordar cada item em uma matriz, o PowerShell oferece números de índice. O primeiro elemento da matriz é indexado como 0 por padrão. A maior vantagem do PowerShell é que ele lida automaticamente com inserções de matriz, de modo que os arrays não têm que ser destruídos manualmente ou criados ao adicionar ou remover elementos.

Tabelas hash

Tabelas hash são estruturas de dados semelhantes às arrays. Um array PowerShell armazena vários itens únicos, mas com uma tabela hash, cada item ou valor é armazenado usando uma chave ou par de valores. Uma matriz não pode armazenar vários valores sob cada elemento, enquanto uma tabela hash pode.

Abaixo está um exemplo comparando uma matriz com uma tabela hash:

$array = @('Joe','Susie','Donnie')
 $hashtable = @{FirstName = 'Joe'; FirstName = 'Susie'; FirstName = 'Donnie'}

Ajuda e comentários

O PowerShell permite a adição de tópicos de ajuda para módulos, scripts e comandos individuais. Para visualizar todos os tópicos de ajuda, use o comando Get-Help.

Ao importar um módulo em uma sessão, o PowerShell importa automaticamente os tópicos de ajuda para esse módulo. Se não houver tópicos de ajuda para um módulo, o comando Get-Help exibirá ajuda autogerrada. Existem três tipos de conteúdo de ajuda no PowerShell: ajuda baseada em comentários, ajuda externa e ajuda atual.

A ajuda baseada em comentários refere-se a comentários incluídos com um script ou comando para obter ajuda para ler. A ajuda externa permite que o autor defina conteúdo de ajuda em um arquivo XML externo escrito em XAML. A ajuda updatable usa ajuda externa, mas permite que os usuários baixem o conteúdo de ajuda mais recente com o comando Update-Help.

Programas executáveis

O PowerShell também é um substituto cmd.exe que executa um programa executável de várias maneiras através do comando Start-Process, do ampersand e do comando Invoke-Expression. Usando ping.exe como exemplo, veja como um usuário pode executar o programa executável usando o PowerShell:

Start-Process -FilePath 'ping.exe' -ArgumentList 'google.com' -Wait -NoNewWindow
 & 'ping.exe' google.com
 ping google.com
 Invoke-Expression -Command 'ping.exe google.com'

Sobre o autor | Website

Meu nome é Leonardo Duarte sou profissional de TI com mais de 18 anos de experiência em produtos da Microsoft. Possuo diversas certificações: MCP/MCT/MCTS/MCSA/MCSE

Que tal um Curso Microsoft Gratuito com Certificado Internacional? Não fiquede fora junte-se aos 1100 alunos já inscritos.

Aprenda o Microsoft Azure do Zero - Curso Gratuito Para receber o link do curso preencha o campo abaixo.

Por gentileza, se deseja alterar o arquivo do rodapé,
entre em contato com o suporte.