Articles

Robocopy/MIR switch – mirroring file permissions

Voor het eerst gepubliceerd op TECHNET op 31 juli 2008
Sommige klanten wezen op een bug in Robocopy. de situatie is: stel dat u uw bestanden kopieert met Robocopy in Windows Server 2003 of XP. Vervolgens worden Bestand-of mapmachtigingen (ACL ‘ s) veranderd op Bron of bestemming. U wilt de / MIR schakelaar gebruiken om de rechten te spiegelen:
> Robocopy brondoel /MIR /SEC
Robocopy kan bestandsrechten niet spiegelen – maar werkt voor maprechten.
dit gedrag is ontworpen. Robocopy richt zich op het kopiëren van alleen bestanden die zijn veranderd (in grootte of gewijzigde datum, standaard). Als een bestand eruit ziet alsof het is veranderd, kopieert Robocopy zijn gegevens en, als u ook kopieerbeveiliging hebt opgegeven, kopieert NTFS ACL van bron naar doel na het kopiëren van de gegevens. Als een bestand eruit ziet alsof het niet is veranderd, slaat Robocopy het standaard over, en kopieert niets voor het bestand, zelfs niet de beveiligingsinformatie.
toen ik het “security copy” deel van Robocopy schreef op 22 mei 1997, koos ik ervoor om dit te doen om prestatieredenen, om Robocopy tijden voor grote bomen laag te houden. Dit was een adequate uitvoering voor de behoeften van de meeste mensen op dat moment. Ook, een andere reden waarom ik ervoor koos om dingen te doen zoals ik deed, is dat het instellen van beveiliging op directory ‘ s voldoende is voor de meeste mensen. Het instellen van beveiliging op een bestand-per-bestand basis is een meer gedetailleerde aanpak, zeker, maar leidt tot een grotere onderhoud overhead, misschien te veel voor veel gebruikers.
Dus, de oplossing weergegeven als een tijdelijke oplossing geplaatst door Martin Zugec (MVP) is precies wat er gedaan moet worden in deze situatie, en dit gedrag wordt verwacht:
> ROBOCOPY /Mir <Bron><Doel>
> ROBOCOPY /E /Kopiëren:S /is /IT <Source><Target>
Het eerste bovenstaande Robocopy-Commando kopieert gegevens en beveiliging voor bestanden die zijn bijgewerkt, en het tweede Robocopy-Commando vernieuwt de beveiliging van bestanden voor alle bestanden, zonder bestandsgegevens te kopiëren.
Als u een Resource Kit-versie van Robocopy gebruikt en de beveiliging wilt synchroniseren tussen twee trees waar de gegevens vrij statisch zijn, maar de beveiliging wordt af en toe bijgewerkt. In feite, de” het kopiëren van NTFS-beveiligingsinformatie ” sectie van Robocopy.doc (uit de Resource Kits) stelt:
“om beveiligingsinformatie voor bestaande doelbestanden en mappen te vernieuwen zonder bestandsgegevens te kopiëren, gebruikt u de /IS-schakelaar samen met de /COPY-schakelaar zonder de D-vlag. Bijvoorbeeld /IS / COPY:SOU zou alle beveiligingsinformatie voor alle geselecteerde bestanden vernieuwen, zonder bestandsgegevens te kopiëren.”
dingen zijn een beetje veranderd in de afgelopen 11 jaar, security-wise, dus ik heb de manier waarop dingen werken in dit gebied enigszins veranderd voor de versie van Robocopy die in Vista terecht kwam, in die zin dat als je /SECFIX op de opdrachtregel specificeert, Robocopy de beveiliging zal kopiëren voor overgeslagen bestanden die zowel in de bron en de doel bomen bestaan.
So, om twee bomen synchroon te houden, inclusief hun beveiliging, met behulp van Vista ‘ s Robocopy, kunt u het volgende gebruiken als uw reguliere Robocopy Commando:
> ROBOCOPY <source><target> /MIR /SEC /SECFIX
/MIR repliceert gegevens en beveiliging (zoals /SEC is opgegeven) voor gewijzigde bestanden, en /secfix werkt alleen de beveiliging bij voor ongewijzigde bestanden. Voeg /V toe aan de opdrachtregel als u wilt zien welke bestanden hun beveiliging “fixed” hebben zonder dat hun gegevens worden gekopieerd.

Kevin Allen