Powershell : affichage de la taille de répertoires

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.

Lien pour marque-pages : Permaliens.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.