Назад | Перейти на главную страницу

Ошибка XCOPY доступ запрещен в папке Мои документы

Вот такая ситуация. У нас есть файловый сервер, настроенный в \ fileserver \, у которого есть папка для каждого пользователя в \ fileserver \ users \ first.last

Я запускаю команду xcopy для резервного копирования папки «Мои документы» со своего компьютера в их личную папку. Я выполняю следующую команду:

xcopy "C:\Users\%username%\My Documents\*" "\\fileserver\users\%username%\My Documents" /D /E /O /Y /I

Я незаметно запускал этот скрипт при входе в систему без ведома пользователей, чтобы я мог заставить его работать, прежде чем рассказывать им, что он делает. После того, как я обнаружил, что это не работает, я вручную запустил пакетный сценарий, который выполняет команду xcopy на одном из их компьютеров и получает ошибку отказа в доступе. Затем я вошел в тестовую учетную запись на своем компьютере и получил ту же ошибку.

Я проверил все разрешения для общего ресурса и безопасности, и они настроены так, как я хочу. Я могу вручную перейти к этой папке и создать новые файлы. Я могу перетаскивать элементы в папку \ fileserver \ users \ first.last, и это отлично работает.

Поэтому я пробую что-то еще, чтобы попытаться найти источник проблемы отказа в доступе. Я запустил команду xcopy, чтобы скопировать папку «Мои документы» в другое место на том же компьютере, но все равно получил ошибку отказа в доступе!

Таким образом, xcopy, похоже, лишен доступа, когда он пытается скопировать папку Мои документы.

Любые предложения о том, как я могу заставить это работать? Кто-нибудь знает причину ошибки отказа в доступе?

Давайте разберемся с этим.

Вы хотите скопировать папку «Мои документы» и все ее содержимое в какое-то место. Groovy.

Однако перенаправление папок (/ автономные файлы) через групповую политику - это не то, что вы собираетесь делать. Справедливо; это не для всех.

Но в ваш сценарий встроено множество предположений, и, вероятно, есть более простые способы сделать это.

Вместо этого вы могли:

Xcopy /S /Y "%USERPROFILE%\Documents" "\\server\%username%\Documents"

На моей очень-очень ванильной установке попытка этого просто сработала.

Есть и другие переменные, которые тоже могут быть полезны.

Далее: когда запускается скрипт? Если это вход в систему, он должен работать от имени пользователя, но вы можете обнаружить нарушения совместного доступа, если что-то также открывается или используется в это время.

Наконец, вы сможете запустить эту команду, не требуя SeBackupPrivilege; похоже, что у вас нет разрешений, которые, как вы думаете, у вас есть для этой учетной записи.

Да, и при запуске в сценарии входа в систему или при запуске вы можете оказаться в «коробочке», что снижает ваши эффективные разрешения и скорость.

Во-первых, возможно, это из-за лишнего '\ *' в первом аргументе xcopy.

Опять же, использование документов может помочь, потому что «Мои документы» - это просто точка пересечения с «Документами», только для обратной совместимости с некоторыми ограничениями, например вы не можете в нем участвовать.

Я подозреваю, что это / O - у пользователей, вероятно, нет прав на изменение списков управления доступом NTFS на целевой машине.

Пытаться Documents вместо того My Documents на вашем пути.

Попробуйте запустить xcopy из командной строки с повышенными привилегиями. т.е. щелкните правой кнопкой мыши> Запуск от имени администратора.

Ответ представляет собой комбинацию нескольких полученных ответов, и вот она.

В команде копирования это должно быть Документы а не Мои документы.

Используя / O аргумент убивал его. Я подозреваю, что проблема заключается в том, как объяснил Саймон, в том, что у пользователей нет прав на изменение списков ACL на цели.

Изменение этих двух пунктов заставило команду работать.

Папка "Документы и настройки" доставляла мне проблемы. Файл ntuser.dat недоступен во время использования. Поэтому я добавил .dat в новую строку в моем файле "exclude.txt", и у меня это работает. Итак, xcopy c: *. Xls i: \ xlsfiles / e / c / y /exclude:exclude.txt
(exclude.txt - это файл с ... 5 строками со строками сопоставления папок или строками сопоставления имени файла с cr lf)