PowerShell é uma das ferramentas mais importantes para quem trabalha com suporte técnico, administração de computadores e gerenciamento de ambientes Microsoft Windows. Muito mais do que uma simples alternativa ao Prompt de Comando, ele combina linha de comandos, linguagem de scripts e recursos de automação, permitindo executar desde diagnósticos simples até rotinas administrativas complexas.
Diferentemente do cmd.exe, o PowerShell trabalha com objetos, o que facilita filtrar, organizar e encadear informações entre diferentes comandos. Seus comandos normalmente seguem o padrão Verbo-Substantivo, como Get-Process, Get-Service e Get-ComputerInfo.
Importante: alguns comandos de reparo exigem que o PowerShell ou Prompt de Comando seja executado como Administrador. Antes de realizar alterações no sistema, faça backup dos dados importantes.
PowerShell x CMD x MS-DOS: qual é a diferença?
É comum encontrar os termos “DOS”, “CMD” e “PowerShell” sendo usados como se fossem a mesma coisa, mas eles representam tecnologias diferentes.
| Recurso | MS-DOS | CMD | PowerShell |
|---|---|---|---|
| É um sistema operacional? | Sim | Não | Não |
| Linha de comando | ✅ | ✅ | ✅ |
| Scripts | Básicos | .bat / .cmd | .ps1 |
| Trabalha com objetos | ❌ | ❌ | ✅ |
| Automação avançada | Limitada | Moderada | Avançada |
| Pipeline | ❌ | Limitado | Sim |
| Administração do Windows | Básica | Boa | Excelente |
| Multiplataforma | ❌ | ❌ | Sim |
O CMD continua sendo muito útil e possui comandos tradicionais como ipconfig, ping, tracert, chkdsk, sfc e diskpart. O PowerShell, entretanto, pode executar comandos nativos do Windows além dos próprios cmdlets.
O Windows PowerShell 5.1 é a versão integrada ao Windows, enquanto o PowerShell 7.x é a evolução moderna, baseada no .NET e disponível também para Linux e macOS. A Microsoft informa que o Windows PowerShell 5.1 não recebe novos recursos, enquanto o PowerShell moderno continua evoluindo.
Comandos essenciais para reparar o Windows
Quando um computador apresenta lentidão, travamentos, erros de inicialização, arquivos corrompidos ou problemas no sistema, alguns comandos são especialmente úteis.
1. SFC — verificar arquivos do Windows
O System File Checker (SFC) verifica arquivos protegidos do sistema e pode substituir versões incorretas por versões apropriadas.
sfc /scannow
Quando utilizar?
É indicado para problemas como:
- arquivos do Windows corrompidos;
- erros inesperados do sistema;
- aplicativos do Windows apresentando falhas;
- componentes do sistema que deixaram de funcionar corretamente.
2. DISM — reparar a imagem do Windows
O DISM (Deployment Image Servicing and Management) é uma ferramenta fundamental para manutenção da imagem do Windows.
Uma sequência bastante útil é:
DISM /Online /Cleanup-Image /CheckHealth
Depois:
DISM /Online /Cleanup-Image /ScanHealth
E, se necessário:
DISM /Online /Cleanup-Image /RestoreHealth
O /CheckHealth verifica se a imagem foi marcada como corrompida; /ScanHealth realiza uma análise mais completa; e /RestoreHealth tenta reparar automaticamente a corrupção encontrada.
Sequência recomendada
Em muitos casos de corrupção de componentes do Windows, uma abordagem prática é:
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Depois, reinicie o computador e verifique se o problema foi solucionado.
3. CHKDSK — verificar problemas no disco
O chkdsk verifica metadados do sistema de arquivos e procura erros lógicos e físicos no volume. Com determinados parâmetros, também pode corrigir problemas.
Para verificar a unidade C:
chkdsk C:
Para verificar e corrigir erros:
chkdsk C: /f
Para uma análise mais abrangente:
chkdsk C: /r
Atenção: o parâmetro /r pode tornar a operação bastante demorada, especialmente em discos grandes.
4. Diagnóstico de rede
O PowerShell também é excelente para troubleshooting de conectividade.
Ver configurações de IP
ipconfig /all
Testar conectividade
ping 8.8.8.8
Testar resolução DNS
nslookup google.com
Testar uma porta TCP
No PowerShell:
Test-NetConnection google.com -Port 443
Esse último comando é especialmente útil para profissionais de suporte porque permite verificar se determinada porta TCP está acessível.
5. Gerenciamento de processos
Para visualizar os processos em execução:
Get-Process
Pesquisar um processo específico:
Get-Process chrome
Ordenar processos pelo consumo de memória:
Get-Process | Sort-Object WorkingSet -Descending
Encerrar um processo:
Stop-Process -Name chrome -Force
OBS: Utilize -Force com cuidado. Encerrar um processo dessa maneira pode causar perda de dados não salvos.
6. Gerenciamento de serviços do Windows
Listar todos os serviços:
Get-Service
Ver um serviço específico:
Get-Service -Name Spooler
Reiniciar o serviço de impressão:
Restart-Service -Name Spooler
Iniciar um serviço:
Start-Service -Name Spooler
Parar um serviço:
Stop-Service -Name Spooler
O Get-Service permite consultar serviços em execução ou parados, enquanto Restart-Service pode interromper e iniciar novamente um serviço.
7. Obter informações completas do computador
Um dos comandos mais úteis para suporte técnico é:
Get-ComputerInfo
Ele reúne informações do computador e do sistema operacional em um único objeto.
Para obter somente informações relacionadas à versão:
Get-ComputerInfo -Property "*version"
Também é possível utilizar:
$env:COMPUTERNAME
para descobrir o nome do computador.
E:
$env:USERNAME
para identificar o usuário atualmente conectado.
8. Gerenciamento de aplicativos com Winget
Em versões modernas do Windows, o WinGet permite pesquisar, instalar, atualizar e remover aplicativos pela linha de comando. Ele pode ser executado tanto no CMD quanto no PowerShell.
Pesquisar um programa:
winget search 7zip
Instalar:
winget install 7zip.7zip
Listar aplicativos que podem possuir atualização:
winget upgrade
Atualizar aplicativos:
winget upgrade --all
Para conhecer as opções disponíveis:
winget --help
9. Descobrindo comandos do PowerShell
Uma das grandes vantagens do PowerShell é que você não precisa decorar centenas de comandos.
Pesquisar comandos relacionados a processos:
Get-Command *Process*
Pesquisar comandos relacionados a serviços:
Get-Command *Service*
Obter ajuda:
Get-Help Get-Service
Ver exemplos:
Get-Help Get-Service -Examples
Pesquisar comandos disponíveis:
Get-Command
Esse conceito de Verbo-Substantivo facilita bastante o aprendizado do PowerShell.
Comandos rápidos para o dia a dia
Alguns comandos podem economizar bastante tempo do profissional de TI:
Get-Date
Exibe data e hora.
Get-Location
Mostra o diretório atual.
Get-ChildItem
Lista arquivos e pastas.
Clear-Host
Limpa a tela.
Get-History
Exibe comandos executados anteriormente.
Restart-Computer
Reinicia o computador.
Stop-Computer
Desliga o computador.
OBS: Os dois últimos devem ser utilizados com atenção, principalmente em máquinas remotas ou servidores.
Scripts PowerShell prontos para profissionais de TI
Agora vem uma das maiores vantagens do PowerShell: transformar vários comandos em uma rotina automatizada.
Script 1 — Diagnóstico rápido do computador
Write-Host "=== DIAGNÓSTICO DO COMPUTADOR ==="
Write-Host "`nNome do computador:"
$env:COMPUTERNAME
Write-Host "`nUsuário:"
$env:USERNAME
Write-Host "`nSistema:"
Get-ComputerInfo -Property WindowsProductName,WindowsVersion,OsBuildNumber
Write-Host "`nProcessadores:"
Get-CimInstance Win32_Processor |
Select-Object Name,NumberOfCores,NumberOfLogicalProcessors
Write-Host "`nMemória:"
Get-CimInstance Win32_ComputerSystem |
Select-Object TotalPhysicalMemory
Write-Host "`nDiscos:"
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object DeviceID,
@{Name="TamanhoGB";Expression={[math]::Round($_.Size/1GB,2)}},
@{Name="LivreGB";Expression={[math]::Round($_.FreeSpace/1GB,2)}}
Esse script pode ser utilizado como uma primeira coleta de informações durante um atendimento de suporte.
Script 2 — Rotina básica de reparo do Windows
Para uma manutenção padrão:
Write-Host "Iniciando reparo do Windows..."
Write-Host "`n[1/2] Executando DISM..."
DISM /Online /Cleanup-Image /RestoreHealth
Write-Host "`n[2/2] Executando SFC..."
sfc /scannow
Write-Host "`nProcesso concluído."
Write-Host "Recomenda-se reiniciar o computador."
Esse tipo de automação reduz a necessidade de executar os comandos manualmente.
Script 3 — Reiniciar o Spooler de impressão
Um dos problemas mais comuns em ambientes corporativos é a fila de impressão travada.
Restart-Service -Name Spooler
Write-Host "Serviço de impressão reiniciado."
Para verificar o estado:
Get-Service -Name Spooler
Script 4 — Diagnóstico rápido de rede
Write-Host "=== DIAGNÓSTICO DE REDE ==="
Write-Host "`nConfiguração IP:"
ipconfig /all
Write-Host "`nTeste de conectividade:"
Test-NetConnection 8.8.8.8
Write-Host "`nTeste DNS:"
Test-NetConnection google.com -Port 443
Isso pode ajudar a diferenciar rapidamente problemas de configuração local, conectividade ou acesso a serviços externos.
Script 5 — Limpeza de arquivos temporários
Uma rotina simples:
$Temp = $env:TEMP
Write-Host "Limpando arquivos temporários..."
Get-ChildItem $Temp -Force -ErrorAction SilentlyContinue |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "Limpeza concluída."
OBS: Esse tipo de script deve ser utilizado com cautela e testado antes de ser implantado em larga escala.
Script 6 — Gerar relatório básico do computador
Para profissionais que precisam registrar informações de uma máquina:
$Arquivo = "$env:USERPROFILE\Desktop\Relatorio-PC.txt"
"=== RELATÓRIO DO COMPUTADOR ===" | Out-File $Arquivo
"Nome: $env:COMPUTERNAME" | Out-File $Arquivo -Append
"Usuário: $env:USERNAME" | Out-File $Arquivo -Append
"`n=== SISTEMA ===" | Out-File $Arquivo -Append
Get-ComputerInfo -Property WindowsProductName,WindowsVersion,OsBuildNumber |
Out-File $Arquivo -Append
"`n=== SERVIÇOS ===" | Out-File $Arquivo -Append
Get-Service |
Where-Object {$_.Status -eq "Running"} |
Out-File $Arquivo -Append
Write-Host "Relatório criado em:"
Write-Host $Arquivo
Esse modelo pode ser adaptado para criar relatórios de inventário e diagnóstico mais completos.
Dicas extras: PowerShell e CMD trabalhando juntos
Apesar de o PowerShell ser mais moderno e poderoso, não é necessário abandonar o CMD.
Existem situações em que ferramentas tradicionais continuam extremamente úteis, principalmente em procedimentos de recuperação, inicialização, scripts antigos e troubleshooting.
Alguns comandos clássicos que vale a pena conhecer:
ipconfig
ping
tracert
nslookup
netstat
hostname
whoami
tasklist
taskkill
sfc
chkdsk
diskpart
Uma grande vantagem é que o PowerShell consegue executar muitos comandos tradicionais do Windows. A Microsoft documenta que o PowerShell pode executar tanto seus próprios comandos quanto comandos disponíveis no sistema.
Uma dica poderosa
Não tente decorar tudo.
Use:
Get-Command
para descobrir comandos.
Depois:
Get-Help <comando>
para entender seu funcionamento.
E:
Get-Help <comando> -Examples
para encontrar exemplos práticos.
Cuidados antes de executar comandos
O PowerShell é extremamente poderoso e, justamente por isso, deve ser utilizado com responsabilidade.
Antes de executar comandos administrativos:
- confirme se o terminal está sendo executado como administrador;
- saiba exatamente o que o comando fará;
- faça backup de dados importantes;
- teste scripts em máquinas de laboratório antes de utilizá-los em produção;
- evite executar scripts encontrados aleatoriamente na internet;
- tenha cuidado com
Remove-Item,Stop-Process,Stop-Service,Restart-Computere comandos de gerenciamento de discos; - em servidores, avalie o impacto da operação antes da execução.
Nunca execute um comando destrutivo apenas porque alguém publicou que ele “resolve todos os problemas do Windows”.
Conclusão
O PowerShell deixou de ser apenas uma alternativa ao Prompt de Comando e se tornou uma das principais ferramentas para suporte técnico, administração, diagnóstico e automação de ambientes Windows.
Enquanto o CMD continua sendo extremamente útil para comandos tradicionais e procedimentos específicos, o PowerShell oferece uma abordagem muito mais ampla, baseada em objetos, pipelines e scripts reutilizáveis.
Para quem trabalha com suporte de TI, vale começar pelos comandos mais importantes — Get-Command, Get-Help, Get-Process, Get-Service, Get-ComputerInfo, Test-NetConnection, DISM e SFC — e, gradualmente, transformar tarefas repetitivas em scripts.
Quanto mais tarefas você automatiza, menos tempo precisa gastar executando manualmente as mesmas rotinas em cada computador.
Comandos essenciais para salvar nos favoritos
Get-ComputerInfo
Get-Process
Get-Service
Get-Command
Get-Help
Test-NetConnection
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
chkdsk C: /f
winget upgrade --all
Fontes oficiais: Microsoft Learn — PowerShell · Microsoft Learn — Comandos do Windows · Microsoft Learn — WinGet

Deixe um comentário