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.

  1. Ouvrez le Planificateur de tâches (tapez taskschd.msc dans le menu Démarrer).
  2. Dans le volet de droite, cliquez sur Créer une tâche…
  3. 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).
  4. 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.
  5. 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.
  6. 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é.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *