Fonctions et gestion des erreurs
Un bon script PowerShell est réutilisable et robuste. Les fonctions encapsulent la logique, la gestion des erreurs empêche les crashs silencieux.
Définir une fonction
function Get-DiskReport {
param(
[Parameter(Mandatory)]
[string]$ComputerName,
[int]$SeuilAlerte = 20 # valeur par défaut
)
$disques = Get-WmiObject -Class Win32_LogicalDisk -ComputerName $ComputerName -Filter "DriveType=3"
foreach ($disque in $disques) {
$librePct = [math]::Round(($disque.FreeSpace / $disque.Size) * 100, 1)
[PSCustomObject]@{
Serveur = $ComputerName
Lettre = $disque.DeviceID
Total_GB = [math]::Round($disque.Size / 1GB, 1)
Libre_GB = [math]::Round($disque.FreeSpace / 1GB, 1)
Libre_Pct = $librePct
Alerte = $librePct -lt $SeuilAlerte
}
}
}
# Utilisation
Get-DiskReport -ComputerName "SRV-FILE01"
Get-DiskReport -ComputerName "SRV-WEB01" -SeuilAlerte 10