Robocopy/mir switch – oglindire permisiuni de fișiere
publicat pentru prima dată pe TECHNET pe 31 iulie 2008
unii clienți au subliniat ceea ce ei cred a fi un bug în Robocopy.
situația este: să presupunem că copiați fișierele utilizând Robocopy în Windows Server 2003 sau XP. Apoi, permisiunile pentru fișiere sau foldere (ACL-uri) sunt modificate în funcție de sursă sau destinație. Doriți să utilizați comutatorul / MIR pentru a reflecta permisiunile:
> destinația sursă ROBOCOPY /mir /SEC
Robocopy nu oglindește permisiunile fișierelor – dar funcționează pentru permisiunile folderului.
acest comportament este prin design. Robocopy se concentrează pe copierea doar a fișierelor care s-au schimbat (în dimensiune sau dată modificată, în mod implicit). Dacă un fișier pare că s-a schimbat, Robocopy copiază datele sale și, dacă ați specificat și copierea securității, copiază NTFS ACL de la sursă la țintă după copierea datelor. Dacă un fișier pare că nu s-a schimbat, Robocopy implicit îl omite și nu copiază nimic Pentru fișier, nici măcar informațiile sale de securitate.
când am scris partea” copie de securitate ” a Robocopy pe 22 mai 1997, am ales să fac acest lucru din motive de performanță, pentru a menține timpii de Robocopy pentru copacii mari în jos. Aceasta a fost o implementare adecvată pentru nevoile majorității oamenilor de la acea vreme. De asemenea, un alt motiv pentru care am ales să fac lucrurile așa cum am făcut-o, este că setarea securității pe directoare este suficientă pentru majoritatea oamenilor. Setarea securității pe bază de fișier Cu fișier este o abordare mai granulară, cu siguranță, dar implică o întreținere mai mare, poate prea mult pentru mulți utilizatori.
prin urmare, soluția enumerate ca o soluție postat de Martin Zugec (MVP) este exact ceea ce trebuie făcut în această situație, și acest comportament este de așteptat:
> ROBOCOPY /Mir <Sursa><target>
> ROBOCOPY /e /copy:S /IS /IT <Source><Target>
prima comandă Robocopy de mai sus va copia datele și securitatea pentru fișierele care au fost actualizate, iar a doua comandă Robocopy va actualiza securitatea fișierelor pentru toate fișierele, fără a copia date despre fișiere.
dacă utilizați o versiune Kit de resurse de Robocopy, și care doresc să păstreze securitatea sincronizate între doi copaci în cazul în care datele sunt destul de statice, dar de securitate este actualizat acum și apoi. De fapt, secțiunea” copierea informațiilor de securitate NTFS ” din Robocopy.doc (din kiturile de resurse) afirmă:
„pentru a reîmprospăta informațiile de securitate pentru fișierele și directoarele de destinație existente fără a copia datele fișierelor, utilizați comutatorul /IS împreună cu comutatorul /COPY fără steagul D. De exemplu / IS / COPY: SOU ar reîmprospăta toate informațiile de securitate pentru toate fișierele selectate, fără a copia date despre fișiere.”
lucrurile s-au mișcat puțin în ultimii 11 ani, din punct de vedere al securității, așa că am schimbat ușor modul în care funcționează lucrurile în acest domeniu pentru versiunea Robocopy care a ajuns în Vista, în sensul că, dacă specificați /SECFIX pe linia de comandă, Robocopy va copia securitatea pentru fișierele omise care există atât în arborele sursă, cât și în arborii țintă.
deci, pentru a menține doi copaci în sincronizare, inclusiv securitatea lor, folosind Robocopy Vista, puteți utiliza următoarele ca comanda Robocopy regulat:
> ROBOCOPY<sursă><țintă> /MIR /SEC /SECFIX
/mir va reproduce datele și securitatea (așa cum este specificat /sec) pentru fișierele modificate, iar /SECFIX va actualiza doar securitatea pentru fișierele neschimbate. Adăugați / V la linia de comandă dacă doriți să vedeți ce fișiere au securitatea „fixată” fără a fi copiate datele.
Kevin Allen