Robocopy / MIR switch-mirroring file permissions
Pubblicato per la prima volta su TECHNET il 31 luglio 2008
Alcuni clienti hanno sottolineato quello che credono essere un bug in Robocopy.
La situazione è: supponiamo di copiare i file utilizzando Robocopy in Windows Server 2003 o XP. Quindi, le autorizzazioni di file o cartelle (ACL) vengono modificate appassiscono all’origine o alla destinazione. Si desidera utilizzare l’opzione / MIR per eseguire il mirroring delle autorizzazioni:
>ROBOCOPY source destination /MIR /SEC
Robocopy non riesce a eseguire il mirroring delle autorizzazioni dei file, ma funziona per le autorizzazioni delle cartelle.
Questo comportamento è di progettazione. Robocopy si concentra sulla copia solo i file che sono stati modificati (in termini di dimensioni o data di modifica, per impostazione predefinita). Se un file sembra essere cambiato, Robocopy copia i suoi dati e, se è stata specificata anche la sicurezza di copia, copia NTFS ACL dall’origine alla destinazione dopo aver copiato i dati. Se un file sembra non essere cambiato, Robocopy per impostazione predefinita lo salta e non copia nulla per il file, nemmeno le sue informazioni di sicurezza.
Quando ho scritto la parte “copia di sicurezza” di Robocopy il 22 maggio 1997, ho scelto di farlo per motivi di prestazioni, per mantenere i tempi di Robocopy per i grandi alberi verso il basso. Questa era un’attuazione adeguata per le esigenze della maggior parte delle persone all’epoca. Inoltre, un altro motivo per cui ho scelto di fare le cose come ho fatto, è che l’impostazione della sicurezza sulle directory è sufficiente per la maggior parte delle persone. L’impostazione della sicurezza su base file per file è sicuramente un approccio più granulare, ma comporta un sovraccarico di manutenzione più ampio, forse troppo per molti utenti.
la soluzione, Pertanto, indicato come una soluzione inviato da Martin Zugec (MVP) è proprio ciò che deve essere fatto in questa situazione, e questo comportamento è previsto:
> ROBOCOPY /Mir <Fonte><Target>
> ROBOCOPY /E /Copia:S /SI /SI <Fonte><Target>
Il primo comando Robocopy sopra la copia di dati e di sicurezza per i file che sono stati aggiornati, e il secondo comando Robocopy si aggiorna file di sicurezza per tutti i file, senza copiare i file di dati.
Se si utilizza una versione di Resource Kit di Robocopy e si desidera mantenere la sicurezza sincronizzata tra due alberi in cui i dati sono abbastanza statici, ma la sicurezza viene aggiornata di tanto in tanto. In effetti, la sezione” Copia delle informazioni di sicurezza NTFS ” di Robocopy.doc (dai kit di risorse) afferma:
“Per aggiornare le informazioni di sicurezza per i file e le directory di destinazione esistenti senza copiare i dati dei file, utilizzare l’opzione /IS insieme all’opzione /COPY senza il flag D. Ad esempio /IS / COPY:SOU aggiornerebbe tutte le informazioni di sicurezza per tutti i file selezionati, senza copiare i dati dei file.”
Le cose si sono spostate un po ‘ negli ultimi 11 anni, in termini di sicurezza, quindi ho cambiato leggermente il modo in cui le cose funzionano in quest’area per la versione di Robocopy che è finita in Vista, in quanto se si specifica /SECFIX sulla riga di comando, Robocopy copierà la sicurezza per i file saltati che esistono sia negli alberi di origine che
Quindi, per mantenere due alberi sincronizzati, inclusa la loro sicurezza, usando Robocopy di Vista, puoi usare quanto segue come normale comando Robocopy:
> ROBOCOPY <fonte><target> /MIR /SEC /SECFIX
/MIR sarà la replica dei dati e la sicurezza (/SEC è specificato) per i file modificati, e /SECFIX aggiornerà solo la sicurezza per i file non modificati. Aggiungi / V alla riga di comando se vuoi vedere quali file stanno avendo la loro sicurezza “fissa” senza avere i loro dati copiati.
Kevin Allen