Surveillance d’espace disque simple
Le Script PowerShell (C:\Scripts\check-disque.ps1)
Créez ou remplacez le contenu de votre fichier avec ce code :
# ==========================================
# CONFIGURATION
# ==========================================
$DriveToMonitor = "C:" # Letter of the drive to monitor
$CriticalThresholdPercent = 20 # Trigger alert if FREE space is LESS than 20%
# SMTP Configuration (E-mail)
$SmtpServer = "smtp.your-provider.com"
$SmtpPort = 587
$Username = "your-email@domain.com"
$Password = "YourSecretPassword"
# Recipients (Separated by commas)
$From = "server@domain.com"
$To = "admin1@domain.com", "admin2@domain.com"
# ==========================================
# DISK SPACE ANALYSIS
# ==========================================
# Retrieve disk information
$Drive = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DeviceID='$DriveToMonitor'"
if ($Drive) {
$TotalSpaceGB = [Math]::Round($Drive.Size / 1GB, 2)
$FreeSpaceGB = [Math]::Round($Drive.FreeSpace / 1GB, 2)
# Calculate free space percentage
$PercentFree = [Math]::Round(($FreeSpaceGB / $TotalSpaceGB) * 100, 2)
# Threshold check
if ($PercentFree -lt $CriticalThresholdPercent) {
# Prepare e-mail content
$Subject = "ALERT: Critical disk space on drive $DriveToMonitor"
$Body = @"
Warning, disk space on drive $DriveToMonitor has reached a critical level.
Server Details:
- Total Space: $TotalSpaceGB GB
- Remaining Free Space: $FreeSpaceGB GB
- Free Percentage: $PercentFree % (Alert threshold configured at $CriticalThresholdPercent %)
Please free up some space as soon as possible.
"@
# Secure password management
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($Username, $SecurePassword)
# Send e-mail
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer $SmtpServer -Port $SmtpPort -UseSsl -Credential $Credential
Write-Host "Alert triggered: E-mail sent ($PercentFree % remaining)."
} else {
Write-Host "All good: $PercentFree % of free space remaining."
}
} else {
Write-Error "Drive $DriveToMonitor was not found."
}
Planifier l’exécution toutes les heures
Il ne vous reste plus qu’à dire à Windows d’exécuter ce script toutes les heures.
- Ouvrez le Planificateur de tâches (tapez
taskschd.mscdans le menu Démarrer). - Dans le volet de droite, cliquez sur Créer une tâche…
- Onglet Général :
- Nom :
Verification Espace Disque - Cochez Exécuter même si l’utilisateur n’est pas connecté.
- Cochez Exécuter avec les autorisations maximales (requis pour interroger le système).
- Nom :
- Onglet Déclencheurs :
- Cliquez sur Nouveau…
- Lancez la tâche : À l’heure programmée.
- Dans les paramètres avancés (en bas), cochez la case Répéter la tâche toutes les : 1 heure.
- Pour la durée, choisissez Indéfiniment.
- Cliquez sur OK.
- Onglet Actions :
- Cliquez sur Nouveau…
- Action : Démarrer un programme.
- Programme/script :
powershell.exe - Ajouter des arguments :
-ExecutionPolicy Bypass -File "C:\Scripts\check-disque.ps1" - Cliquez sur OK.
- Validez en cliquant sur OK tout en bas. Windows va vous demander le mot de passe de votre compte administrateur pour enregistrer la tâche.
C’est terminé ! Désormais, toutes les heures, le script va discrètement regarder s’il reste assez de place. Si vous passez sous la barre des 20% (ou la valeur choisie), vous recevrez immédiatement l’e-mail détaillé.

