Ошибка 5 (доступ запрещен) копирование файлов - скрипт, который когда-то работал, загадочным образом остановился
Я сбит с толку.
Я уже несколько лет без проблем запускаю скрипт robocopy на своем компьютере с Windows XP. В последнее время иногда происходил сбой с ошибкой 5 - доступ запрещен.
Мой сценарий представляет собой командный файл с несколькими экземплярами robocopy, указывающими на различные папки. Вот пример одной строки, которая, как я знаю, дает сбой (я думаю, что она единственная, но она первая в списке, поэтому я не уверен на 100%) - все они идентичны, за исключением путей
robocopy "P:\Program Files" "z:\robobackup\Program Drive\Program Files" /purge /e /it /ts /fp /tee /w:1 /log:Z:\robolog_ProgramFiles.txt
(Я устанавливаю все свои программы на диск P вместо Windows по умолчанию. Я подозреваю, что проблема из-за этого, за исключением того, что один из файлов, который терпит неудачу, является моим собственным скриптом резервного копирования, поэтому я знаю, что он не был установлен или имеет какой-либо странные разрешения.)
Я недавно установил новый резервный диск, но больше ничего не изменилось. Вот что я сделал:
- Установил новый диск, отформатировал его в админке XP. Установить букву диска для моей старой резервной буквы (Z)
- Запустил мой сценарий. Это длилось более суток без каких-либо проблем, но я устал ждать робокопии. Прерванное резервное копирование.
- Я клонировал свой старый резервный диск на новый диск с помощью SeaTools для DOS.
В этот момент все, казалось, все еще работало нормально. Robocopy обнаружил все те же файлы по старому пути и скопировал только измененные файлы, как это всегда делается. Я был счастлив.
Вот команда, которую я использую:
robocopy "P:\Program Files" "z:\robobackup\Program Drive\Program Files" /purge /e /it /ts /fp /tee /w:1 /log:Z:\robolog_ProgramFiles.txt
ЗАТЕМ...
Я решил добавить строку в командный файл, чтобы скопировать мою общую сетевую папку данных (старая коробка win2K) на мой новый резервный диск.
Я добавил следующее в качестве первой строки в мой скрипт:
robocopy "\\calypso\shared folder" "z:\robobackup\calypso" /purge /e /it /ts /fp /tee /w:1 /log:Z:\robolog_Calypso.txt
Это просто не удалось. Я не помню ошибки, но так как я никогда не использовал robocopy для копирования из сети, я понял, что неправильно понял синтаксис. Затем я сопоставил папку с Y и повторил попытку:
robocopy "Y:\shared folder" "z:\robobackup\calypso" /purge /e /it /ts /fp /tee /w:1 /log:Z:\robolog_Calypso.txt
Я снова запустил свой скрипт, и он отлично скопировал папку Y, но когда он попробовал диск P, он начал выдавать мне ошибки отказа в доступе. Теперь он будет выдавать ошибки, которые кажутся случайными, за исключением того, что, как только файл выходит из строя, он каждый раз выдает ошибку в этом файле **. В качестве теста я изменил путь резервного копирования ("Программный диск 2" вместо "Программный диск") и даже диск, на который нужно выполнить резервное копирование, чтобы исключить возможные проблемы с новым диском. ** Когда я изменил путь к резервной копии, файл, который, возможно, потерпел неудачу прежде, больше не потерпел неудачу, но тогда он потерпит неудачу в другом файле.
Если я удалю ссылку на диск P, она, кажется, будет работать нормально, но я не могу быть уверен, потому что я не редактировал файлы на своих дисках с момента запуска этого процесса.
Я прочитал все сообщения об ошибках Robocopy 5, которые я мог найти в Google, но не помог. Я запускаю его под учетной записью администратора (та же учетная запись, что и всегда), и я являюсь владельцем всех файлов (возможно, что некоторые файлы в старой сетевой папке Y2K принадлежат кому-то другому с коробкой Win7.)
У кого-нибудь есть блестящие идеи? Я схожу с ума от этого в течение трех дней.
Спасибо!
* Обновленная информация * Я скачал программу под названием "Fastcopy", чтобы посмотреть, сработает ли она - это не сработало. Так что это не ограничивается робокопией. Я смог скопировать папку с XCOPY без каких-либо проблем.
Все, о чем я могу думать, это то, что доступ к этому сетевому диску как-то изменил некоторые настройки разрешений, либо моего администратора, либо некоторых файлов. Я попытался запросить папку P:\Program Files (даже через нее уже сказали, что я владелец) - все еще проблема.
1 ответ
Вы можете использовать /B
(резервное копирование), чтобы скопировать также те файлы, которые дают доступ запрещен.