Migrare contenuto di un file server mantenendo privilegi di sicurezza e di condivisione


Recentemente mi è capitato di dover migrare il contenuto di un file server dovendo mantenere i privilegi di sicurezza sul file system e i privilegi di condivisione e la seguente procedura è stata testata con Windows Server 2008 R2 e versioni successive.

Prerequisiti

  • Essere il proprietario delle cartelle/files oppure avere privilegi di controllo completo sul file system
  • Su Windows 2003 bisogna provvedere ad installare Robocopy

Procedura

  1. Copiare il contenuto del file server utilizzando il comando da linea di comando robocopy source destination /xo /fft /mir /copyall /log+:c:\robocopylog.txt /r:10 /w:5 .
  • robocopy (lancio del programma)
  • source (cartella che deve essere copiata)
  • destination (specificare il percorso senza la cartella padre, ad esempio per copiare il contenuto della cartella share del disco c: sul disco e: indicare come segue robocopy c:\share\ e:\ , il sistema provvederà in automatico a creare nel disco “e:\” la cartella “share”)
  • /xo serve per non copiare e non sovrascrivere files identici con lo stesso nome, dimensione , data creazione e data di modifica già presenti nel percorso di destinazione
  • /fft usato in contemporanea con l’opzione /xo serve per avere 2 secondi di margine nella orario/data di creazione e modifica, molto utile con filesystem di tipo FAT.
  • /mir esegue copia identica della sorgente. Cancella qualunque files aggiunto e ripristina i files della sorgente se modificati nella destinazione quando il comando viene lanciato più volte, detto con altre parole ripristina tutta lo scenario originale della sorgente.
  • /copyall copia privilegi di sicurezza ed attributi di files e cartelle.
  • /log+:path crea file log e appende nel file i log successivi.
  • /r:10 riprova 10 volte in caso di errore a copiare un file
  • /w:5 aspetta 5 secondi fra un tentativo e l’altro in caso di errore
  1. Rilanciare il comando se sono presenti errori
  2. Aprire il registro di Windows con il comando regedit lanciato da esegui
  3. Aprire la seguente percorso HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares
  4. Esportare le chiavi di registro corrispondenti alle condivisioni che si vogliono migrare
  5. Aprire la seguente percorso HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\Security
  6. Esportare le chiavi di registro corrispondenti alle condivisioni che state esportate precedentemente
  7. Loggarsi sul nuovo server
  8. Importare tutte le chiavi di registro precedentemente esportate.
  9. Aprire la seguente percorso HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares
  10. Controllare che tutte le chiavi importate siano presenti e verificare la correttezza del percorso delle singole condivisioni sul nuovo server, eventualmente cliccare con il tasto destro le chiavi interessate e eseguire le modifiche necessarie.
  11. Riavviare il server e verificare che le condivisioni siano attive.