PowerShell: Os Comandos Essenciais para Reparar, Diagnosticar e Automatizar o Windows

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.

RecursoMS-DOSCMDPowerShell
É um sistema operacional?SimNãoNão
Linha de comando
ScriptsBásicos.bat / .cmd.ps1
Trabalha com objetos
Automação avançadaLimitadaModeradaAvançada
PipelineLimitadoSim
Administração do WindowsBásicaBoaExcelente
MultiplataformaSim

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-Computer e 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

👉 Retorne para Home ou Post

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *