ОШИБКА 1307 (0x0000051B) - При копировании с помощью Robocopy - Ни одно из известных решений не работает

ОШИБКА 1307 (0x0000051B) - При копировании с помощью Robocopy - Ни одно из известных решений не работает

Я пытаюсь скопировать папку с одного жесткого диска на другой, используя следующие параметры RoboCopy:

robocopy "H:\Source" "T:\target" /E /COPY:DATSO /R:1 /W:1 /DCOPY:T /Z /LOG:T:\Belfirst_copy.log /NP 

Для файлов, владельцем которых является не администратор, а какой-то конкретный пользователь домена, я получаю следующую ошибку:

ERROR 1307 (0x0000051B) Copying NTFS Security to Destination Directory T:\target\...(a lot of files/dirs)
This security ID may not be assigned as the owner of this object.

Я перепробовал все предложенные решения, которые смог найти:

  • Предоставьте пользователю домена, под которым я вошел в систему и от имени которого запущен скрипт, полный доступ к исходному и целевому каталогам.
  • Предоставьте пользователю домена, под которым я вошел в систему и от имени которого запущен скрипт, привилегию «Восстановление файлов и каталогов».
  • Запустить от имени администратора
  • Запустить как bat-файл
  • Выйдите из системы, войдите снова и повторите попытку.
  • используйте опцию /B
  • Попробуйте без параметра /COPY:S

По понятным причинам копирование без параметра /COPY:O решает проблему. Но это, конечно, бьет по цели.

Что я упускаю?

Платформа: Windows Server 2008 R2

(Это тесно связано с "Ошибка Robocopy с запланированной задачей Windows Server 2008", но у меня пока недостаточно репутации, чтобы добавить там комментарий.)

решение1

Обычно вы можете получить право собственности NTFS на объекты файловой системы только для себя. Вы не можете назначить право собственности третьему лицу. (Это не позволяет пользователям, например, хранить компрометирующие или инкриминирующие данные под владением другого, ничего не подозревающего лица.)

В политике безопасности есть привилегия «восстановление файлов и каталогов». Microsoftсостояния:

Этот параметр безопасности [...] определяет, какие пользователи могут устанавливать допустимых участников безопасности в качестве владельцев объекта.

По-видимому, эта привилегия нужна для копирования права собственности. Robocopy должен работать в контексте безопасности, который позволяет устанавливать право собственности на произвольных принципалов.

По умолчанию локальные администраторы имеют следующую привилегию:

По умолчанию это право предоставлено группам «Администраторы», «Операторы резервного копирования» и «Операторы сервера» на контроллерах домена, а также группам «Администраторы» и «Операторы резервного копирования» на автономных серверах.

(Привилегия «восстановление файлов и каталогов» является частью политики. Возможно, вам придется выйти из системы и снова войти в нее, чтобы она вступила в силу.)

решение2

У меня тоже была эта проблема. Я написал пакетный файл для robocopy текущего вошедшего в систему пользователя и копирования всех его папок профиля в сетевое общее хранилище. Используя переменные и эту комбинацию переключателей, каждая папка скопировалась без ошибок. Для каждой отдельной папки нужно создать команду, но она работает. Возможно, вам придется дать пользователю разрешение на создание папки в сетевом общем хранилище или создать ее до первого резервного копирования.

robocopy "%HOMEPATH%\FOLDER" "\SERVER\NETWORK_SHARE\%USERNAME%\FOLDER" /s /mir /zb /b /copy:dat

Связанный контент