Automatiser une sauvegarde Windows avec Robocopy
Sauvegarde mensuelle avec Robocopy
1. Objectif
Mettre en place une sauvegarde automatique mensuelle sous Windows 10/11 qui :
- copie les fichiers d'un dossier source
- crée un dossier de sauvegarde par mois
- conserve uniquement les 6 derniers mois
- fonctionne automatiquement via le Planificateur de tâches
2. Architecture
Le système repose sur trois éléments :
Planificateur de tâches
↓
.bat
↓
Script PowerShell
↓
Robocopy
3. Dossiers utilisés
Dossier source
C:\DossierASauvegarder
Contient les fichiers à sauvegarder.
Dossier de destination
C:\DossierDeDestinationDeSauvegarde
Une fois peuplé, le dossier ressemble à ceci :
DossierDeDestinationDeSauvegarde
│
├── 2026-01
├── 2026-02
├── 2026-03
├── 2026-04
├── 2026-05
├── 2026-06
│
└── backup_2026-06.log
Chaque sous-dossier correspond à une sauvegarde mensuelle.
4. Script PowerShell
Fichier : C:\Scripts\backup_mensuel.ps1
$Source = "C:\DossierASauvegarder"
$BackupRoot = "C:\DossierDeDestinationDeSauvegarde"
$Now = Get-Date
$MonthFolder = $Now.ToString("yyyy-MM")
$Dest = Join-Path $BackupRoot $MonthFolder
New-Item -ItemType Directory -Path $Dest -Force | Out-Null
$LogFile = Join-Path $BackupRoot "backup_$MonthFolder.log"
robocopy `
$Source `
$Dest `
/E `
/XO `
/R:2 `
/W:5 `
/Z `
/FFT `
/XA:H `
/LOG:$LogFile
$LimitMonth = (Get-Date).AddMonths(-6)
Get-ChildItem $BackupRoot -Directory |
Where-Object {
$_.Name -match '^\d{4}-\d{2}$' -and
([datetime]::ParseExact($_.Name, 'yyyy-MM', $null)) -lt $LimitMonth
} |
Remove-Item -Recurse -Force
Options Robocopy
| Option | Description |
|---|---|
/E |
Copie tous les sous-dossiers |
/XO |
Ignore les fichiers plus anciens |
/R:2 |
2 tentatives en cas d'erreur |
/W:5 |
Attente de 5 secondes entre tentatives |
/Z |
Mode redémarrable |
/FFT |
Compatibilité systèmes de fichiers |
/XA:H |
Ignore les fichiers cachés |
5. Fonctionnement du script
Création du dossier mensuel
Le script génère automatiquement un dossier basé sur la date courante au format YYYY-MM. Exemple : 2026-03.
Nettoyage des anciennes sauvegardes
Le script conserve uniquement les 6 derniers mois et supprime automatiquement les dossiers plus anciens. Exemple de dossiers conservés :
2025-12
2026-01
2026-02
2026-03
2026-04
2026-05
6. Fichier batch
Fichier : C:\Scripts\backup_mensuel.bat
@echo off
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\backup_mensuel.ps1"
Rôle : lance le script PowerShell et sert de point d'entrée pour le Planificateur de tâches.
7. Planification automatique
- Ouvrir le Planificateur de tâches
- Créer une nouvelle tâche
- Cocher :
- Exécuter même si l'utilisateur n'est pas connecté
- Exécuter avec les autorisations maximales
- Déclencheur : choisir l'intervalle souhaité
- Action :
- Programme :
C:\Scripts\backup_mensuel.bat - Arguments : (vide)
- Programme :
8. Logs
Chaque exécution génère un fichier log au format backup_YYYY-MM.log. Exemple : backup_2026-03.log
Ce fichier contient :
- les fichiers copiés
- les fichiers ignorés
- les erreurs éventuelles
9. Tests recommandés
Avant la première utilisation, exécuter manuellement :
backup_mensuel.bat
Puis vérifier :
- la création du dossier mensuel
- la copie des fichiers
- la génération du log
10. Maintenance
Vérifier occasionnellement :
- l'espace disque disponible
- la présence des logs
- le bon fonctionnement de la tâche planifiée
Pas de commentaires