M’occupant de migrer des serveurs de fichiers vers des versions plus récentes de Windows et ayant conçu un nouveau « design » de ceux-ci, j’ai développé un script Powershell qui fait +/- le même travail que l’application TreeSize. L’avantage est que ce script peut appeler des répertoires réseau, ce que ne permet pas l’application dans sa version gratuite.
Ce script peut-être une bonne base pour être amélioré ensuite pour n’afficher que les répertoires plus gros qu’une taille spécifiée. Il est également aisé de faire un export CSV des valeurs retournées (il suffira de piper $results avec un Export-CSV).
param([string]$path)
$tierone = Get-ChildItem $path -Directory
$results = @()
foreach($toneitem in $tierone){
$size = 0
$tiertwo = Get-ChildItem $toneitem.FullName -Recurse -File | select Name, Length
foreach($ttwoitem in $tiertwo){
$size += $ttwoitem.Length
}
$size = [math]::Round($size/1048576,0)
$pso = New-Object PSCustomObject
$pso | Add-Member -Name "Name" -Value $toneitem.Name -MemberType NoteProperty
$pso | Add-Member -Name "Size (M)" -Value $size -MemberType NoteProperty
$results+=$pso
}
$results
Ce script me permet donc de visualiser rapidement la taille des répertoires principaux d’une arborescence, et de pouvoir redistribuer plus efficacement ces répertoires sur des disques d’une taille plus petite.
Une version du script avec des commentaires est disponible.