Points clés
→ Robocopy est natif dans Windows depuis Vista et Windows Server 2008 R2 — aucune installation (Microsoft Learn)
→ Commande de base :robocopy \\source\share \\destination\share /E /COPYALL /DCOPY:ALL /LOG:migration.log
→ Attention : sans/Ret/W, Robocopy tente 1 000 000 fois par fichier bloqué — toujours les overrider
→ Stratégie 2 passes (bulk + delta) : fenêtre de coupure réduite à quelques minutes
→/MT:32pour paralléliser — supporte 1 à 128 threads depuis Windows Server 2008 R2
Tu dois migrer les données d’un serveur de fichiers vers un nouveau serveur ? Robocopy est l’outil natif de Microsoft, inclus dans Windows depuis Vista et Windows Server 2008, qui rend cette opération fiable et reproductible. Contrairement à un simple copier-coller, il préserve les ACL NTFS, les attributs, les timestamps, et gère les interruptions sans reprendre depuis zéro.
Ce guide couvre la migration complète, de la préparation jusqu’à la vérification finale, avec les commandes exactes à utiliser.
↻ Article mis à jour en mai 2026.
Pourquoi utiliser Robocopy plutôt que xcopy ou l’explorateur Windows ?
Robocopy (Robust File Copy) est l’outil de référence Microsoft pour la migration de fichiers réseau, natif dans Windows depuis Vista et Windows Server 2008 R2 (Microsoft Learn). Ce qu’il fait que xcopy et l’explorateur ne font pas : il reprend automatiquement les fichiers bloqués ou en cours d’utilisation, synchronise les permissions NTFS et les ACL en plus des données, et fonctionne en mode delta — lors d’une deuxième passe, seuls les fichiers modifiés depuis la précédente sont recopiés.
Concrètement, tu peux lancer une première copie en semaine (bulk), puis une deuxième juste avant le basculement le week-end (delta des modifications récentes). La fenêtre de coupure pour les utilisateurs tombe à quelques minutes au lieu de plusieurs heures.
Selon la documentation officielle, la valeur par défaut du paramètre /R (retry) dans Robocopy est de 1 000 000 tentatives avec 30 secondes d’attente entre chaque (/W:30). Un seul fichier bloqué peut donc figer la copie pendant des heures si ces valeurs ne sont pas overridées. En migration réseau, passer /R:3 /W:10 est indispensable pour un comportement prévisible (Microsoft Learn, 2026).
Prérequis avant de commencer la migration
Avant de lancer quoi que ce soit, trois points à vérifier. Les droits administrateur sur les deux serveurs sont indispensables : sans eux, /COPYALL ne peut pas copier les ACL NTFS. Côté réseau, une connexion 1 Gbps copie environ 100 Go/heure en conditions réelles — pour 5 To, prévois 50 heures de première passe. Dernier point souvent négligé : l’antivirus. Les solutions AV avec inspection temps-réel peuvent diviser les débits de copie par 2 à 3 sur le serveur destination — le désactiver pendant la migration fait une vraie différence.
- Droits Admin sur source ET destination
- Espace disque suffisant sur la destination (prévoir 10% de marge)
- Journal des partages existants sur la source (
net shareou console Gestion de l’ordinateur) - Antivirus désactivé sur la destination pendant la copie
Tu hésites entre Robocopy et d’autres solutions ? Notre comparatif des 4 meilleurs outils gratuits pour migrer un serveur de fichiers (SyncToy, FreeFileSync, SyncBack Free) t’aide à choisir selon le contexte.
La commande Robocopy pour migrer un partage réseau
La commande suivante copie la totalité d’un partage réseau, permissions incluses, en gardant un journal détaillé :
robocopy \\SERVEUR-SOURCE\Partage \\SERVEUR-DEST\Partage /E /COPYALL /DCOPY:ALL /R:3 /W:10 /MT:32 /LOG:C:\migration\robocopy.log /TEE
Détail de chaque paramètre :
| Paramètre | Rôle |
|---|---|
/E | Copie tous les sous-dossiers, y compris les dossiers vides |
/COPYALL | Copie tout : données, attributs, timestamps, ACL NTFS, propriétaire, info d’audit (équivalent à /copy:DATSOU) |
/DCOPY:ALL | Applique aussi les ACL au niveau des dossiers (pas seulement des fichiers) |
/R:3 | 3 tentatives max sur un fichier en erreur (défaut : 1 000 000 — toujours l’overrider) |
/W:10 | Attente 10 secondes entre chaque tentative (défaut : 30 secondes) |
/MT:32 | 32 threads en parallèle — supporte 1 à 128 threads depuis Windows Server 2008 R2 |
/LOG:fichier | Écrit le journal dans un fichier |
/TEE | Affiche la progression dans la console ET écrit dans le log en simultané |
Avant de lancer la vraie copie, simule avec /L pour voir ce qui sera copié sans rien modifier :
robocopy \\SERVEUR-SOURCE\Partage \\SERVEUR-DEST\Partage /E /COPYALL /DCOPY:ALL /L /LOG:C:\migration\simulation.log
/COPYALL est l’équivalent de /copy:DATSOU selon la documentation officielle Microsoft : il copie les données (D), attributs (A), timestamps (T), ACL NTFS (S), propriétaire (O) et informations d’audit (U). Sans /DCOPY:ALL en complément, les ACL appliquées aux dossiers eux-mêmes ne sont pas transférées. Ces deux paramètres combinés garantissent une migration NTFS complète à la fois sur les fichiers et les répertoires (Microsoft Learn, 2026).
Stratégie recommandée : migration en deux passes
Pourquoi s’embêter avec deux passes ? Parce qu’une migration d’un serveur de fichiers actif ne peut pas se faire en une seule nuit sans risque de coupure longue. La première passe copie le bulk des données pendant la semaine, quand les utilisateurs travaillent normalement. La deuxième, lancée juste avant le basculement, ne recopie que les fichiers modifiés depuis la première passe — en quelques minutes seulement.
Passe 1 — Copie initiale (en semaine, serveur source actif)
robocopy \\SERVEUR-SOURCE\Partage \\SERVEUR-DEST\Partage /E /COPYALL /DCOPY:ALL /R:3 /W:10 /MT:32 /LOG:C:\migration\passe1.log /TEE
Lance cette commande un soir ou un week-end. Pour 1 To de données sur réseau 1 Gbps, compte 10 à 12 heures. Tu peux l’interrompre et la relancer : Robocopy reprend là où il s’était arrêté.
Passe 2 — Delta avant basculement (fenêtre de maintenance)
robocopy \\SERVEUR-SOURCE\Partage \\SERVEUR-DEST\Partage /E /COPYALL /DCOPY:ALL /MIR /R:1 /W:5 /MT:32 /LOG:C:\migration\passe2.log /TEE
Le paramètre /MIR (miroir) synchronise la destination : il copie les nouveaux fichiers ET supprime sur la destination les fichiers qui ont été supprimés sur la source. Utilise-le uniquement pendant la fenêtre de maintenance, quand les utilisateurs n’ont plus accès à la source. Pour cette deuxième passe, seuls quelques Go de delta sont concernés — quelques minutes suffisent en général.
La stratégie en deux passes est la méthode recommandée pour les migrations de serveurs de fichiers en production. Une première copie bulk réduit le delta à synchroniser lors de la fenêtre de maintenance. Le comportement delta de Robocopy — il compare les timestamps et tailles avant de recopier — garantit que seuls les fichiers modifiés depuis la première passe sont transférés lors de la deuxième. Résultat : la coupure effective se limite à 5-15 minutes pour des volumes de 1 à 5 To.
Recréer les partages réseau sur le nouveau serveur
Copier les fichiers ne suffit pas : tu dois aussi recréer les partages réseau sur la destination. Robocopy ne migre pas les partages SMB — seulement les données et les ACL NTFS. La commande net share liste tous les partages de la source :
net share
Pour exporter et réimporter les partages automatiquement (Windows Server 2012+), tu peux utiliser PowerShell :
# Sur la SOURCE — exporter les partages
Get-SmbShare | Where-Object {$_.Name -notlike '*$'} | Export-Csv C:\migration\partages.csv
# Sur la DESTINATION — recréer les partages
Import-Csv C:\migration\partages.csv | ForEach-Object {
New-SmbShare -Name $_.Name -Path $_.Path -FullAccess "Administrators" -Description $_.Description
}
Après recréation, vérifie les permissions de partage (Share Permissions) en plus des ACL NTFS — elles ne sont pas copiées par Robocopy et doivent être reconfigurées manuellement ou via le script PowerShell ci-dessus.
Robocopy transfère uniquement les données et les ACL NTFS au niveau du système de fichiers. Les partages SMB (Share Permissions, droits de partage réseau) sont des métadonnées serveur stockées dans le registre — elles nécessitent une migration séparée via net share, PowerShell (Get-SmbShare / New-SmbShare) ou les outils de migration Windows Server. Ne pas recréer les partages est la première cause d’indisponibilité post-migration.
Vérification post-migration : comment s’assurer que tout est là ?
La migration est terminée — mais as-tu vérifié que tous les fichiers sont bien arrivés ? Robocopy génère un rapport de synthèse à la fin de chaque exécution. Cherche la ligne Dirs et Files dans le log : le nombre d’éléments copiés sur la source doit correspondre au nombre sur la destination. Les colonnes importantes sont Total, Copied, Skipped, Mismatch, FAILED, et Extras. La colonne FAILED doit être à zéro.
Tu peux aussi comparer manuellement le nombre de fichiers et la taille totale entre source et destination avec PowerShell :
# Compter les fichiers et calculer la taille totale
$source = Get-ChildItem -Path \\SERVEUR-SOURCE\Partage -Recurse -File
$dest = Get-ChildItem -Path \\SERVEUR-DEST\Partage -Recurse -File
Write-Host "Source : $($source.Count) fichiers, $(($source | Measure-Object -Sum Length).Sum / 1GB -as [int]) Go"
Write-Host "Destination : $($dest.Count) fichiers, $(($dest | Measure-Object -Sum Length).Sum / 1GB -as [int]) Go"
Tu rencontres des problèmes d’accents dans les noms de fichiers après la migration ? C’est un cas connu avec Robocopy sur certaines configurations. Consulte notre guide comment éviter les problèmes d’accents avec Robocopy pour le diagnostiquer et le résoudre.
La validation post-migration repose sur deux contrôles complémentaires : le rapport de synthèse de Robocopy (colonnes Total / Copied / FAILED dans le log) et une vérification indépendante via PowerShell Get-ChildItem -Recurse. Un écart de taille totale supérieur à 1% entre source et destination signale des fichiers manquants ou tronqués et justifie une nouvelle passe ciblée.
Questions fréquentes
Robocopy copie-t-il les permissions NTFS ?
Oui, avec les paramètres /COPYALL et /DCOPY:ALL. /COPYALL est l’équivalent de /copy:DATSOU — il copie les attributs, timestamps, propriétaire et ACL des fichiers. /DCOPY:ALL applique le même traitement aux dossiers. Sans ces deux paramètres combinés, seules les données brutes sont copiées.
Peut-on reprendre une copie Robocopy interrompue ?
Oui. Robocopy compare automatiquement la source et la destination à chaque lancement. Si un fichier existe déjà avec la même taille et le même timestamp, il est ignoré (colonne Skipped). Il suffit de relancer exactement la même commande pour reprendre où on s’est arrêté. C’est ce comportement delta qui rend la stratégie en deux passes possible.
Quelle est la différence entre /E et /S ?
/S copie les sous-dossiers non vides uniquement. /E copie tous les sous-dossiers, y compris les dossiers vides. Pour une migration complète, utilise toujours /E — les dossiers vides peuvent être des points de montage ou des structures attendues par des applications.
Combien de threads utiliser avec /MT ?
La valeur /MT:32 est un bon point de départ sur réseau 1 Gbps. Sur réseau 10 Gbps avec un NAS performant, monte à /MT:64. Robocopy supporte 1 à 128 threads depuis Windows Server 2008 R2. Attention : avec /MT, le journal peut être désordonné — combine avec /LOG pour garder une trace propre. Incompatible avec /IPG.
Robocopy fonctionne-t-il pour migrer vers un NAS ?
Oui, si le NAS expose un partage SMB/CIFS (tous les NAS Synology, UGREEN, QNAP le font). La commande est identique, avec le chemin UNC du NAS en destination. Attention : les ACL NTFS ne sont pas préservées sur un NAS Linux — seules les données et les timestamps le sont. Pour les permissions, un serveur Windows destination est recommandé.
📖 Retrouve tous nos tutoriels Windows, sécurité et PowerShell dans notre Guide Windows, IT & Sécurité 2026.
Parfait ! Merci 😉
Bonjour Cris, je vois qu’on vis les mêmes frustrations.
Tu peux consulter mon blog à ce propos :
Page de code/code page dans les scripts
http://www.sysblog.ca/?p=29
En résumé, tu peux ajouter « chcp 1252 » pour changer le code de page au début de ton script ou dans ta ligne de commande.
Salut, intéressant ton tuto, dis moi comme tu laisse le script actif sur le serveur ? tu te connect en TS et tu laisse ta session ouverte ?
très bon article merci beaucoup admin, ça m’as beaucoup aidé
Merci pour le tuto !
bonjour, j’ai le même problème avec robocopy et les accents. Le test dir fonctionne très bien.
Avez vous finalement résolu le souci.
Cordialement
Cris,
Je suis très surpris par ton problème d’accent. J’ai comme l’impression que ton interpréteur DOS ne comprend pas le français ;-). Peux tu aller voir dans tes paramètres régionaux si tu utilises bien le bon language.
Je ne pense pas que cela robocopy soit la cause du problème. Essayes de lancer une autre commande comme :
dir « Données »
@+
Hananen
Tu utilises le /ETA pour afficher le pourcentage et le /NP qui lui annule tout affichage … :-(. Enlève le /NP (No Progress) et ca va fonctionner @+
bonjour
j’ai fais un test de copie de dossier du disque c vers d , et je voudrais pouvoir voir le pourcentage de copie , j’arrive pas , dans ma ligne de commande y a pas le NP ;
robocopy « \\cbi17931\c$\save » d:\sauvfich /E /SEC /LOG /NP /ETA /TEE /R:5 /W:5
Merci pour cet article, robocopy c’est super, sauf que je rencontre un problème avec les accents, pourtant j’utilise EDIT pour faire le BAT, sinon super outil.
à+
Cris
PS: Si vous avez une solution pour les chemins avec accent dans robocopy je suis preneur, car il interpréte le chemain « \Donn,es » au lieu de « \Données »
Très clair merci !