Synchroniser des dossiers Windows en conservant les droits ET les dates avec Robocopy

Le beurre, l'argent du beurre ... et le sourire de la crémière !

Robocopy, pour Robust Copy (mais je soupçonne les ingénieurs de chez MS d'avoir un commis un jeu de mots), est un super utilitaire qui permet, entre autre, de copier une arborescence de fichier vers un autre emplacement en conservant tous les paramètres des fichiers: dates, droits, propriétaires et audits.

L'option la plus utile, à mon sens, de Robocopy est la possibilité d'utiliser un "Backup Mode" qui permet de copier des dossiers sur lesquels on a aucun droit (a condition d'être administrateur, évidement). Cette option est particulièrement efficace lors de la migration de serveurs de fichiers, lorsque les droits sur ceux ci excluent le groupe administrateurs.

Dans sa version XP010 (livrée avec avec le Windows Server 2003 Resource Kit), Robocopy n'est pas capable de conserver les dates de modifications des dossiers. Ainsi tous les dossiers copiés portent la date de la copie, ce qui, dans certains cas peut poser problème.



A partir de la version XP026 (qui serait livré avec Robocopy GUI mais que vous pouvez trouver sur ce billet de Martin Zugec) une option supplémentaire est disponible pour synchroniser les dates de dossiers: /DCOPY:T !

Sauf que, rien n'est jamais tout rose: dans cette version, l'option /B (backup mode) semble buggée et retourne systématiquement l'erreur : ERROR 5 (0x00000005) Copying NTFS Security to Destination Directory xxx Access is denied ou Accès refusé (si l'OS est en Français). Et pour ne rien arranger, les versions suivantes ne sont plus compatibles avec Windows 2003 et XP ...

Heureusement, une astuce permet de s'en sortir. Il suffit de posséder les 2 versions (XP010 et XP026) sur la machine et de commencer par utiliser la version XP010 pour faire la copie complète:
robocopy-xp010 X:\Source-Dir Y:\Destination-Dir /E /B /COPYALL
Une fois la commande exécutée, tout est synchronisé sauf les dates de dossiers. Lancer alors la version XP026 pour synchroniser les dates de dossier:
robocopy-xp026 X:\Source-Dir Y:\Destination-Dir /E /B /DCOPY:T

Tout est désormais synchronisé.

Commentaires

  1. Merci !
    Je cherchais justement un outil permettant de synchroniser les dates sans avoir à effacer et recopier plusieurs énooormes dossiers. J'utilise habituellement SynchronizeIt, qui est également un des très rares logiciels sous Windows permettant de copier/synchroniser en conservant les dates de modification et de création des dossiers –– et justement c'est en cliquant malencontreusement, fin 2010, sur l'option inconnue "Make history file" que j'ai changé la date de *tous* les dossiers de ma partition principale de 500Go, dans lesquels s'est ajouté un petit fichier "history". Depuis j'ai laborieusement entrepris de restaurer les dates à partir d'une sauvegarde, soit manuellement avec un logiciel d'édition de dates, soit en effaçant/recopiant avec SynchronizeIt quand il y a trop de sous-dossiers, mais c'est très long et périlleux. Avec cette méthode je devrais pouvoir résoudre le problème simplement et rapidement.

    gabrieltlse@yahoo.fr

    RépondreSupprimer

Enregistrer un commentaire

Posts les plus consultés de ce blog

Importer les contacts Outlook dans le Carnet d'Adresses de Mac OS X

Découverte de la connexion fibre du SIEA/RESO-LIAin

SIEA/RESO-LIAin: regarder la télévision sur son ordinateur