
Contexte 📚
Dans un environnement de virtualisation Hyper‑V, garantir la disponibilité des machines virtuelles (VM) est crucial. La sauvegarde incrémentielle permet de ne sauvegarder que les blocs modifiés depuis la dernière sauvegarde, réduisant le temps d’exécution et l’empreinte disque.

Quand l’utiliser ⏰
- En production avec plusieurs VM critiques.
- Lorsque l’on souhaite automatiser les sauvegardes via planificateur de tâches.
- Si l’on utilise un stockage partagé (SMB 3.0 ou CSV) compatible VSS.
🔹 Étapes de mise en place
- Pré‑requis
# Vérifier le rôle Hyper‑V Get-WindowsFeature -Name Hyper-V # S’assurer que le compte utilisé est membre du groupe "Hyper‑V Administrators" net localgroup "Hyper-V Administrators" - Créer un répertoire de sauvegarde
# Exemple : stockage sur un partage SMB $BackupRoot = "\\BackupServer\HyperV_Backups" New-Item -Path $BackupRoot -ItemType Directory -Force - Définir la fonction de sauvegarde incrémentielle
function Invoke-HVIncrementalBackup { param( [Parameter(Mandatory)] [string]$VmName, [Parameter(Mandatory)] [string]$Destination ) # Exporter uniquement les changements (VSS snapshot) $vm = Get-VM -Name $VmName $snapshot = Checkpoint-VM -VM $vm -SnapshotName "Backup_$(Get-Date -Format yyyyMMdd_HHmm)" -CheckpointType Production Export-VM -VM $vm -Path $Destination -Force # Supprimer le snapshot après export Remove-VMSnapshot -VM $vm -Name $snapshot.Name -Confirm:$false } - Lancer la sauvegarde pour chaque VM
# Liste des VM à sauvegarder $Vms = "WebSrv01","SQLSrv02","FileSrv03" foreach ($name in $Vms) { $dest = Join-Path $BackupRoot "$name\$(Get-Date -Format yyyyMMdd_HHmm)" Invoke-HVIncrementalBackup -VmName $name -Destination $dest } - Planifier l’exécution quotidienne
# Créer une tâche planifiée $action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -WindowStyle Hidden -File C:\Scripts\HVBackup.ps1" $trigger = New-ScheduledTaskTrigger -Daily -At 02:00 Register-ScheduledTask -TaskName "HV-IncBackup" -Action $action -Trigger $trigger -RunLevel Highest -User "SYSTEM" - Rotation des points de restauration (30 jours)
# Suppression des sauvegardes >30 jours Get-ChildItem -Path $BackupRoot -Recurse -Directory | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-30)} | Remove-Item -Recurse -Force
⚠️ Méthode alternative
Utiliser Windows Server Backup avec le module Backup-WindowsImage pour capturer l’ensemble du serveur Hyper‑V, puis extraire les VM depuis le fichier VHDX. Cette approche est plus simple mais consomme davantage d’espace et ne permet pas de granularité VM‑par‑VM.
⚠️ Bonnes pratiques de sécurité
- Restreindre l’accès au partage de sauvegarde aux comptes du groupe
Hyper‑V Administratorset au compteSYSTEMdu serveur Hyper‑V. - Activer le chiffrement SMB (SMB 3.0) ou chiffrer le volume de destination avec BitLocker.
- Vérifier régulièrement l’intégrité des sauvegardes via
Test-VMBackup(script personnalisé). - Documenter la procédure de restauration et réaliser un test de restauration au moins une fois par trimestre.
✅ Conclusion
En suivant ces étapes, vous disposez d’une solution de sauvegarde incrémentielle automatisée, adaptée aux environnements Hyper‑V sous Windows Server 2022. La combinaison de PowerShell et du planificateur de tâches vous assure une exécution fiable, tout en limitant l’impact sur les performances grâce aux snapshots VSS.
