PowerShell para Iniciantes

PowerShell para Iniciantes

Se você usa Windows há anos e ainda abre o antigo cmd.exe para tarefas de linha de comando, está deixando pra trás uma ferramenta que mudou completamente a forma como se administra um sistema Microsoft: o PowerShell. E ao contrário do que muita gente pensa, ele não é só um “prompt melhorado” — é uma linguagem de script orientada a objetos que roda em Windows, Linux e macOS. Vamos do zero ao primeiro script útil em menos de 10 minutos.

O Que Torna o PowerShell Diferente

Criado em 2006 por Jeffrey Snover na Microsoft, o PowerShell foi construído sobre o .NET e introduziu um conceito revolucionário em relação ao cmd: em vez de passar texto entre comandos, ele passa objetos. Isso muda tudo.

Quando você executa Get-Process no PowerShell, o que volta não é uma tabela formatada como string — é uma coleção de objetos System.Diagnostics.Process, cada um com propriedades como Name, CPU, Id, WorkingSet. Isso significa que filtrar, ordenar e extrair dados fica absurdamente mais simples e confiável do que usar grep e awk em saídas de texto.

Em 2016, a Microsoft abriu o código do PowerShell Core (hoje só PowerShell 7+), que roda multiplataforma. Então sim: você pode usar os mesmos scripts no Windows Server e num container Linux.

Abrindo o Terminal e Se Orientando

No Windows 10/11, aperte Win + X e escolha “Terminal (Admin)” ou “Windows PowerShell”. A versão moderna recomendada é o PowerShell 7+, instalável via Microsoft Store ou winget install Microsoft.PowerShell.

Os cmdlets seguem o padrão Verbo-Substantivo — extremamente previsível. Quer listar algo? Get-. Quer criar? New-. Quer remover? Remove-. Essa consistência é uma das grandes vantagens em relação ao cmd.

# Listar arquivos e pastas no diretório atual
Get-ChildItem

# Mesmo resultado, com alias familiar (sim, ls funciona)
ls

# Navegar entre diretórios
Set-Location C:\Users\SeuUsuario

# Criar uma pasta nova
New-Item -ItemType Directory -Name "MinhaPasta"

# Ler o conteúdo de um arquivo
Get-Content .\arquivo.txt

# Descobrir TODOS os cmdlets disponíveis para processos
Get-Command -Noun Process

O Pipeline de Objetos na Prática

Aqui é onde o PowerShell brilha. O operador | (pipe) passa objetos inteiros entre cmdlets. Veja um exemplo real: quero descobrir os 5 processos que mais consomem CPU no meu computador e exportar para CSV.

Get-Process |
    Sort-Object CPU -Descending |
    Select-Object -First 5 Name, Id, CPU, WorkingSet |
    Export-Csv -Path ".\top-processos.csv" -NoTypeInformation

Quatro linhas, zero parsing de texto. Tenta fazer isso no cmd — você vai chorar.

Outro exemplo útil: parar todos os processos do Chrome travados.

Get-Process -Name "chrome" |
    Where-Object { $_.Responding -eq $false } |
    Stop-Process -Force

O $_ é o objeto atual dentro do pipeline. Where-Object filtra; Stop-Process encerra. Legível até pra quem nunca viu PowerShell na vida. Outro cmdlet muito usado nesse estilo é o Get-Service, detalhado no post sobre auditar serviços do Windows com PowerShell.

Seu Primeiro Script .ps1

Crie um arquivo backup-docs.ps1 com o conteúdo abaixo:

$origem = "$env:USERPROFILE\Documents"
$destino = "D:\Backups\Documents_$(Get-Date -Format 'yyyy-MM-dd')"

New-Item -ItemType Directory -Path $destino -Force | Out-Null
Copy-Item -Path $origem\* -Destination $destino -Recurse -Force

Write-Host "Backup concluido em $destino" -ForegroundColor Green

Na primeira execução, talvez o Windows reclame de política de execução. Libere scripts locais rodando (como admin):

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Depois é só .\backup-docs.ps1 e seus documentos são copiados com carimbo de data no nome da pasta. Agende no Task Scheduler e você tem backup automático sem pagar um centavo.

Por Que Isso Vale a Pena em 2026

  • Automação real: tarefas repetitivas de 20 minutos viram scripts de 30 segundos
  • Administração Windows: usuários, permissões, Active Directory, serviços, GPO — tudo via PowerShell (inclusive auditar logs de segurança)
  • Azure e Microsoft 365: o módulo Az e o ExchangeOnlineManagement são praticamente indispensáveis em ambiente corporativo
  • DevOps: GitHub Actions, Azure Pipelines e scripts de CI em Windows frequentemente usam PowerShell
  • Multiplataforma: PowerShell 7+ roda em Linux e macOS — você pode gerenciar um parque heterogêneo com a mesma linguagem

A curva de aprendizado é moderada — você se sente produtivo em alguns dias e dominante em algumas semanas. Para quem vive em ambientes Windows, poucos investimentos têm retorno tão rápido.

Qual tarefa chata você faz no mouse toda semana e nunca automatizou? Conta nos comentários — talvez o próximo post seja exatamente o script que você precisa.

Comentários