Automação & DevOps

5 Scripts Essenciais em PowerShell para Automação de Manutenção Preventiva no Windows

Edson Feitosa de Oliveira Júnior
Edson Feitosa de Oliveira Júnior
Fundador & Desenvolvedor Full Stack

Muitas tarefas de manutenção do Windows são repetitivas: limpar arquivos temporários, verificar espaço em disco, conferir a saúde dos discos, criar pontos de restauração. Com o PowerShell, que já vem instalado no Windows, dá para automatizar tudo isso com poucos comandos e agendar para rodar sozinho. Aqui estão cinco scripts simples e seguros, explicados linha a linha.

Antes de começar

1. Limpar arquivos temporários

$pastas = @("$env:TEMP", "C:\Windows\Temp")
foreach ($p in $pastas) {
    Get-ChildItem -Path $p -Recurse -Force -ErrorAction SilentlyContinue |
        Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
        Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}

Apaga arquivos temporários com mais de 7 dias. Arquivos em uso são ignorados automaticamente. Veja mais em como limpar cache e arquivos temporários.

2. Alerta de pouco espaço em disco

Get-Volume | Where-Object { $_.DriveLetter -and $_.Size -gt 0 } |
    ForEach-Object {
        $livre = [math]::Round($_.SizeRemaining / $_.Size * 100, 1)
        if ($livre -lt 15) {
            Write-Warning "Unidade $($_.DriveLetter): apenas $livre% livre"
        }
    }

Mostra um aviso para cada unidade com menos de 15% de espaço livre. Em uma empresa, dá para trocar o aviso por um e-mail ou registro em arquivo.

3. Saúde dos discos

Get-PhysicalDisk |
    Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus

Get-PhysicalDisk | Get-StorageReliabilityCounter |
    Select-Object DeviceId, Temperature, Wear, ReadErrorsTotal

O primeiro comando mostra se cada disco está saudável. O segundo traz contadores de confiabilidade, como temperatura e desgaste (Wear, em porcentagem, em SSDs compatíveis). Alguns discos não informam todos os campos. Saiba interpretar em saúde de SSDs NVMe.

4. Ponto de restauração antes de mudanças

Checkpoint-Computer -Description "Manutencao $(Get-Date -Format 'yyyy-MM-dd')" `
    -RestorePointType MODIFY_SETTINGS

Cria um ponto de restauração. A Proteção do Sistema precisa estar ativada no disco C:. Por padrão, o Windows permite criar só um ponto a cada 24 horas por esse método.

5. Verificação de integridade do sistema

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

O DISM repara a imagem do Windows, e o sfc verifica e corrige arquivos do sistema. Rode uma vez por mês ou quando o Windows apresentar erros estranhos. Leva alguns minutos.

Juntando tudo e agendando

  1. Salve os scripts desejados em um arquivo, por exemplo C:\Scripts\manutencao.ps1.
  2. Abra o Agendador de Tarefas e clique em Criar Tarefa.
  3. Na aba Geral, marque Executar com privilégios mais altos.
  4. Em Disparadores, escolha a frequência, como semanal no domingo às 10h.
  5. Em Ações, programa: powershell.exe; argumentos: -NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\manutencao.ps1".

Para registrar o resultado, adicione no início do script Start-Transcript -Path "C:\Scripts\log-$(Get-Date -Format yyyyMMdd).txt" e no final Stop-Transcript.

Boas práticas

Para outras causas de lentidão, veja computador lento: causas e soluções.

Conheça a Suite de Scripts PruPru

Todos os utilitários da PruPru foram construídos com scripts limpos e auditáveis em PowerShell e Batch, disponíveis no GitHub oficial.

Ver Scripts no GitHub →

Perguntas frequentes

Por que meu script PowerShell não executa?

Provavelmente pela política de execução do Windows, que bloqueia scripts por padrão. Use Set-ExecutionPolicy RemoteSigned -Scope CurrentUser para permitir scripts locais.

Como agendar um script para rodar sozinho?

Use o Agendador de Tarefas: crie uma tarefa com privilégios elevados, defina a frequência e configure a ação para executar powershell.exe com o caminho do arquivo .ps1.

É seguro apagar a pasta Temp?

Sim, o conteúdo de pastas temporárias pode ser apagado. Arquivos em uso não são removidos, e o script deste artigo apaga só os que têm mais de 7 dias.

Falar no WhatsApp agora