Accueil » Actualités » Logiciels » Robocopy : le couteau suisse de la copie de fichiers sous Windows

Robocopy : le couteau suisse de la copie de fichiers sous Windows

Robocopy, contraction de “Robust File Copy”, est l’un des outils les plus sous-estimés de l’écosystème Windows. Livré nativement avec Windows depuis Vista/Server 2008, il est devenu le couteau suisse des admins pour copier, synchroniser et migrer des données de façon fiable, traçable et très performante. Là où l’Explorateur Windows reste pratique pour des usages ponctuels, Robocopy vise clairement l’industriel : gros volumes, liaisons réseau instables, conservation des droits NTFS, reprise sur erreur, et automatismes. 

Pourquoi Robocopy est différent

1) Robustesse réseau

Robocopy sait reprendre une copie interrompue (option /Z), réessayer intelligemment (/R:n /W:n), ignorer les fichiers temporaires ou verrouillés, et produire des rapports exploitables. C’est précisément pour ça qu’il est recommandé dans les scénarios de sauvegarde ou de migration réseau. 

2) Préservation des attributs et permissions

Contrairement à une copie “simple”, Robocopy peut préserver :

  • données, attributs, timestamps (/COPY:DAT)

  • droits NTFS/ACL (/COPY:DATSOU ou /SEC)

  • propriétaires et audit si besoin (/COPYALL)
    Ces options sont cruciales quand tu migres un serveur de fichiers ou un partage d’entreprise. 

3) Performance

Robocopy copie en multi-thread (/MT) ce qui accélère massivement le transfert de milliers de petits fichiers sur SMB. Sur les gros fichiers (>1 Go), le mode I/O non bufferisé (/J) évite de saturer le cache mémoire. Depuis Windows Server, Microsoft le positionne ouvertement comme l’outil le plus performant pour ces cas-là. 

Les cas d’usage classiques

  1. Backup miroir vers NAS

    • Objectif : copie exacte de la source, suppressions incluses.

  2. Synchronisation incrémentale

    • Objectif : ne copier que les nouveautés/modifications.

  3. Migration de serveur de fichiers

    • Objectif : bascule en conservant droits et attributs.

  4. Transfert vers le cloud (Azure Files, Data Box, etc.)

    • Robocopy est souvent l’outil “dernier kilomètre” via SMB.

Les options essentielles (à connaître par cœur)

Structure de base

robocopy <source> <destination> [fichiers] [options]

Robocopy fonctionne par défaut sur *.* si tu ne précises pas de filtre.

Copy / sync

  • /E : copie tous les sous-dossiers, y compris vides.

  • /MIR : miroir strict = /E + suppression côté destination de ce qui n’est plus côté source.
    À utiliser avec prudence si la destination contient autre chose. 

Résilience réseau

  • /Z : copie “restartable”.

  • /R:3 /W:5 : 3 retries, attente 5 s entre retries.

Permissions / métadonnées

  • /COPY:DAT : Data, Attributes, Timestamps (souvent suffisant).

  • /SEC ou /COPY:DATSOU : ajoute ACL, Owner, Audit pour migration. 

Perf

  • /MT:8 : multi-thread (1–128).

  • /J : unbuffered I/O pour gros fichiers.

  • /COMPRESS : demande une compression SMB lors du transfert, utile sur liens WAN ou fichiers lourds. 

Logs

  • /LOG:"C:\Logs\rc.log" : log dans un fichier.

  • /LOG+: : append.

  • /NP /NDL /NFL : réduit le bruit dans les logs. 

Exemples concrets

1) Sauvegarde miroir quotidienne vers NAS

robocopy "D:\DATA" "\\NAS\backup\data" /MIR /Z /R:3 /W:5 /MT:8 /FFT /XJ /LOG+:"C:\Logs\backup.log"

Pourquoi ces choix ?

  • /MIR pour un vrai miroir

  • /FFT si destination non-NTFS (NAS Linux) : tolérance timestamps 2 s

  • /XJ évite les boucles via junctions

  • /MT pour accélérer Microsoft Learn+1

2) Migration serveur avec conservation complète

robocopy "\\OLD-SRV\partage" "\\NEW-SRV\partage" /E /Z /COPY:DATSOU /DCOPY:T /R:5 /W:5 /MT:16 /LOG:"C:\Logs\migration.log"
  • /COPY:DATSOU + /DCOPY:T conservent droits et dates de dossiers, utile quand tu dois “rejouer” la copie plusieurs fois avant bascule. Microsoft Learn+1

3) Gros VHDX à travers un lien réseau

robocopy "E:\VMs" "\\SRV\VMs" *.vhdx /J /Z /MT:4 /COMPRESS /LOG:"C:\Logs\vms.log"

Comprendre les codes retour (très important en script)

Robocopy n’utilise pas les codes classiques “0=OK /1=Erreur”.
Il renvoie un bitmask : on considère généralement que tout ce qui est < 8 est OK ou OK avec avertissements (fichiers copiés, différences mineures). À partir de 8, c’est une erreur réelle. 

Exemples :

  • 0 : rien à copier (déjà à jour)

  • 1 : tout copié

  • 3 : copié + fichiers en plus côté destination

  • 8 et + : échecs / erreurs à traiter

En task planifiée ou CI/CD, teste donc if %ERRORLEVEL% GEQ 8 exit /b %ERRORLEVEL%.

Les pièges classiques

  1. /MIR sans filet

    • Si tu te trompes de destination, tu peux vider un partage.

    • Astuce : teste d’abord avec /L (list only).

  2. NAS / Linux et timestamps

    • Ajoute /FFT pour éviter les recopies “fantômes”. 

  3. Multi-thread trop agressif

    • /MT:128 n’est pas toujours mieux : ça peut saturer un NAS ou un lien. Microsoft conseille d’ajuster selon CPU/IO. 

  4. Droits réseau en tâche planifiée

    • “Exécuter que l’utilisateur soit connecté ou non” = attention aux accès SMB. Utilise un compte qui a les droits.

Robocopy en 2025 : toujours incontournable

Même avec l’essor du cloud et des outils de sync modernes, Robocopy reste une brique simple, transparente et ultra fiable. Sa logique “admin-friendly” (logs, codes retour, jobs, options de copie fines) en fait un standard de fait pour :

  • les migrations Windows ↔ Windows,

  • les backups vers NAS,

  • les transferts SMB vers Azure Files,

  • et toutes les automatisations planifiées en environnement pro.

Partagez cet article !
Retour en haut