Я только что заметил странное поведение при использовании ROBOCOPY / SEC, которое я не могу объяснить ...
Мы требуем, чтобы папка {TEMPLATE}, содержащая +50 подпапок с настраиваемыми правами доступа, копировалась для каждого нового проекта. Для этого я создал простой пакетный скрипт, который выполняет:
ROBOCOPY "\\SHARE\INFO\{TEMPLATE-NL}" "\\SHARE\PROJECTS\NEW_PROJECT" /E /SEC
Сама папка имеет полный доступ для всех. Пользователь, выполняющий пакетный сценарий, имеет полный доступ к \ SHARE \ PROJECTS.
Когда у этого пользователя есть доступ на чтение (включая права на чтение) к \ SHARE \ INFO {TEMPLATE-NL}, ROBOCOPY завершится ошибкой и скопирует только первый уровень папок с определенными правами доступа.
Чтобы исправить это, мне пришлось предоставить этому пользователю полный доступ к \ SHARE \ INFO {TEMPLATE-NL}.
Как идет? И есть ли способ обойти это? Я не хочу, чтобы этот пользователь мог изменять разрешения шаблона.
Если я правильно интерпретировал ваш сценарий, это именно то, что ожидалось:
Разрешения на исходный каталог не дают пользователю права вносить изменения.
Вы копируете эти разрешения в целевой каталог.
Следовательно, пользователь больше не может вносить изменения в целевой каталог, и robocopy не работает.
Если у пользователя есть права администратора (на машине, на которой работает robocopy, а также на конечном сервере), вы можете использовать /B
возможность переопределить разрешения.
В противном случае вы могли бы заставить его работать как двухэтапный процесс, сначала скопировав все файлы и каталоги без копирования безопасности, т. Е. Используя /COPY:DAT
а затем исправьте разрешения как отдельный шаг, используя /IS
и /COPY:S
параметры.