Я установил сценарий robocopy, который запускается ежедневно и синхронизирует данные из определенной папки на сервере хранения Windows Server 2016 с общим ресурсом SMB на QNAP NAS. Windows Server аутентифицируется в домене, тогда как QNAP использует автономный вход пользователя. В сценарии этим занимается net use
поэтому сервер сопоставляет общий ресурс QNAP с правильными учетными данными, а не пытается предположить или запустить от имени пользователя запланированной задачи.
net use \\QNAP\share /USER:<user> "<password>"
Я подтвердил, что сервер может читать / писать в общий ресурс при таком отображении.
Выполнив первую синхронизацию вручную, чтобы убедиться, что сценарий / параметры работают, прежде чем настраивать его для автоматического запуска через планировщик задач, в нескольких каталогах журнала (в разных местах) была обнаружена следующая ошибка. Ниже приведен пример ошибки, пути изменены.
2018/01/12 06:38:16 ERROR 50 (0x00000032) Accessing Destination
Directory \\QNAP\share\example folder\something The request is not supported.
Это происходит в одних и тех же папках каждый раз при запуске robocopy. Если я вручную скопирую любую из папок, в которых возникла ошибка 50, в место назначения с помощью проводника Windows, они копируют нормально, но даже после этого ошибка 50 все равно регистрируется для тех же мест. Ошибка, похоже, связана с папкой, а не с конкретными файлами.
Я использую следующие параметры robocopy.
robocopy D:\local\folder \\QNAP\share\example folder /e /zb /fft /DCOPY:DA /COPY:DAT /r:0 /w:0 /XJ /XD RECYCLER .TemporaryItems /XF Thumbs.db ~* ._* *.inf .DS_Store /log+:D:\backuplog.txt /NFL /NDL
Я изо всех сил пытаюсь найти какую-либо информацию об ошибке 50 с точки зрения robocopy. Похоже, ошибка 50 связана с SMB. Похоже, что некоторые атрибуты или свойства этих конкретных папок не могут быть записаны в каталог QNAP. Я попытался удалить "А" (атрибуты) из /COPY
переключатель, но это не помогло.
Мне удалось найти проблему. Похоже, это связано с тем, что общий ресурс QNAP не может обрабатывать определенные свойства / атрибуты папок безопасности этих папок. По умолчанию COPY
и DCOPY
значения:
/COPY:DAT /DCOPY:DA
Я предполагаю /E
flag устанавливает их по умолчанию.
Атрибуты действительно кажутся проблемой, но в дополнение к этому DCOPY
параметр также требует настройки.
/COPY:DT /DCOPY:T
Затем это исправляет ошибку robocopy 50, и папки, которые ранее выдавали ошибки, теперь могут быть правильно записаны в место назначения вместе с файлами внутри.
Странно, что это только начало появляться для относительно новых созданных папок, но, тем не менее, похоже, что это связано с атрибутами / свойствами. У нас есть смесь клиентов Windows / macOS, пишущих в источник, поэтому вполне могут быть конкретные метаданные macOS за этими каталогами, которые отбрасывают robocopy.
Если вам нужен доступ к сетевым ресурсам из задач планировщика задач, вам необходимо убедиться, что учетная запись пользователя имеет правильные привилегии для доступа к ресурсу.
Чтобы задача работала постоянно, выберите Run whether user is logged on or not
и введите учетную запись пользователя + пароль для доступа к общему сетевому ресурсу. Не проверять Do not store password...
.
Ввод в заблуждение с запланированными задачами в Windows заключается в том, что когда вы запускаете их вручную, они всегда выполняются в контексте вашего текущего пользователя, независимо от того, что вы их настраиваете. Для тестирования вам необходимо временно настроить триггер в следующие минуты и запустить задачу автоматически.