Планировщик задач Windows не запускает задачу пакетного файла
У меня есть командный файл с приведенным ниже кодом, чтобы остановить и запустить службу SQL Report:
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
Я установил запланированную задачу для ежедневной работы, в настоящее время она запускается как SYSTEM с установленными самыми высокими привилегиями. Я установил параметр start в папке в действии, и все, как правило, настроено правильно. Но когда я запускаю задачу, ничего не происходит, она говорит, что задача выполнена, но я не могу видеть, что служба была перезапущена, поскольку она предназначена для.
Может ли кто-нибудь направить меня к тому, что мне не хватает? Благодаря
Ответы
Ответ 1
Убедитесь, что вы правильно задали параметры "Начать в" и "Программа/script. Если ваш адрес файла: C:\Temp\foo.bat, установите для параметра" start in "значение" C:\Temp "и" Program/ script "в" foo.bat".
Чтобы установить параметр "Начать в": Задайте задачу правой кнопкой мыши в планировщике задач > Properties > Actions > Edit.
Если это само по себе не работает, попробуйте переместить файл .bat в каталог с базовыми разрешениями (например, для общего каталога).
У меня возникла проблема, когда мой .bat файл находился в папке с некоторыми ограничительными правами на нее, так что только моя учетная запись пользователя могла получить к ней доступ. Несмотря на то, что я настроил планировщик задач на использование моих учетных данных, он все равно не удался. Перемещение файла .bat в другой каталог устранило проблему.
Ответ 2
Потратил много времени на эту глупую проблему!
добавьте команду cd, где ваш пакетный файл находится в первой строке вашего командного файла, и посмотрите, разрешает ли он проблему.
cd D:\wherever\yourBatch\fileIs
СОВЕТ: используйте абсолютные пути, относительные пути в идеале не должны быть проблемой, но планировщику сложно понять их.
Ответ 3
У меня была та же проблема. Я считаю, что это проблема привилегий. Если вы выбрали "Run only when user logged on", это не произойдет.
Вы, наверное, догадались об этом, но я хотел зарегистрировать его здесь для следующего человека, который потратил впустую на это.
Ответ 4
Если у вас такая же проблема, убедитесь, что вы проверяете "Запускать только при входе пользователя", по крайней мере, это то, что заставило мой bat файл снова жить.
Ответ 5
Это довольно старый поток, но проблема остается прежней -
Я пробовал несколько вещей, ни одна из них не работала -
- Добавлен Пуск в пути (без кавычек)
- Удален полный путь к пакетному файлу в программе /Script
поле и т.д.
- Добавлен
C:\Windows\system32\cmd.exe
в программу и добавлен /c
myscript.bat
в поле аргументов.
Это то, что сработало для меня -
Программа/Script Поле - cmd
Добавить аргументы -/c myscript.bat
В начало: Путь к myscript.bat
Ответ 6
Установите 'Программа/ script' → file.bat
set 'Начать в' остальную часть пути (file.bat)
Ответ 7
Решение состоит в том, что вы должны снять флажок (деактивировать): "Запускать только при входе пользователя".
После этого изменения он начнет работать на моей машине.
Ответ 8
Одно из решений - вы можете запустить файл '. bat' с файлом '. vbs', и вы можете запустить этот файл vbs в планировщике окон.
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("cron_jobs.bat"), 0, True
Вы можете сделать это, и я надеюсь, что он исправит вашу проблему.
Ответ 9
Попробуйте выполнить код ниже:
Batchfile.bat:
cd c:\batchfilepath
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
Ответ 10
Для меня проблема вызвана тем, что .bat
включил a cd
в сетевой диск. Это не удалось, а затем более поздний вызов программы на этом сетевом диске ничего не сделал.
Я понял это, добавив > log.txt
в поле Добавить аргументы окна Изменить действие для задачи.
Ответ 11
Для меня это была проблема с запуском. По умолчанию он должен On a Schedule
на вкладке триггера. Я выбрал At log on
, а затем я ожидал выполнения задачи. Как видно из названия при входе в систему, вы должны выйти и войти в систему.
Попробуйте поместить его в расписание и стрелять каждую минуту.
![введите описание изображения здесь]()