Почему моя запланированная задача завершается с ошибкой (0x4)
У меня запланированное задание, которое должно запускать командный файл. Пакетные файлы запускают файл при вызове самостоятельно, но не запускаются при переносе в запланированное задание.
Вот как выглядит диалог:
4 ответа
В моем случае решение заключалось в замене подключенного диска на полный путь. Так что вместо:
XCOPY C:\DATA Z:\
(где Z - это диск \\SERVER\DATA$
)
Я изменился на:
XCOPY C:\DATA \\SERVER\DATA$
Я запускаю задачу от имени администратора, и она работает как шарм.
Это предположение. Но высокий возможен. Выполнение.bat или.cmd действительно подразумевает выполнение cmd.exe. В Windows по некоторым (я думаю, из соображений безопасности) cmd.exe исполняем только для интерактивного пользователя. Так что это может быть выполнено только когда пользователь вошел в систему локально.
Дайте некоторой группе право на выполнение cmd.exe в качестве запланированной задачи и назначьте пользователя, от которого выполняется эта задача, в эту группу.
Мне удалось обойти это, используя комбинацию утилиты Robocopy (для более надежного ведения журнала и обработки ошибок) и команды NET USE.
NET USE B: \\remote-machine\location RemotePassword /user:remote-machine\RemoteUserName
robocopy.exe B:\ D:\backups /NP /LOG+:D:\robocopy\robocopy.log /R:10 /W:5
Этот скрипт сопоставляет удаленное местоположение с сетевым диском B: используя указанные имя пользователя и пароль для удаленного компьютера.
Затем Robocopy копирует содержимое папки в сетевой папке в папку D:\backups. Это также позволит записать данные в указанный файл журнала robocopy, чтобы вы могли увидеть, сколько файлов было скопировано и т. Д.
Если вы пытаетесь скопировать эти папки в общий сетевой ресурс, он не будет работать, потому что запланированная задача запускается как "Система". Если это так, вы должны указать, для какого пользователя задание запускается от имени.