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

BAT-файл не будет запускаться из планировщика заданий, но будет запускаться из командной строки

Я пытаюсь запустить сценарий BAT из планировщика задач в Windows 2008 R2, и он выполняется в течение 3 секунд, а затем останавливается.

Он говорит, что успешно завершен, но я знаю, что это не так.

Я могу запустить этот сценарий напрямую из командной строки, и он работает нормально.

Запущенный мной файл bat на самом деле удаляет файлы старше 7 дней с помощью «forfiles», затем я подключаю сетевой диск, перемещаю файлы по сети с помощью robocopy, а затем закрываю сетевое соединение.

Я удалил параметры сети и копирования из файла, и он по-прежнему делает то же самое. Вот как выглядит мой файл:

rem This will delete the files from BBLEARN_stats
forfiles -p "E:\BB_Maintenance_Data\DB_Backups\BBLEARN_stats" -m *.* -d -17 -c "cmd /c del @file"

rem This will delete the files from BBLEARN_cms_doc
forfiles -p "E:\BB_Maintenance_Data\DB_Backups\BBLEARN_cms_doc" -m *.* -d -14 -c "cmd /c del @path"

rem This will delete the files from BBLEARN_admin
forfiles -p "E:\BB_Maintenance_Data\DB_Backups\BBLEARN_admin" -m *.* -d -10 -c "cmd /c del @path"

rem This will delete the files from BBLEARN_cms
forfiles -p "E:\BB_Maintenance_Data\DB_Backups\BBLEARN_cms" -m *.* -d -10 -c "cmd /c del @path"

rem This will delete the files from attendance_bb
forfiles -p "E:\BB_Maintenance_Data\DB_Backups\attendance_bb" -m *.* -d -10 -c "cmd /c del @path"

rem This will delete the files from BBLearn
forfiles -p "E:\BB_Maintenance_Data\DB_Backups\BBLEARN" -m *.* -d -18 -c "cmd /c del @path"

rem This will delete the files from Logs
forfiles -p "E:\BB_Maintenance_Data\logs" -m *.* -d -10 -c "cmd /c del @path"

NET USE Z: \\10.20.102.225\coursebackups\BB_DB_Backups /user:cie oly2008

ROBOCOPY E:\BB_Maintenance_Data Z: /e /XO /FFT /PURGE /NP /LOG:BB_DB_Backups.txt

openfiles /disconnect /id *

NET USE Z: /delete /y

Это происходит на 2 серверах при попытке запустить команды из BAT-файла.

Другой сервер выдает ошибку, если (0xFFFFFFFF), но этот файл запускает CALL C:\dir\dir\file.bat -options и я использовал подобные команды раньше в Server 2003.

Вот файл для этого файла:

call C:\blackboard\apps\content-exchange\bin\batch_ImportExport.bat -f backup_batch_file.txt -l 1 -t archive

NET USE Z: \\10.20.102.225\coursebackups\BB_Course_Backups /user:cie oly2008

ROBOCOPY E:\ Z: /move /e /LOG+:BB_Move_Course_Backups.txt

openfiles /disconnect /id *

NET USE Z: /delete /y

Если командные файлы не могут выполняться как запланированная задача, но нормально работают в интерактивном режиме, это, скорее всего, связано с проблемой безопасности / разрешений. Учетная запись SYSTEM / LocalSystem, которая часто используется для запуска запланированных задач, обычно не имеет разрешений на доступ, например, к каким-либо сетевым ресурсам.

Каков контекст безопасности вашей запланированной задачи? Вы можете попробовать временно изменить его на что-то более привилегированное (например, учетную запись администратора домена) в качестве проверки гипотезы.

Если он работает, вам следует создать новую учетную запись со сложным паролем и достаточными привилегиями для использования с задачами. Пароль учетной записи сохраняется вместе с запланированной задачей - используя отдельную учетную запись, вы следуете хорошей практике безопасности и предотвращаете неудачные запуски задачи при изменении пароля администратора.