Robocopy /MIR spínač – zrcadlení oprávnění souborů
První publikován na webu TECHNET na Červenec 31, 2008
Někteří zákazníci poukázal na to, co oni věří být chyba v Robocopy.
situace je: předpokládejme, že zkopírujete soubory pomocí Robocopy v systému Windows Server 2003 nebo XP. Poté se změní oprávnění k souborům nebo složkám (ACL) na zdroj nebo cíl. Chcete použít přepínač /MIR k zrcadlení oprávnění:
> ROBOCOPY source destination /MIR / SEC
Robocopy nedokáže zrcadlit oprávnění souborů – ale pracuje pro oprávnění složek.
toto chování je záměrné. Robocopy se zaměřuje na kopírování pouze souborů, které se změnily (ve výchozím nastavení ve velikosti nebo změněném datu). Pokud soubor vypadá, že se změnil, Robocopy zkopíruje jeho data a pokud jste také zadali zabezpečení kopírování, zkopíruje NTFS ACL ze zdroje do cíle po zkopírování dat. Pokud soubor vypadá, že se nezměnil, Robocopy jej ve výchozím nastavení přeskočí a nekopíruje pro soubor nic, ani jeho bezpečnostní informace.
Když jsem napsal „bezpečnostní kopie“ část Robocopy dne 22. Května 1997, vybral jsem si to z výkonnostních důvodů, aby Robocopy časy pro velké stromy. To byla adekvátní implementace pro potřeby většiny lidí v té době. Dalším důvodem, proč jsem se rozhodl dělat věci tak, jak jsem to udělal, je, že nastavení zabezpečení adresářů je pro většinu lidí dostačující. Nastavení zabezpečení na soubor-by-souboru základem je jemnější přístup, pro jistotu, ale vznikne větší údržbu, režijní náklady, možná, že příliš mnoho pro mnoho uživatelů.
Proto, že řešení uvedené jako řešení přidal Martin Zugec (MVP) je přesně to, co je třeba udělat v této situaci, a toto chování se očekává, že:
> ROBOCOPY /Mir <Zdroj><Cíl>
> ROBOCOPY /E /Kopírování:S /JE /<Zdroj><Cíl>
první nástroj Robocopy výše bude kopírování dat a zabezpečení pro soubory, které byly aktualizovány, a druhý Robocopy příkaz bude aktualizovat zabezpečení souboru pro všechny soubory, bez kopírování soubor údajů.
Pokud používáte verzi sady zdrojů Robocopy a chcete zachovat synchronizaci zabezpečení mezi dvěma stromy, kde jsou data poměrně statická, ale zabezpečení je občas Aktualizováno. Ve skutečnosti sekce“ kopírování bezpečnostních informací NTFS “ Robocopy.doc (z Resource Kit) státy:
„aktualizovat informace o zabezpečení pro existující cílové soubory a adresáře bez kopírování dat souboru, použijte parametr /IS spolu s /KOPÍROVÁNÍ spínač bez D vlajkou. Například /IS / COPY: SOU by obnovil všechny bezpečnostní informace pro všechny vybrané soubory, aniž by kopíroval data souborů.“
Věci se posunuly na trochu v posledních 11 let, bezpečnostní moudrý, tak jsem změnil způsob, jakým věci fungují v této oblasti mírně verzi Robocopy, který skončil až ve windows Vista, v tom, že pokud zadáte /SECFIX na příkazovém řádku nástroje Robocopy bude kopírovat zabezpečení pro přeskočí soubory, které existují ve zdrojové a cílové stromy.
Chcete-li zachovat synchronizaci dvou stromů, včetně jejich zabezpečení, pomocí Robocopy systému Vista, můžete použít následující příkaz jako běžný příkaz Robocopy:
> ROBOCOPY <zdroj><cíl> /MIR /SEC /SECFIX
/MIR bude replikaci dat a zabezpečení (jako /SEC je uvedeno) pro změněné soubory, a /SECFIX bude aktualizovat jen zabezpečení pro soubory beze změny. Přidat / V do příkazového řádku, pokud chcete vidět, které soubory mají své zabezpečení „pevné“, aniž by byla zkopírována jejich data.
Kevin Allen