O PowerShell revolucionou a forma como os usuários do Windows interagem com seus sistemas operacionais, transformando tarefas administrativas complexas em processos simples e automatizados12. Seja você um administrador de sistemas, um profissional de TI ou um usuário comum do Windows em busca de mais produtividade, dominar os comandos essenciais do PowerShell pode economizar inúmeras horas e liberar poderosos recursos de automação34.
Este guia completo aborda os comandos do PowerShell mais importantes que todo usuário do Windows deveria dominar, da navegação básica ao gerenciamento avançado do sistema. Ao final deste tutorial, você terá confiança para aproveitar os poderosos recursos do PowerShell nas tarefas diárias de computação.
Índice
- O que é o PowerShell e por que você deveria se importar?
- Primeiros passos: abrindo o PowerShell
- Comandos essenciais de descoberta: sua bússola no PowerShell
- Comandos de gerenciamento de arquivos e pastas
- Informações do sistema e gerenciamento de processos
- Comandos de diagnóstico de rede
- Comandos de manipulação de conteúdo e dados
- Trabalhando com pipelines do PowerShell
- Gerenciamento de hora e data
- Boas práticas essenciais do PowerShell
- Criando seu primeiro script PowerShell
- Trilha de aprendizado avançado do PowerShell
- Solução de problemas comuns do PowerShell
- Conclusão: potencialize sua experiência no Windows
O que é o PowerShell e por que você deveria se importar?
O PowerShell é um poderoso shell de linha de comando e ambiente de scripts que vem pré-instalado em todos os sistemas operacionais Windows modernos2. Diferente do Prompt de Comando tradicional, o PowerShell usa uma estrutura de sintaxe verbo-substantivo que torna os comandos intuitivos e legíveis para humanos1. Por exemplo, Get-Process recupera os processos em execução, enquanto Stop-Service para serviços do sistema.
Principais vantagens do PowerShell em relação ao Prompt de Comando
O PowerShell oferece vantagens significativas em relação à interface de linha de comando tradicional1:
- Saída baseada em objetos: em vez de texto simples, o PowerShell trabalha com objetos estruturados que contêm propriedades e métodos
- Recursos avançados de script: crie scripts de automação complexos com laços, condições e funções
- Extensível por meio de módulos: adicione funcionalidades com bibliotecas .NET e cmdlets personalizados
- Suporte a pipelines: encadeie comandos para processar dados com eficiência
- Compatibilidade multiplataforma: execute o PowerShell no Windows, Linux e macOS
Primeiros passos: abrindo o PowerShell
Antes de mergulhar nos comandos, você precisa saber como acessar o PowerShell25. No Windows 11, o método mais fácil é:
- Digite “PowerShell” na barra de pesquisa do Windows
- Clique com o botão direito em “Windows PowerShell”
- Selecione “Executar como administrador” para obter privilégios elevados
Para a maioria das tarefas administrativas, executar o PowerShell como administrador garante que você tenha as permissões necessárias para executar comandos de nível de sistema.
Comandos essenciais de descoberta: sua bússola no PowerShell
1. Get-Help: seu manual integrado
O Get-Help é provavelmente o comando mais importante do PowerShell que você vai aprender467. Ele fornece documentação abrangente para qualquer cmdlet, função ou conceito do PowerShell.
Sintaxe básica:
powershellGet-Help <cmdlet-name>
Exemplos práticos:
powershell# Obter ajuda básica de um comando
Get-Help Get-Process
# Obter ajuda detalhada com exemplos
Get-Help Get-Process -Full
# Ver apenas exemplos
Get-Help Get-Process -Examples
# Abrir a documentação de ajuda online
Get-Help Get-Process -Online
Dica: Uso Update-Help periodicamente para garantir que você tenha a documentação de ajuda mais recente6.
2. Get-Command: descubra os comandos disponíveis
Quando você não sabe qual comando usar, Get-Command ajuda você a encontrar o cmdlet certo para sua tarefa486.
Padrões úteis:
powershell# Listar todos os comandos disponíveis
Get-Command
# Encontrar comandos que começam com "Get"
Get-Command Get-*
# Encontrar comandos que contêm "Process"
Get-Command *Process*
# Encontrar comandos para ações específicas
Get-Command Start-*
Get-Command Stop-*
Essa abordagem é especialmente útil quando você sabe qual ação quer executar, mas não tem certeza do nome exato do comando.
3. Get-Member: entenda as propriedades dos objetos
O PowerShell trabalha com objetos, e Get-Member mostra a você quais propriedades e métodos estão disponíveis para qualquer objeto6.
powershell# Ver as propriedades dos objetos de processo
Get-Process | Get-Member
# Ver as propriedades dos objetos de serviço
Get-Service | Get-Member
Comandos de gerenciamento de arquivos e pastas
4. Get-ChildItem: liste o conteúdo de diretórios
Get-ChildItem é o equivalente do PowerShell ao dir comando, mas com muito mais funcionalidade1910.
Uso comum:
powershell# Listar o conteúdo do diretório atual
Get-ChildItem
# Listar com arquivos ocultos
Get-ChildItem -Force
# Listagem recursiva (incluindo subdiretórios)
Get-ChildItem -Recurse
# Filtrar por tipo de arquivo
Get-ChildItem *.txt
# Pesquisar arquivos em subdiretórios
Get-ChildItem -Path C:\Users -Include *.pdf -Recurse
Aliases: Você também pode usar ls, dir, ou gci como atalhos10.
5. Set-Location: navegue entre diretórios
Navegue pelo seu sistema de arquivos com eficiência usando Set-Location10.
powershell# Mudar para um diretório específico
Set-Location C:\Users\Documents
# Ir para o diretório pai
Set-Location ..
# Voltar ao local anterior
Set-Location -
# Navegar usando aliases
cd C:\Windows
sl C:\Temp
6. Copy-Item: copie arquivos e pastas
O Copy-Item cmdlet oferece recursos poderosos de cópia de arquivos910.
powershell# Copiar um único arquivo
Copy-Item "source.txt" "destination.txt"
# Copiar com proteção contra sobrescrita
Copy-Item "source.txt" "backup.txt" -Force
# Copiar diretórios inteiros
Copy-Item "C:\Source" "C:\Backup" -Recurse
# Copiar vários arquivos usando curingas
Copy-Item "*.log" "C:\Logs\\"
7. Move-Item: mova e renomeie arquivos
Uso Move-Item para mover e renomear arquivos e pastas1112.
powershell# Mover um arquivo para outro local
Move-Item "oldfile.txt" "C:\NewLocation\\"
# Renomear um arquivo
Move-Item "oldname.txt" "newname.txt"
# Mover todos os arquivos de um tipo específico
Get-ChildItem *.txt | Move-Item -Destination "C:\TextFiles\\"
8. Remove-Item: exclua arquivos e pastas
Exclua arquivos e diretórios com segurança com Remove-Item10.
powershell# Excluir um único arquivo
Remove-Item "unwanted.txt"
# Excluir com confirmação
Remove-Item "important.txt" -Confirm
# Excluir diretórios recursivamente
Remove-Item "C:\TempFolder" -Recurse -Force
# Excluir arquivos que correspondem ao padrão
Remove-Item "*.tmp"
Atenção: Tenha extremo cuidado com Remove-Item, especialmente ao usar -Recurse e -Force parâmetros, pois arquivos excluídos podem não ser recuperáveis.
9. New-Item: crie arquivos e diretórios
Crie novos arquivos e pastas rapidamente com New-Item1013.
powershell# Criar um novo diretório
New-Item -Name "NewFolder" -ItemType Directory
# Criar um novo arquivo
New-Item -Name "newfile.txt" -ItemType File
# Criar arquivo com conteúdo
New-Item "readme.txt" -ItemType File -Value "This is initial content"
# Criar diretórios aninhados
New-Item "C:\Projects\NewProject\Source\" -ItemType Directory -Force
Informações do sistema e gerenciamento de processos
10. Get-Process: monitore processos em execução
Get-Process fornece informações detalhadas sobre processos em execução no seu sistema34.
powershell# Listar todos os processos em execução
Get-Process
# Obter um processo específico pelo nome
Get-Process notepad
# Obter processos usando curinga
Get-Process note*
# Classificar processos por uso de CPU
Get-Process | Sort-Object CPU -Descending
# Obter os 10 processos que mais consomem memória
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
11. Stop-Process: encerre processos
Encerre processos que não respondem ou que são desnecessários com Stop-Process4.
powershell# Encerrar processo pelo nome
Stop-Process -Name "notepad"
# Encerrar processo pelo ID
Stop-Process -Id 1234
# Encerrar com confirmação
Stop-Process -Name "chrome" -Confirm
# Forçar o encerramento de processos resistentes
Stop-Process -Name "application" -Force
12. Get-Service: gerencie os serviços do Windows
Monitore e gerencie serviços do Windows que são executados em segundo plano41415.
powershell# Listar todos os serviços
Get-Service
# Obter serviços por status
Get-Service | Where-Object Status -eq "Running"
# Obter um serviço específico
Get-Service -Name "Spooler"
# Obter serviços que começam com letras específicas
Get-Service -Name "Win*"
13. Start-Service e Stop-Service: controle serviços
Inicie e pare serviços do Windows conforme necessário1415.
powershell# Iniciar um serviço
Start-Service -Name "Spooler"
# Parar um serviço
Stop-Service -Name "Spooler"
# Reiniciar um serviço
Restart-Service -Name "Spooler"
# Iniciar vários serviços
Get-Service -Name "BITS", "Spooler" | Start-Service
Comandos de diagnóstico de rede
14. Test-NetConnection: teste de conectividade de rede
Test-NetConnection é a versão aprimorada do PowerShell do ping, com recursos adicionais1617.
powershell# Teste básico de conectividade
Test-NetConnection google.com
# Testar uma porta específica
Test-NetConnection google.com -Port 80
# Rastrear a rota até o destino
Test-NetConnection google.com -TraceRoute
# Testar várias conexões
"google.com", "microsoft.com" | ForEach-Object { Test-NetConnection $_ }
15. Get-NetIPAddress: veja a configuração de IP
Verifique sua configuração de IP da rede com Get-NetIPAddress1617.
powershell# Exibir todos os endereços IP
Get-NetIPAddress
# Mostrar apenas endereços IPv4
Get-NetIPAddress -AddressFamily IPv4
# Obter informações de um adaptador específico
Get-NetIPAddress -InterfaceAlias "Ethernet"
16. Resolve-DnsName: teste de resolução DNS
Teste a resolução DNS e consulte informações de domínio16.
powershell# Consulta DNS básica
Resolve-DnsName google.com
# Consultar tipos específicos de registro
Resolve-DnsName google.com -Type MX
# Usar um servidor DNS específico
Resolve-DnsName google.com -Server 8.8.8.8
Comandos de manipulação de conteúdo e dados
17. Get-Content: leia o conteúdo de arquivos
Leia e exiba o conteúdo de arquivos diretamente no PowerShell1819.
powershell# Exibir todo o conteúdo do arquivo
Get-Content "logfile.txt"
# Ler um número específico de linhas
Get-Content "bigfile.txt" -Head 10
# Monitorar alterações no arquivo (como tail -f)
Get-Content "live.log" -Wait
# Ler as últimas linhas
Get-Content "recent.log" -Tail 20
18. Out-File: exporte a saída para arquivos
Salve a saída de comandos em arquivos para análise posterior619.
powershell# Salvar a lista de processos em um arquivo
Get-Process | Out-File "processes.txt"
# Anexar a um arquivo existente
Get-Date | Out-File "log.txt" -Append
# Salvar com codificação específica
Get-Service | Out-File "services.txt" -Encoding UTF8
19. Select-Object: filtre e formate a saída
Controle quais informações são exibidas nos resultados dos comandos2021.
powershell# Mostrar apenas propriedades específicas
Get-Process | Select-Object Name, CPU, WorkingSet
# Obter os primeiros resultados
Get-ChildItem | Select-Object -First 5
# Selecionar valores exclusivos
Get-Process | Select-Object ProcessName -Unique
Trabalhando com pipelines do PowerShell
20. Where-Object: filtre resultados
Filtre os resultados dos comandos com base em critérios específicos2021.
powershell# Filtrar serviços em execução
Get-Service | Where-Object Status -eq "Running"
# Filtrar arquivos grandes
Get-ChildItem | Where-Object Length -gt 1MB
# Filtragem complexa com várias condições
Get-Process | Where-Object {$_.CPU -gt 100 -and $_.WorkingSet -gt 50MB}
21. Sort-Object: classifique resultados
Organize a saída em ordem crescente ou decrescente21.
powershell# Classificar processos por nome
Get-Process | Sort-Object Name
# Classificar por várias propriedades
Get-ChildItem | Sort-Object LastWriteTime, Name
# Classificar em ordem decrescente
Get-Process | Sort-Object CPU -Descending
22. ForEach-Object: processe cada item
Execute ações em cada objeto em um pipeline1921.
powershell# Process each file
Get-ChildItem *.txt | ForEach-Object {
Write-Host "Processing: $($_.Name)"
}
# Modify each object
Get-Service | ForEach-Object {
"$($_.Name): $($_.Status)"
}
Gerenciamento de hora e data
23. Get-Date: trabalhe com datas e horas
Recupere e formate informações atuais de data e hora19.
powershell# Obter a data e hora atuais
Get-Date
# Formatar a data de uma forma específica
Get-Date -Format "yyyy-MM-dd HH:mm:ss"
# Obter componentes da data
(Get-Date).DayOfWeek
(Get-Date).Year
# Calcular datas futuras
(Get-Date).AddDays(30)
Boas práticas essenciais do PowerShell
Use a conclusão com Tab
do PowerShell recurso de conclusão com Tab acelera muito a digitação de comandos17. Pressione Tab depois de digitar nomes de comandos, parâmetros ou caminhos de arquivo incompletos para que sejam preenchidos automaticamente.
Aproveite os aliases
O PowerShell inclui muitos aliases integrados para comandos comuns5:
lsoudirparaGet-ChildItemcdparaSet-LocationcatoutypeparaGet-ContentrmoudelparaRemove-Item
Teste comandos com segurança
Antes de executar comandos potencialmente destrutivos, use o -WhatIf parâmetro para ver o que aconteceria sem realmente executar o comando12:
powershellRemove-Item *.txt -WhatIf
Stop-Service Spooler -WhatIf
Defina a política de execução
Por motivos de segurança, o PowerShell restringe a execução de scripts por padrão22. Para executar scripts, talvez você precise alterar a política de execução:
powershell# Verificar a política atual
Get-ExecutionPolicy
# Definir a política para o usuário atual
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Criando seu primeiro script PowerShell
Depois de se sentir à vontade com comandos individuais, você pode combine-os em scripts para automação2223. Veja um exemplo simples:
powershell# Salvar como system-info.ps1
Write-Host "`nCurrent Date and Time:" -ForegroundColor Yellow
Get-Date
Write-Host "`nTop 5 Processes by CPU:" -ForegroundColor Yellow
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Write-Host "`nRunning Services Count:" -ForegroundColor Yellow
(Get-Service | Where-Object Status -eq "Running").Count
Write-Host "`nDisk Usage:" -ForegroundColor Yellow
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="Size(GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}
Trilha de aprendizado avançado do PowerShell
Depois de dominar estes comandos essenciais, considere explorar estes tópicos avançados24:
- Gerenciamento do Active Directory com cmdlets do AD
- Administração de computadores remotos usando a comunicação remota do PowerShell
- Agendamento automatizado de tarefas com scripts do PowerShell
- Tratamento de erros e registro em log em scripts
- Módulos e funções do PowerShell para reutilização de código
Solução de problemas comuns do PowerShell
Erros de política de execução
Se você encontrar erros de “execução de scripts desativada”, verifique e modifique sua política de execução22:
powershellGet-ExecutionPolicy -List
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Erros de permissão negada
Muitas tarefas administrativas exigem privilégios elevados. Sempre execute o PowerShell como administrador ao trabalhar com:
- Serviços do sistema
- Modificações no registro
- Configurações de rede
- Gerenciamento de contas de usuário
Problemas de caminho e localização
Quando os comandos não conseguem encontrar arquivos ou diretórios, verifique sua localização atual e use caminhos completos:
powershellGet-Location
Set-Location C:\YourDesiredPath
Conclusão: potencialize sua experiência no Windows
Dominar estes comandos essenciais do PowerShell transforma você de um usuário passivo do Windows em um administrador de sistemas ativo, capaz de automatizar tarefas complexas e resolver problemas com eficiência13. O estrutura de comando verbo-substantivo torna o PowerShell intuitivo de aprender, enquanto seus poderosos recursos de pipeline permitem processamento de dados e gerenciamento de sistemas sofisticados24.
Comece praticando estes comandos em um ambiente seguro, aumentando aos poucos sua confiança e explorando cenários mais avançados. Lembre-se de que Get-Help está sempre disponível para fornecer informações detalhadas sobre qualquer comando, e o preenchimento com tab torna a digitação de comandos mais rápida e precisa725.
Quer você esteja gerenciando arquivos, monitorando o desempenho do sistema, solucionando problemas de rede ou automatizando tarefas repetitivas, o PowerShell fornece as ferramentas necessárias para trabalhar de forma mais eficiente e eficaz com sistemas Windows17. O investimento em aprender PowerShell compensa com mais produtividade e capacidades aprimoradas de administração de sistemas que vão acompanhar você ao longo de sua carreira na computação.
