Tutorial Powershell para iniciantes
⚡ Resumo Inteligente
O PowerShell Scripting é um mecanismo de automação orientado a objetos construído sobre a estrutura .NET. Ele combina cmdlets, scripts e uma linguagem de script para ajudar os administradores de TI a automatizar tarefas. Windows, gerenciar serviços e conectar máquinas remotas a partir de uma única linha de comando.

O que é PowerShell?
Windows PowerShell é um mecanismo de automação orientado a objetos e uma linguagem de script. Foi projetado para profissionais de TI e administradores de sistemas que precisam controlar e automatizar a administração de Windows e outros aplicativos. O PowerShell amplia os conceitos aprendidos em Windows Prompt de comando e Windows Script Host com novos objetos, cmdlets e um poderoso pipeline.
Ele combina a flexibilidade de scripts, a velocidade da linha de comando e a abrangência de uma ferramenta administrativa com interface gráfica. Com ele, os administradores podem resolver problemas de forma eficiente e eliminar horas de trabalho manual. Este tutorial aborda os conceitos essenciais para você aprender PowerShell do zero.
Por que usar o PowerShell?
Os principais motivos para usar o PowerShell são:
- Oferece uma experiência de linha de comando bem integrada ao sistema operacional.
- Fornece acesso completo a todos os tipos no framework .NET.
- Utilizado por administradores de sistemas em diversas empresas.
- Permite manipular componentes de servidor e estação de trabalho com poucas linhas de código.
- Projetado para administradores de sistemas, com uma sintaxe clara de verbo-substantivo.
- Mais seguro do que correr VBScript ou outras linguagens de script legadas.
História do PowerShell
O PowerShell 1.0 foi lançado pela primeira vez em 2006. Atualmente, o PowerShell está na versão 7.2 e posteriores. Com o lançamento de novas versões, suas capacidades e ambientes de hospedagem cresceram significativamente.
Histórico de versões do PowerShell:
- PowerShell1.0 — apoiou a administração local de Windows Servidor 2003.
- PowerShell2.0 — integrado com Windows 7 e Windows Servidor 2008 R2. Adicionados recursos de acesso remoto, transações, tarefas em segundo plano, eventos e depuração.
- PowerShell3.0 — enviado com Windows 8 e Windows Servidor 2012 como parte do Windows Framework de gerenciamento. Adicionadas tarefas agendadas, conectividade de sessão e carregamento automático de módulos.
- PowerShell4.0 — enviado com Windows 8.1 e Windows Server 2012 R2. Adicionada a Configuração de Estado Desejado, depuração aprimorada e diagnósticos de rede.
- PowerShell5.0 — parte de Windows Framework de Gerenciamento 5. Adicionou depuração remota, definições de classe e enumerações .NET.
- PowerShell7.2 — Desenvolvido em .NET 6.0. Adiciona novos operadores, visualizações de erros dinâmicas e notificações automáticas de versão.
Funcionalidades do PowerShell
- PowerShell Remoting: Invocar scripts e cmdlets em uma máquina remota.
- Empregos de apoio: Executar scripts ou pipelines de forma assíncrona na máquina local ou em várias máquinas remotas.
- Transações: Permitir que cmdlets e desenvolvedores executem operações agrupadas que podem ser confirmadas ou revertidas em conjunto.
- CCE: Ouvir, antecipar e agir de acordo com eventos de gestão e do sistema.
- Transferência de arquivos em rede: Suporte nativo para transferência de arquivos priorizada, assíncrona e com controle de velocidade entre máquinas através do Serviço de Transferência Inteligente em Segundo Plano (BITS).
Como iniciar o PowerShell
O PowerShell vem pré-instalado em todas as versões recentes de WindowsExecute-o da seguinte forma.
Passo 1) Procure pelo PowerShell em WindowsEm seguida, selecione e clique.
Passo 2) A janela do PowerShell é aberta.
Cmdlet vs. Comando
A cmdlet (pronuncia-se "command-let") é um comando leve usado no ambiente PowerShell. O PowerShell invoca cmdlets no prompt, e você pode criar os seus próprios usando as APIs do PowerShell. Os cmdlets diferem dos comandos tradicionais do shell das seguintes maneiras:
- Os cmdlets são Framework .NET Objetos de classe; eles não podem ser executados como executáveis independentes.
- Os cmdlets podem ser escritos com apenas uma dúzia de linhas de código.
- A análise sintática, a formatação da saída e a apresentação de erros são gerenciadas pelo ambiente de execução, e não pelo próprio cmdlet.
- Os cmdlets funcionam com objetos, portanto, fluxos de texto e objetos podem ambos fluir pelos pipelines.
- Os cmdlets são baseados em registros e processam um único objeto por vez.
A maior parte da funcionalidade do PowerShell é fornecida por meio de cmdlets, que sempre usam um padrão de nomenclatura verbo-substantivo (sempre no singular). Os cmdlets retornam objetos, não texto. escrita — diferente de um cmdlet — é uma série de comandos armazenados em um arquivo de texto com o .ps1 extensão.
Os verbos comuns que você usará para aprender PowerShell incluem:
- BAIXE — recuperar algo.
- Começar — execute alguma coisa.
- — produzir alguma coisa.
- Dê um basta — parar algo que está em execução.
- Conjunto — definir algo.
- New — criar algo.
Comandos importantes do PowerShell
Obter ajuda: Veja a ajuda para comandos e tópicos do PowerShell.
Exemplo: exibir ajuda para o Format-Table comando.
Get-Help Format-Table
Obter comando: Obtenha informações sobre qualquer coisa que possa ser invocada.
Exemplo: gerar uma lista de cmdlets e funções instaladas na máquina.
Get-Command
Obter serviço: Encontra todos os serviços na máquina.
Exemplo: obtenha todos os serviços cujo nome começa com “vm”.
Get-Service "vm*"
Obter membro: Mostrar o que pode ser feito com um objeto.
Exemplo: listar os membros dos serviços de máquina virtual retornados por Get-Service.
Get-Service "vm*" | Get-Member
Outros cmdlets úteis:
Get-Module— Exibir pacotes de comandos instalados.Get-Content— ler um arquivo e processar seu conteúdo.Get-*curinga — lista todos os cmdlets que começam com “Get-“.
Exemplo: criar uma pasta.
New-Item -Path 'X:\Guru99' -ItemType Directory
Saída:
Tipos de dados do PowerShell
O PowerShell oferece suporte aos tipos de dados padrão do .NET, permitindo que você armazene qualquer valor de forma organizada em uma variável.
Variáveis Especiais
O PowerShell expõe diversas variáveis especiais internas. As mais úteis estão listadas abaixo.
| Variável Especial | Descrição |
|---|---|
| $Erro | Uma matriz de objetos de erro representando os erros mais recentes. |
| $Hospedeiro | Exibe o nome do aplicativo de hospedagem atual. |
| $Perfil | Armazena o caminho completo do perfil do usuário para o shell padrão. |
| $ PID | Armazena o identificador do processo. |
| $PSUICultura | Contém o nome da cultura de interface do usuário atual. |
| $NULO | Contém um valor vazio ou nulo. |
| $Falso | Contém o valor booleano FALSE. |
| $Verdadeiro | Contém o valor booleano VERDADEIRO. |
Scripts do PowerShell
Os scripts do PowerShell são armazenados em .ps1 Por padrão, não é possível executar um script clicando duas vezes nele — essa medida de segurança protege o sistema contra danos acidentais. Para executar um script, clique com o botão direito do mouse sobre ele e escolha “Executar com o PowerShell”.
Uma política de execução controla quais scripts têm permissão para serem executados. Veja a política atual com Get-ExecutionPolicyOs valores possíveis incluem:
- Restrito — Nenhum script é permitido. Esta é a configuração padrão.
- Tudo assinado — Somente scripts assinados por um desenvolvedor confiável podem ser executados, e cada um deles requer confirmação.
- Assinado Remoto — seus próprios scripts são executados, além de scripts assinados de fontes confiáveis.
- sem restrições — Qualquer script pode ser executado (use com moderação).
Passos para alterar a política de execução:
Passo 1) Abra um prompt do PowerShell com privilégios elevados clicando com o botão direito do mouse no PowerShell e selecionando Executar como Administrador.
Passo 2) Execute os comandos abaixo.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Entrar
Yna tela de confirmação. Get-ExecutionPolicy
Primeiro script do PowerShell
Abra o Bloco de Notas e digite:
Write-Host "Hello, Guru99!"
Salve o arquivo com um .ps1 extensão — por exemplo, FirstScript.ps1.
No PowerShell, execute o script com o seguinte comando:
& "X:\FirstScript.ps1"
O que é PowerShell ISE?
O Windows Ambiente de script integrado do PowerShell (ISE) O ISE é o editor padrão do PowerShell. Nele, você pode executar comandos, escrever testes e depurar scripts em um ambiente gráfico baseado em janelas. Ele oferece suporte à edição de várias linhas, coloração de sintaxe, preenchimento automático com a tecla Tab, execução seletiva e muito mais.
O PowerShell ISE também oferece um painel de console que executa comandos diretamente, enquanto painéis laterais exibem o código-fonte dos seus scripts e quaisquer ferramentas conectadas ao ISE. Você pode abrir várias janelas de script simultaneamente — o que é útil para depurar scripts que dependem de funções definidas em outros scripts ou módulos.
Recrie o script anterior no ISE:
- Cole o código no editor.
- Salve o script.
- Pressione F5 para executar.
- Observe a saída no painel do console.
Amostra 2: O seguinte script exibe gratuitamente memória virtual na máquina.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Os seguintes conceitos formam o vocabulário do trabalho diário com PowerShell.
| O Conceito | Descrição |
|---|---|
| Cmdlets | Comandos integrados escritos em linguagens .NET, como VB ou C#. Os desenvolvedores ampliam o conjunto carregando ou escrevendo snap-ins do PowerShell. |
| Funções | Comandos escritos diretamente na linguagem PowerShell, sem a necessidade de uma IDE como... Visual Studio. |
| Scripts | Arquivos de texto no disco com o .ps1 extensão. |
| Aplicações | Existente Windows programas invocados a partir do shell. |
| E se | Indica ao cmdlet para não ser executado, mas sim para descrever o que aconteceria se fosse executado. |
| Confirmar | Instrui o cmdlet a solicitar confirmação antes de executar. |
| Verboso | Fornece um nível mais elevado de detalhamento operacional. |
| depurar | Instrui o cmdlet a emitir informações de depuração. |
| Ação de erro | Define o que o cmdlet faz em caso de erro. Valores permitidos: continue, stop, silentlycontinue, inquire. |
| Variável de erro | Indica a variável que armazena informações de erro. |
| Variável externa | Indica ao cmdlet para armazenar sua saída em uma variável específica. |
| Buffer | Armazena um número específico de objetos antes de enviá-los pelo pipeline. |
Vantagens de usar scripts do PowerShell
- Os scripts do PowerShell são poderosos e concisos — você pode realizar muito em apenas algumas linhas.
- As variáveis são declaradas com o
$<variable>sintaxe. - As variáveis podem armazenar a saída de comandos, objetos e valores primitivos.
- Não é necessário especificar explicitamente o tipo da variável.
PowerShell vs. Prompt de Comando
| PowerShell | Prompt de comando |
|---|---|
| Profundamente integrado com WindowsOferece uma linha de comando interativa e uma linguagem de script completa. | Interface de linha de comando padrão fornecida por MicrosoftUm aplicativo Win32 simples que se comunica com outros objetos Win32. |
| Utiliza cmdlets que podem ser invocados interativamente ou por meio de scripts de automação. | Sem cmdlets. |
| Trata a saída como objetos para que ela possa fluir para outro cmdlet através do pipeline. | A saída é um fluxo de texto simples, não objetos. |
| Avançado em funcionalidades, capacidades e arquitetura interna. | Interface básica, adequada para tarefas em lote legadas. |
Aplicações do PowerShell
O PowerShell tornou-se a escolha padrão para administradores de TI porque reduz drasticamente o esforço em grandes redes corporativas. Imagine gerenciar mais de quatrocentos servidores e implementar uma nova solução de segurança que depende de um serviço específico em execução em cada host.
Fazer login manualmente em cada servidor é lento e propenso a erros. Um único script do PowerShell pode inspecionar todos os servidores em minutos, informar quais hosts já executam o serviço e até mesmo habilitá-lo nos demais. O script captura a intenção uma única vez e a aplica de forma confiável em toda a infraestrutura.
















