Robocopy est ancien, mais il fonctionne parfaitement bien et est toujours intégré nativement à Windows (même Windows 11).
C'est même un outil de synchronisation de données particulièrement efficace.
Il comporte une multitudes d'options, allant du mirroring simple à la copie préservant les permissions d'accès aux données (même si vous n'y avez pas accès).
Robocopy est particulièrement rapide lors des synchronisations différentielles.
Dans un AD, certaines options de Robocopy ne sont pas accessibles aux utilisateurs standards sans autorisations supplémentaires (par exemple les autorisations d'audit), mais la copie en miroir fonctionne parfaitement.
Cela peut permettre de proposer à un utilisateur un script basique de sauvegarde de ses dossiers personnels vers un partage réseau personnel. L'utilisateur déclencherait ce script à sa guise en double-cliquant dessus ou bien une tâche planifiée pourrait être mise en place pour exécuter ce script à intervalle régulier, sans que l'utilisateur n'ait besoin d'intervenir.
A savoir : Robocopy peut être manipulé avec PowerShell et Cmd.exe.
Malheureusement, j'ai pu constater qu'il y avait régulièrement quelques hics lors de la manipulation de Robocopy via PowerShell, donc je me sers exclusivement de Batch pour le manipuler.
Je vous propose d'apprendre à mettre en place ici un script de sauvegarde différentiel pour sauvegarder le dossier personnel de l'utilisateur Marcel.Dublog (C:\Users\Marcel.Dublog) vers un autre lecteur (partage, clef USB, disque dur externe de sauvegarde etc..) monté sur la lettre S: sur le système.
Lors de la première exécution, une sauvegarde complète sera effectuée, puis lors des prochaines exécutions, seul le contenu qui aura été modifié dans les données de l'utilisateur sera synchronisé.
Enfin, dernier point, il est impossible (a contrario d'Rsync sur les systèmes Unix) de réaliser des sauvegardes distantes avec Robocopy... Mais !! On peut ruser : Montez un volume distant en local sur votre machine... et le tour est joué (que ce soit via WinRM ou RDP).
Voici donc un script basique (mais redoutablement efficace) 'MIR.bat' pour sauvegarder les dossiers du répertoire personnel d'un utilisateur en miroir (copie parfaite).
Et au pire, si Robocopy ne fait pas l'affaire, il y a FreeFileSync... gratuit (et seulement 20€ en version pro).
REM Convertir les caractères des chemins de fichiers en UTF-8 (IMPERATIF !)
@echo off
chcp 65001 > nul
REM #########################################################
REM # SCRIPT DE SAUVEGARDE DES DONNEES PERSO DE Marcel.Dublog
REM Emplacement du chemin de log :
set logrobocopy='C:\Users\Marcel.Dublog\Desktop\robocopy.log'
REM Sauvegarde des Contacts
set source='C:\Users\Marcel.Dublog\Contacts'
set dest='S:\Contacts'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde du Bureau
set source='C:\Users\Marcel.Dublog\Desktop'
set dest='S:\Desktop'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Documents
set source='C:\Users\Marcel.Dublog\Documents'
set dest='S:\Documents'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Téléchargements
set source='C:\Users\Marcel.Dublog\Downloads'
set dest='S:\Downloads'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Favoris
set source='C:\Users\Marcel.Dublog\Favorites'
set dest='S:\Favorites'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Liens
set source='C:\Users\Marcel.Dublog\Links'
set dest='S:\Links'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde de la Musique
set source='C:\Users\Marcel.Dublog\Music'
set dest='S:\Music'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde de OneDrive
set source='C:\Users\Marcel.Dublog\OneDrive'
set dest='S:\OneDrive'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Images
set source='C:\Users\Marcel.Dublog\Pictures'
set dest='S:\Pictures'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Jeux
set source='C:\Users\Marcel.Dublog\Saved Games'
set dest='S:\Saved Games'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Recherches
set source='C:\Users\Marcel.Dublog\Searches'
set dest='S:\Searches'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Sauvegarde des Vidéos
set source='C:\Users\Marcel.Dublog\Videos'
set dest='S:\Videos'
Robocopy %source% %dest% /MIR /R:0 /W:0 /LOG:%logrobocopy%
REM Les options suivantes ne sont pas disponibles pour les utilisateurs dans un AD (sans permissions d'audit) :
REM /COPYALL /ZB /B
REM L'option /Z placée à la fin permet de ne sauvegarder que les blocs différents et pas de tout réécraser à chaque fois
REM Pour débugger, décommenter la ligne suivante :
REM timeout /t 30 /nobreak