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