1

Возможный дубликат:
В разрешении на робокопию отказано

При попытке запустить следующую команду

robocopy d:\directory \\server\directory /S /XO /COPY:DT

Я получаю ошибку «Отказано в доступе». Я использую Vista Ultimate x64, права администратора, я владелец обоих каталогов.

Я видел этот вопрос и думал, что это похоже, но я получаю следующее сообщение об ошибке:

ERROR 5 (0x00000005)(Copying file d:\blah....)

можно ли это исправить? Если нет, есть ли способ пропустить файлы с ошибками и просто перейти к следующим файлам?

1 ответ1

2

Цитируется здесь :

В моем случае я начал с полного контроля над исходными и целевыми акциями. Проблема заключалась в том, что 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:

Цитата:

Если вы копируете информацию о безопасности NTFS (ACL) вместе с данными файла, можно копировать файлы, к которым у вас есть права на чтение, но нет прав на запись. После того, как такой файл будет скопирован один раз, и ACL будут применены, вы можете обнаружить, что возникает ошибка «Отказано в доступе» при попытке скопировать файл снова. В этой ситуации вы должны использовать ключ /B или /ZB для копирования файлов в режиме резервного копирования.

/B копирует все файлы с семантикой резервного копирования (Backup Mode). /ZB сначала пытается скопировать файлы в режиме перезапуска (для большей отказоустойчивости), но если это не удается с ошибкой «Отказано в доступе», он автоматически повторяет попытку копирования в режиме резервного копирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .