Objetivo
Identificar ficheiros e pastas que ocupam mais espaço em disco num servidor Windows e proceder à sua limpeza para libertar espaço de armazenamento.
Pré-requisitos
- Windows Server 2016 ou superior
- Privilégios de administrador local
- Acesso ao PowerShell ou linha de comandos
- Ferramenta TreeSize Free ou similar (opcional)
Procedimento
- Verificar o espaço disponível em disco:
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)}} - Identificar as pastas que mais ocupam espaço:
Get-ChildItem C: -Directory | ForEach-Object { $size = (Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum [PSCustomObject]@{ Folder = $_.Name SizeGB = [math]::Round($size/1GB,2) } } | Sort-Object SizeGB -Descending - Limpar ficheiros temporários do sistema:
Remove-Item -Path "C:WindowsTemp*" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path "C:Users*AppDataLocalTemp*" -Recurse -Force -ErrorAction SilentlyContinue - Executar limpeza de disco via linha de comandos:
cleanmgr /sagerun:1 - Verificar e limpar logs do Windows:
Get-WinEvent -ListLog * | Where-Object {$_.RecordCount -gt 0} | ForEach-Object { Write-Host "Log: $($_.LogName) - Records: $($_.RecordCount)" } wevtutil el | ForEach-Object {wevtutil cl "$_"} - Limpar cache do Windows Update:
Stop-Service -Name wuauserv -Force Remove-Item -Path "C:WindowsSoftwareDistributionDownload*" -Recurse -Force Start-Service -Name wuauserv - Verificar ficheiros de paginação e hibernação:
Get-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetControlSession ManagerMemory Management" -Name PagingFiles powercfg -h off - Analisar pastas de utilizadores:
Get-ChildItem "C:Users" -Directory | ForEach-Object { $userSize = (Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum [PSCustomObject]@{ User = $_.Name SizeGB = [math]::Round($userSize/1GB,2) } } | Sort-Object SizeGB -Descending - Limpar registos IIS (se aplicável):
Remove-Item -Path "C:inetpublogsLogFiles**.log" -Force -ErrorAction SilentlyContinue - Verificar novamente o espaço livre:
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}
Resultado Esperado
Após executar os procedimentos, deverá obter:
- Listagem detalhada do espaço ocupado por cada pasta principal
- Remoção de ficheiros temporários e cache desnecessários
- Limpeza dos logs do sistema
- Aumento significativo do espaço livre em disco
- Relatório comparativo do espaço antes e depois da limpeza
Notas
- Cuidado com a remoção: Sempre verifique o conteúdo antes de eliminar ficheiros importantes
- Backup: Considere fazer backup de dados críticos antes da limpeza
- Agendamento: Configure tarefas automáticas para limpeza regular usando
schtasks - Monitorização: Use
Performance Monitorpara acompanhar o uso do disco a longo prazo - Ferramentas alternativas: TreeSize Free ou WinDirStat oferecem interface gráfica para análise visual
- Logs críticos: Alguns logs do sistema não devem ser eliminados em ambientes de produção
