W moim przypadku zacząłem od pełnej kontroli udziałów źródłowych i docelowych. Problem polegał na tym, że Robocopy resetuje listę ACL udziału docelowego do wartości zerowej (nikt nie ma pozwolenia), zanim zaczęła rekursować podkatalogi. Po kilku szybkich testach doszedłem do wniosku, że Robocopy nie obsługuje odziedziczonych uprawnień. Załóżmy, że kopiujesz C: \ Share1 do D: \, a C: \ Share1 dziedziczy swoje uprawnienia z katalogu głównego C: \, w rzeczywistości nie ma wyraźnej listy ACL. Dlatego, kiedy kopiujesz jego ACL, w rzeczywistości kopiujesz ... nic. Kopiując pustą listę ACL do miejsca docelowego, uprawnienia są usuwane w pierwszym kroku kopiowania, a wszystkie kolejne zapisy do udziału kończą się błędem 5.
Jest to problem tylko w przypadku kopiowania ze źródła, do którego uzyskujesz dostęp Z odziedziczonymi uprawnieniami i miejsca docelowego, do którego masz dostęp BEZ odziedziczonych uprawnień. Jeśli skopiujesz C: \ (który ma cię wyraźnie w swojej ACL), do D: \, nie ma problemu. Jeśli to rzeczywiście jest twój problem, możesz go rozwiązać, dodając się jawnie do źródłowej listy ACL z pełną kontrolą. Po uruchomieniu kopii wpis ACL zostaje zduplikowany do miejsca docelowego, a kolejne kopie plików można zapisać. Możesz cofnąć zmiany (zarówno źródłowe, jak i docelowe) po zakończeniu kopiowania.
Jeśli pomimo powyższych problemów nadal występują problemy, możesz rozważyć użycie przełącznika / B, który próbuje wykonać kopię zapasową pliku przy użyciu uprawnień jako operatora kopii zapasowej. Umożliwi to kopiowanie plików, których w innym przypadku nie byłby możliwy, na przykład, jeśli nie ma na liście ACL udziału docelowego. Robocopy domyślnie próbuje podjąć próbę ponownego uruchomienia kopii. Porzucając kopie do ponownego uruchomienia najgorszym przypadkiem jest utrata aktualnie przesyłanego pliku w przypadku zakłócenia. Następne przejście uruchomi ponownie ten plik od początku zamiast w połowie.
Mam nadzieję, że to pomaga. Oto cytat z dokumentu Robocopy firmy Microsoft dotyczący przełącznika / B:
Zacytować:
Jeśli kopiujesz informacje o bezpieczeństwie NTFS (ACL) wraz z danymi pliku, możesz kopiować pliki, do których masz dostęp do odczytu, ale nie masz dostępu do zapisu. Po skopiowaniu takiego pliku i zastosowaniu list ACL może się okazać, że pojawia się błąd „Odmowa dostępu” przy ponownej próbie skopiowania pliku. W tej sytuacji należy użyć przełącznika / B lub / ZB, aby skopiować pliki w trybie kopii zapasowej.
/ B kopiuje wszystkie pliki z semantyką tworzenia kopii zapasowych (Tryb kopii zapasowej). / ZB najpierw próbuje skopiować pliki w trybie umożliwiającym ponowne uruchomienie (w celu zwiększenia odporności), ale jeśli to się nie powiedzie z błędem „Odmowa dostępu”, automatycznie spróbuje skopiować kopię w trybie kopii zapasowej.