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
Aze oExchangeOnlineManagementsã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