Запуск .BAT файла в планировщике заданий — что следует учитывать
Многие пользователи Windows однажды приходят к использованию планировщика заданий для автоматизации тех или иных действий. Несмотря на то, что создание заданий и настройка условий их выполнения — не слишком сложная задача, иногда возникают сложности, например, при использовании BAT-файлов с набором команд в планировщике заданий.
В этом материале подробно о том, как решить возможные проблемы при запуске сценариев BAT в планировщике заданий Windows 11/10 и других версий и что следует учитывать, если что-то работает не так, как ожидается.
Особенности запуска .BAT файлов в планировщике заданий
В базовом сценарии пользователь, желающий добавить выполнение BAT файла в планировщике заданий, запускает его (Win+R — taskschd.msc) нажимает «Создать задачу», при необходимости включает выполнение с наивысшими правами и от нужного пользователя, устанавливает триггеры и прописывает путь к файлу сценария BAT на вкладке «Действия».
При этом в некоторых случаях этого может быть достаточно и всё работает исправно, но иногда возникают проблемы, которые можно описать как: BAT исправно работает при запуске вручную или из cmd, но не через планировщик заданий.
Часто работающее быстрое решение проблемы в такой ситуации (работает во многих случаях) — при создании действия использовать не путь к файлу .BAT в поле «Программа или сценарий», а следующий подход:
- Указать cmd.exe в поле «Программа или сценарий»
- В поле «Добавить аргументы» прописать
/c start "" "путь_к_файлу.bat"
Однако и этого может быть недостаточно для исправной работы, всё зависит от конкретного сценария. Причина — некоторые особенности выполнения BAT (и других заданий) через планировщик:
- По умолчанию рабочая папка выполняемого задания —
%SystemRoot%\System32
независимо от того, где располагается сам файл .BAT. Вы можете изменить рабочую папку создавая действие в Планировщике, либо использовать абсолютные пути в командах вместо относительных. - При конфигурации задания следует учитывать права учетной записи, из-под которой выполняется задание (настраивается в разделе «Параметры безопасности» на вкладке «Общие»). Локальный администратор или учетная запись «Система» может не иметь доступ к сетевым расположениям, учетная запись обычного пользователя — к системным папкам и папкам других пользователей. Кроме этого, если BAT файл получает дату и время, их формат также будет определяться учётной записью.
- Если BAT-файл обращается к переменным среды пользователя, их список и значения также будут зависеть от того, под какой учётной записью выполняется задание.
- Часто при попытке получить доступ к сетевому расположению из BAT-файла, выполняемого через планировщик заданий возникают ошибки. Решение — выполнить подключение к сетевому расположению прямо в BAT (в примере монтируется как X:):
%SystemRoot%\System32\net.exe use X: \\ИмяКомпьютера\ИмяОбщейПапки пароль /user:Домен\Учетная_запись
по завершении задания при необходимости отключить расположение используйте команду:%SystemRoot%\System32\net.exe use X: /delete /yes
Для большинства заданий работает либо запуск с использованием cmd.exe, как было описано выше, либо указание рабочей папки.
Ещё несколько нюансов, которые следует учитывать:
- Путь к рабочей папке не следует брать в кавычки. По некоторым отзывам, поведение также может зависеть от наличия/отсутствия закрывающего слэша в пути к рабочей папке. Также может иметь смысл выполнить переход к нужной рабочей папке в самом сценарии:
cd диск:\путь\к\папке
- Задания могут не выполняться при питании от батареи, если не изменить соответствующие настройки на вкладке «Условия».
- Не забывайте выбирать нужного пользователя на вкладке «Общие», а если требуются права администратора — включать отметку «Выполнять с наивысшими правами» на той же вкладке.
- В некоторых случаях задания, где включено «выполнять для всех пользователей» могут работать неправильно. Проверьте, работает ли задание если изменить параметры безопасности на «Выполнять только для пользователей, вошедших в систему».
Если у вас не работает что-то в части запуска .BAT файлов в Планировщике заданий, вы можете описать ситуация в комментариях ниже, постараемся разобраться.