Script PowerShell pour surveiller l’espace libre sur un disque local avec seuil configurable et messages d’état clairs pour une gestion efficace du stockage.
# Script pour surveiller l'espace libre sur un disque local
param(
[Parameter(Mandatory=$true)]
[ValidatePattern('^[A-Z]:$')]
[string]$DriveLetter,
[int]$SogliaPercentuale = 10
)
# Fonction pour obtenir des informations sur le disque
function Get-DriveFreeSpace {
param(
[string]$Drive
)
# Obtenir les informations du disque via Get-PSDrive
$driveInfo = Get-PSDrive -Name $Drive.Substring(0,1) -ErrorAction SilentlyContinue
if (-not $driveInfo) {
Write-Error "Le disque $Drive n'a pas été trouvé. Assurez-vous que la lettre est correcte et que le disque est monté."
return $null
}
# Calculer l'espace libre et total en Go
$freeGB = [math]::Round($driveInfo.Free / 1GB, 2)
$totalGB = [math]::Round($driveInfo.Used / 1GB + $freeGB, 2)
# Calculer le pourcentage d'espace libre
$freePercent = [math]::Round(($freeGB / $totalGB) * 100, 2)
return [PSCustomObject]@{
Drive = $Drive
FreeSpaceGB = $freeGB
TotalSpaceGB = $totalGB
FreeSpacePercent = $freePercent
}
}
# Obtenir les données du disque
$info = Get-DriveFreeSpace -Drive $DriveLetter
if ($info -eq $null) {
exit 1
}
# Afficher les informations à l'écran
Write-Host "Disque : $($info.Drive)"
Write-Host "Espace total : $($info.TotalSpaceGB) Go"
Write-Host "Espace libre : $($info.FreeSpaceGB) Go ($($info.FreeSpacePercent)%)"
# Vérifier si l'espace libre est en dessous du seuil
if ($info.FreeSpacePercent -lt $SogliaPercentuale) {
Write-Warning "Attention : l'espace libre est inférieur à $SogliaPercentuale%!"
} else {
Write-Host "Espace libre suffisant."
}
# Fin du scriptPowerShell version 5.1 ou supérieure
Module intégré : Get-PSDrive
Entrée utilisateur : lettre du disque à surveiller (ex. C)
CONFIG : seuil d'espace libre en pourcentage (par défaut 10 %)
Sortie : messages dans la console avec l'état de l'espace libre