Robocopy имя этого файла не может быть разрешено системой
В результате я получаю разрешение отказано. С помощью проводника я могу копировать файлы в эту папку. Я открыл командную строку с правами администратора с тем же результатом. Доля доступна для чтения / записи для общественности.
РЕДАКТИРОВАТЬ Я успешно сопоставил буклет буклетов для общего ресурса, но robocopy по-прежнему не удается
РЕДАКТИРОВАТЬ Я добавил / B ключ без успеха. Точная ошибка:
Вы пытались стать владельцем общей папки? Вы находитесь в рабочей группе или домене Active Directory?
В моем случае я начал с полного контроля над исходными и целевыми акциями. Проблема заключалась в том, что Robocopy сбрасывал ACL на целевом ресурсе в нулевое значение (никто не имеет разрешения), прежде чем он начал рекурсивные подкаталоги. После нескольких быстрых тестов я пришел к выводу, что Robocopy не обрабатывает унаследованные разрешения. Скажем, вы копируете C: \ Share1 в D: \, а C: \ Share1 наследует свои разрешения из корневого каталога C: \, фактически у него нет явного ACL. Поэтому, когда вы копируете его ACL, вы фактически копируете . ничего. При копировании пустого списка ACL в пункт назначения ваши разрешения удаляются на первом этапе копирования, и все последующие записи в общий ресурс завершаются с ошибкой 5.
Это только проблема, когда вы копируете из источника, к которому вы обращаетесь, с унаследованными разрешениями WITH, и к месту назначения, к которому вы обращаетесь без унаследованных разрешений. Если вы скопируете C: \ (который явно указан в ACL) в D: \, проблем не возникнет. Если это действительно ваша проблема, вы можете решить ее, явно добавив себя в ACL-источник с полным контролем. Когда копия запускается, ваша запись ACL дублируется к месту назначения, и последующие копии файла могут быть записаны. Вы можете отменить изменения (как для источника, так и для пункта назначения) после завершения копирования.
Если у вас по-прежнему возникают проблемы, несмотря на вышесказанное, вы можете попробовать использовать ключ / B, который пытается создать резервную копию файла с использованием ваших привилегий в качестве оператора резервного копирования. Это позволит вам копировать файлы, которые в противном случае вы не смогли бы, например, если вы не в ACL на вашей целевой папке. Robocopy по умолчанию пытается перезапустить копию. При отказе от перезапускаемых копий в худшем случае вы теряете файл, передаваемый в данный момент, в случае сбоя. Следующий проход перезапустит этот файл с начала, а не на полпути.
Надеюсь, это поможет. Вот цитата из документа Microsoft Robocopy относительно параметра / B:
Quote:
Если вы копируете информацию о безопасности NTFS (ACL) вместе с данными файла, можно копировать файлы, к которым у вас есть права на чтение, но нет прав на запись. После того, как такой файл будет скопирован один раз, и ACL будут применены, вы можете обнаружить, что при попытке скопировать файл снова появляется ошибка «Отказано в доступе». В этой ситуации вы должны использовать ключ / B или / ZB для копирования файлов в режиме резервного копирования.
/ B копирует все файлы с семантикой резервного копирования (Backup Mode). / ZB сначала пытается скопировать файлы в режиме перезапуска (для большей отказоустойчивости), но если это не удается с ошибкой «Отказано в доступе», он автоматически повторяет попытку копирования в режиме резервного копирования.
Копирует данные файлов из одного расположения в другое.
Симптомы
Robocopy может сообщать о следующих ошибках для некоторых файлов при копировании файлов и связанной с ними безопасности файлов с файловского сервера CIFS:
yyyy/mm/dd hh:mm:ss ERROR 1338 (0x0000053A) Копирование безопасности NTFS в файл назначения
Структура дескриптора безопасности недействительна.
yyyy/mm/dd hh:mm:ss ERROR 87 (0x00000057) Копирование безопасности NTFS в файл назначения
Параметр неправильный.
Ошибка возникает только при копировании безопасности файлов, например, путем указания или в командной /SEC /COPYALL строке Robocopy. Если безопасность файлов не копируется, все файлы успешно копируется, и об ошибках не сообщается.
Решение
Дополнительная информация
Это по дизайну — сведения о безопасности файлов в Windows, как ожидается, будут содержать siD владельца и основной группы. Дополнительные сведения о дескрипторах безопасности и списках управления доступом:
Добавить учетную запись пользователя группе операторов архива домена или локальной группы «Операторы архива».
Эта учетная запись используется для входа на компьютер под управлением Windows 7 или Windows Server 2008 R2.
Используйте команду Robocopy с параметром /B скопировать некоторые файлы, не имеют разрешения на доступ или владельца.
В этом случае эти файлы будут скопированы успешно. Тем не менее их данные конфигурации безопасности, такие как список управления доступом (ACL) не копируется. Вместо этого эти файлы наследуют их ACL из конечной папки.
Ошибка 5 (0x00000005), копирование безопасности NTFS для конечного каталога доступ запрещен
Ошибка 5 (0x00000005), копирование безопасности NTFS для конечного файла доступ запрещен
Следует иметь в виду при запуске программы Robocopy.exe с параметром /B для копирования файла является членом группы «Операторы архива», все, что должен быть скопирован. Член должен иметь доступ к сведениям о конфигурации безопасности файла, даже если член не имеет разрешений для файла или владельца файла.
Сведения об исправлении
Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте это исправление только в тех случаях, когда наблюдается проблема, описанная в данной статье. Это исправление может проходить дополнительное тестирование. Таким образом если вы не подвержены серьезно этой проблеме, рекомендуется дождаться следующего пакета обновления, содержащего это исправление.
Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этот раздел не отображается, обратитесь в службу поддержки для получения исправления.
Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Чтобы получить полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание, посетите следующий веб-сайт корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.
Предварительные условия
Для установки этого исправления на компьютере должна быть установлена Windows Server 2008 R2 или Windows 7.
Необходимость перезагрузки
Необходимо перезагрузить компьютер после установки данного исправления.
Сведения о замене исправлений
Это исправление не заменяет ранее выпущенные исправления.
Сведения о файлах
Английский (США) версия данного исправления устанавливает файлы с атрибутами, указанными в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.
Примечания к сведениям о файлах Windows 7 и Windows Server 2008 R2
Важно. Исправления для Windows Server 2008 R2 и Windows 7 включены в одни и те же пакеты. Однако исправления на странице запроса исправлений перечислены под обеими операционными системами. Чтобы запросить пакет исправления, который применяется к одной или обеим ОС, установите исправление, описанное в разделе "Windows 7/Windows Server 2008 R2" страницы. Всегда смотрите раздел "Информация в данной статье относится к следующим продуктам" статьи для определения фактических операционных систем, к которым применяется каждое исправление.
Файлы MANIFEST (.manifest) и MUM (.mum), устанавливаемые для каждой среды, указаны отдельно в разделе "Сведения о дополнительных файлах для Windows Server 2008 R2 и Windows 7". Файлы MUM и MANIFEST, а также связанные файлы каталога безопасности (CAT) чрезвычайно важны для поддержания состояния обновленных компонентов. Файлы каталога безопасности, для которых не перечислены атрибуты, подписаны цифровой подписью корпорации Майкрософт.
Я пытаюсь использовать robocopy для передачи одного файла из одного места в другое, но robocopy мне кажется, что я всегда указываю папку. Вот пример:
Но я получаю эту ошибку вместо:
(обратите внимание \ на в конце transfer_this.txt )
Но если я рассматриваю это как целую папку:
Это работает, но тогда я должен передать все в папке.
Как я могу передать только один файл с robocopy ?
def copyFile(fromLocation,toLocation,big=False): print("copy file from " + fromLocation + " to " + toLocation) if big: iFind=fromLocation.rfind('\\') fromLocation1 = fromLocation[: (iFind+1)] fileName=fromLocation[iFind+1 :] toLocation1 = toLocation[:(toLocation.rfind('\\')+1)] strcmd="robocopy "+fromLocation1+" "+toLocation1+" "+fileName print(strcmd) os.system(strcmd) else: shutil.copy2(fromLocation,toLocation)
Использование: ROBOCOPY источник назначения [файл [файл] . ] [параметры]
@samsmith Я видел сбой, когда у вас есть \ перед закрывающей кавычкой (то есть: файл ROBOCOPY c: \ folder1 \ "c: \ folder2 не будет работать, но: ROBOCOPY" c: \ folder1 "c: \ folder2 файл делает. Я ожидаю, что это текстовая экранировка
@MikeGoatly Отличный момент. Робокопия НЕ любит трейлинг \. Он хочет, чтобы вы называли каталоги «именами», и не хочет подразумевать, что он принимает что-либо, кроме каталога.
Папка-копир, а не файл-копир
Синтаксис Robocopy заметно отличается от стандартных команд копирования, поскольку он принимает только имена папок в качестве аргументов источника и назначения. Имена файлов и символы подстановки (например, *.* ) не являются допустимыми аргументами источника или назначения. Файлы могут быть выбраны или исключены с помощью необязательного аргумента фильтрации спецификаций файлов. Спецификации файлов могут ссылаться только на имена файлов относительно папок, уже выбранных для копирования. Полностью определенные имена путей не поддерживаются.
Например, чтобы скопировать файл foo.txt из каталога c:\bar в c:\baz , можно использовать следующий синтаксис:
Я заметил одну вещь. Если в C: \ bar есть какие-либо папки и добавлена опция / e. Он воссоздает все папки без файлов в них. Я полагаю, что поскольку foo.txt действует как фильтр, он не может найти файлы в этих папках и ваши пустые папки. Вот почему создаются пустые папки.
Попробуйте вставить пробел перед пунктом назначения, например так:
обратите внимание на пробел после места назначения «папка» z: .
Это не сработало для меня, я должен был следовать инструкциям @ KPWINC и оставить имя файла вне исходного пути.
Коды выхода (return)
Значение | Описание |
---|---|
0 | Файлы не были скопированы. Сбой не обнаружен. Файлы не были несовпадения. Файлы уже существуют в целевом каталоге; следовательно, операция копирования была пропущена. |
1 | Все файлы успешно скопированы. |
2 | В целевом каталоге есть несколько дополнительных файлов, которые отсутствуют в исходном каталоге. Файлы не были скопированы. |
3 | Некоторые файлы были скопированы. Были представлены дополнительные файлы. Сбой не обнаружен. |
5 | Некоторые файлы были скопированы. Некоторые файлы были несовпадения. Сбой не обнаружен. |
6 | Существуют дополнительные файлы и несовпадение файлов. Файлы не были скопированы и не обнаружены сбои. Это означает, что файлы уже существуют в целевом каталоге. |
7 | Файлы были скопированы, несогласование файлов присутствовало и были представлены дополнительные файлы. |
8 | Несколько файлов не скопируются. |
Любое значение больше 8 указывает на то, что во время операции копирования произошел по крайней мере один сбой.
В этой статье предоставляется решение по исправлению ошибки 1338 или ошибки 87, которая возникает при копировании файлов и связанной с ними безопасности файлов с файловского сервера CIFS.
Применяется к: Windows 7 Пакет обновления 1, Windows Server 2012 R2
Исходный номер КБ: 2459083
Решение
На файловом сервере CIFS используйте соответствующие средства для исправления сведений о безопасности для затронутых файлов и убедитесь, что во всех затронутых файлах есть ИД владельца и sid primary group.
Синтаксис
Например, чтобы скопировать файл с именем yearly-report.mov из c:\reports в общую папку \\marketing\videos , включив многопотоок для повышения производительности (с параметром /mt ) и возможность перезапуска передачи в случае прерывания (с параметром /z ) введите:
Причина
Ошибка вызвана тем, что файл-сервер CIFS возвращает недействительные сведения о безопасности для файла. Например, если файл-сервер CIFS возвращает NULL Security ID (SID) для владельца файла или основной группы файла, когда Robocopy пытается скопировать эти сведения в файл назначения, Windows возвращает ошибку 87 Параметр является неправильным или ошибкой 1338 Дескриптор безопасности является недействительным . Это по дизайну — сведения о безопасности файлов в Windows, как ожидается, будут содержать siD владельца и основной группы.
Параметры
Параметр | Описание |
---|---|
Указание пути к исходному каталогу. | |
Указание пути к целевому каталогу. | |
Указывает файл или файлы для копирования. Поддерживаются подстановочные знаки (* или ?). Если этот параметр не указан, *.* используется в качестве значения по умолчанию. | |
Задает параметры, используемые с командой robocopy , включая параметры копирования, файла, повторных попыток, ведения журнала и задания . |
Параметры копирования
- D — данные
- A — атрибуты
- T — метки времени
- S — список управления доступом NTFS (ACL)
- O — сведения о владельце
- U — сведения об аудите
- D — данные
- A — атрибуты
- T — метки времени
- R — только для чтения
- A — архив
- S — система
- H — скрытый
- C — сжатый
- N — не индексировано содержимое
- E — зашифровано
- T — временное
- R — только для чтения
- A — архив
- S — система
- H — скрытый
- C — сжатый
- N — не индексировано содержимое
- E — зашифровано
- T — временное
При использовании параметра копирования /secfix укажите тип сведений о безопасности, которые требуется скопировать, используя один из следующих дополнительных параметров копирования:
Параметры выбора файла
- R — только для чтения
- A - Архив
- S — система
- H — скрытый
- C — сжатый
- N — не индексировано содержимое
- E — зашифровано
- T — временный
- O — автономный режим
- R — только для чтения
- A - Архив
- S — система
- H — скрытый
- C — сжатый
- N — не индексировано содержимое
- E — зашифровано
- T — временный
- O — автономный режим
Параметры повтора
Параметр | Описание |
---|---|
/r: | Указание количества повторных попыток для неудавшихся копий. Значение по умолчанию n равно 1000 000 (один миллион повторных попыток). |
/w: | Указание времени ожидания между повторными попытками в секундах. Значение по умолчанию n равно 30 (время ожидания 30 секунд). |
/reg | Сохраняет значения, указанные в параметрах /r и /w , в качестве параметров по умолчанию в реестре. |
/tbd | Указывает, что система будет ожидать определения имен общих ресурсов (ошибка повтора 67). |
Параметры ведения журнала
Параметр | Описание |
---|---|
/l | Указывает, что файлы должны быть перечислены только (а не копируются, удаляются или метки времени). |
/x | Сообщает все дополнительные файлы, а не только выбранные. |
/v | Создает подробные выходные данные и отображает все пропущенные файлы. |
/ts | Включает метки времени исходного файла в выходные данные. |
/fp | Содержит полные имена путей файлов в выходных данных. |
/bytes | Печатает размеры в виде байтов. |
/ns | Указывает, что размеры файлов не записываются в журнал. |
/nc | Указывает, что классы файлов не записываются в журнал. |
/nfl | Указание, что имена файлов не должны регистрироваться. |
/ndl | Указание, что имена каталогов не должны регистрироваться. |
/np | Указывает, что не нужно отображать ход выполнения операции копирования (количество копируемых файлов или каталогов). |
/eta | Показывает предполагаемое время прибытия (ETA) скопированных файлов. |
/log: | Запись выходных данных о состоянии в файл журнала (перезапись существующего файла журнала). |
/log+: | Записывает выходные данные состояния в файл журнала (добавляет выходные данные в существующий файл журнала). |
/unicode | Отображает выходные данные состояния в виде текста Юникода. |
/unilog: | Записывает выходные данные состояния в файл журнала в виде текста Юникода (перезаписывает существующий файл журнала). |
/unilog+: | Записывает выходные данные состояния в файл журнала в виде текста Юникода (добавляет выходные данные в существующий файл журнала). |
/tee | Записывает выходные данные состояния в окно консоли, а также в файл журнала. |
/njh | Указывает, что заголовок задания отсутствует. |
/njs | Указывает, что сводка задания отсутствует. |
Параметры задания
Параметр | Описание |
---|---|
/job: | Указывает, что параметры должны быть производными от именованного файла задания. |
/save: | Указывает, что параметры необходимо сохранить в именованный файл задания. |
/quit | Завершает работу после обработки командной строки (для просмотра параметров). |
/nosd | Указывает, что исходный каталог не указан. |
/noddd | Указывает, что целевой каталог не указан. |
/if | Включает указанные файлы. |
Причина
Эта проблема возникает, так как программа Robocopy.exe не открыть эти файлы с помощью флага «цель резервного копирования», если используется параметр /B . Это предотвращает доступ к сведения о конфигурации безопасности для пользователя, имеющего «Резервного копирования файлов и каталогов» прав (SE_BACKUP_PRIVILEGE).
Примечание. Если файл открыт с помощью флага «цель резервного копирования», проверяются определенные права доступа, и пользователю, открывшему файл предоставляется соответствующий доступ к файлу.
Читайте также: