PowerShell ile boş disk alanı kontrolü, Windows istemci ve sunucularında kapasite izleme için hızlı bir yöntemdir. Yerel veya uzak sistemlerde toplam alan, boş alan ve boş alan yüzdesini raporlayabilirsiniz.
Get-Volume ile Disk Alanını Görüntüleme
Get-Volume | Where-Object DriveLetter | Select-Object DriveLetter, FileSystemLabel, FileSystemType, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.SizeRemaining/1GB,2)}}
Belirli Bir Sürücüyü Kontrol Etme
Get-Volume -DriveLetter C | Select-Object DriveLetter, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.SizeRemaining/1GB,2)}}, HealthStatus
Get-PSDrive ile Hızlı Kontrol
Get-PSDrive -PSProvider FileSystem
Get-PSDrive C | Select-Object Name, @{N='UsedGB';E={[math]::Round($_.Used/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.Free/1GB,2)}}
Get-PSDrive hızlı kontrol için kullanışlıdır. Storage health gibi ayrıntılar gerektiğinde Get-Volume ile birlikte kullanın.
Get-CimInstance ile Boş Alan Yüzdesi
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" | Select-Object DeviceID, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,2)}}, @{N='FreePercent';E={[math]::Round(($_.FreeSpace/$_.Size)*100,1)}}
Yüzde 15’in Altındaki Diskleri Bulma
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" | Where-Object { ($_.FreeSpace / $_.Size) * 100 -lt 15 } | Select-Object DeviceID, @{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,2)}}, @{N='FreePercent';E={[math]::Round(($_.FreeSpace/$_.Size)*100,1)}}
Yüzde 15 yalnız örnektir. Alarm eşiklerini workload, disk boyutu, büyüme hızı ve operasyon sürenize göre belirleyin; çok büyük bir volume’da yalnız yüzde değeri yanıltıcı olabilir.
Uzak Sunucuda Disk Alanı Kontrolü
Get-CimInstance -ComputerName SERVER01 -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object PSComputerName, DeviceID, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,2)}}, @{N='FreePercent';E={[math]::Round(($_.FreeSpace/$_.Size)*100,1)}}
Birden Fazla Sunucuyu Raporlama
$servers = Get-Content 'C:Scriptsservers.txt'
$report = foreach ($server in $servers) {
Get-CimInstance -ComputerName $server -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object PSComputerName, DeviceID,
@{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}},
@{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,2)}},
@{N='FreePercent';E={[math]::Round(($_.FreeSpace/$_.Size)*100,1)}}
}
$report | Export-Csv 'C:ReportsDiskSpace.csv' -NoTypeInformation -Encoding UTF8
Disk Dolduysa Sonraki Adım
Boş alanı görmek yalnız ilk adımdır. Disk sürekli doluyorsa hangi klasörün büyüdüğünü, VSS/Shadow Copy kullanımını, uygulama loglarını, retention politikasını ve storage health durumunu inceleyin. Ayrıntılı akış için Windows Server Disk Doluyor: Troubleshooting rehberine geçin.
File Server İçin Proaktif İzleme
Departman paylaşımlarında kota ve eşik uyarıları için Windows Server FSRM kullanabilirsiniz.
Sonuç
Get-Volume, Get-PSDrive ve Get-CimInstance farklı ayrıntı seviyelerinde disk kapasitesini ölçmek için kullanılabilir. Sağlıklı operasyon için tek seferlik kontroller yerine eşik, trend ve otomatik raporlama yaklaşımı tercih edilmelidir.
