ОШИБКА 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", но у меня пока недостаточно репутации, чтобы добавить туда комментарий.)
2 ответа
Обычно вы можете приобрести NTFS только право собственности на объекты файловой системы для себя. Вы не можете установить право собственности на третье лицо. (Это препятствует тому, чтобы пользователи, например, хранили компрометирующие или инкриминирующие данные под собственностью другого ничего не подозревающего человека.)
В политике безопасности есть привилегия "восстановить файлы и каталоги". Microsoft заявляет:
Этот параметр безопасности [...] определяет, какие пользователи могут установить действительные участники безопасности в качестве владельца объекта.
Видимо, вам нужна эта привилегия для копирования права собственности. Robocopy должен работать в контексте безопасности, который позволяет устанавливать владение произвольным принципалам.
По умолчанию локальные администраторы имеют эту привилегию:
По умолчанию это право предоставляется группам "Администраторы", "Операторы архива" и "Операторы сервера" на контроллерах домена, а также группам "Администраторы" и "Операторы архива" на автономных серверах.
(Привилегия "восстановить файлы и каталоги" является частью политики. Возможно, вам придется выйти и снова войти, чтобы она вступила в силу.)
У меня тоже была эта проблема. Я написал командный файл, чтобы роботизировать текущего пользователя, вошедшего в систему, и скопировать всю его папку профиля в общую сетевую папку. Используя переменные и эту комбинацию переключателей, каждая папка копируется без ошибок. Команда должна быть создана для каждой отдельной папки, но она работает. Возможно, вам придется дать пользователю разрешение на создание папки в общей сетевой папке или создать ее до первого резервного копирования.
robocopy "% HOMEPATH% \ FOLDER" "\ SERVER \ NETWORK_SHARE \% USERNAME% \ FOLDER" / s / mir / zb / b / copy: dat