Исправить запланированную задачу, которая не запускается для файла .BAT

Если у вас есть файл .BAT и вы пытаетесь запустить его автоматически с помощью планировщика заданий(Task Scheduler) в Windows , возможно, вы столкнулись с проблемой, когда он просто не запускается, если вы не запустите задачу вручную.

Я создал пакетный файл, который удаляет все содержимое временной папки при каждом запуске компьютера. Я создал базовую задачу в планировщике заданий(Task Scheduler) и надеялся на лучшее. К сожалению, ничего не произошло, когда мой компьютер загрузился. После долгих проб и ошибок я понял, как запустить скрипт.

В этой статье я расскажу вам о настройках и разрешениях, которые необходимо настроить, чтобы ваш пакетный файл запускался без ручного вмешательства.

Шаг 1. Проверьте права доступа File/Folder

Первый шаг к устранению этой проблемы — убедиться, что учетная запись, которую вы используете для запуска сценария в планировщике заданий(Task Scheduler) , имеет разрешения на полный(Full Control) доступ к папке, содержащей сценарий, самому сценарию и любым папкам/файлам, которые затрагивает сценарий при запуске.

Например, я создал следующий пакетный скрипт ниже:

set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Я сохранил файл .BAT в папку «Мои документы». Путь C:\Users\username\Documents . Я пошел в C:\Users\имя пользователя, щелкнул правой кнопкой мыши папку « Документы » и выбрал « (Documents)Свойства(Properties) » . Затем я нажал на вкладку « Безопасность ».(Security)

Как видите, учетная запись пользователя Asem(Aseem) была явно добавлена ​​и получила разрешение на полный(Full Control) доступ. Теперь вам нужно сделать то же самое для папки, содержащей сценарий, и для самого сценария. Не думайте, что если вы дадите разрешения на папку, содержащую сценарий, вы можете идти, потому что это не так. Наконец, установите разрешения для любых файлов и папок, с которыми будет взаимодействовать скрипт.

В моем случае мне пришлось перейти в C:\test , щелкнуть правой кнопкой мыши по этой папке и добавить туда свою учетную запись пользователя с разрешениями «Полный(Full Control) доступ» . Это немного раздражает, что вам приходится это делать, но это единственный способ заставить скрипт работать.

Примечание. Учетная запись, используемая для запуска сценария, должна входить в локальную группу администраторов на компьютере. В моем случае учетная запись Asem является учетной записью администратора и, следовательно, частью локальной группы администраторов. (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

Шаг 2. Проверьте настройки планировщика заданий(Task Scheduler Settings)

Теперь давайте зайдем в Планировщик заданий(Task Scheduler) и изменим там соответствующие настройки. Откройте планировщик заданий(Task Scheduler) и найдите свою задачу в разделе « Активные задачи( Active Tasks) ». Они должны быть перечислены в алфавитном порядке.

Дважды щелкните по нему, и задание откроется само по себе в том же окне. Чтобы отредактировать задачу, вам нужно щелкнуть по ней правой кнопкой мыши и выбрать « Свойства(Properties) » .

Есть несколько вкладок, и здесь нужно проверить и изменить несколько вещей. Во-первых, на вкладке « Общие(General) » вам нужно проверить учетную запись пользователя, которая используется для запуска задачи. В моем случае это учетная запись Asem(Aseem) , которой я дал разрешения ранее в файловой системе и которая является частью группы администраторов(Administrators) на компьютере.

Затем вам нужно выбрать параметр « Выполнять независимо от того, вошел ли пользователь в систему или нет( Run whether user is logged on or not) » и выбрать Windows Vista, Windows Server 2008 в поле « Настроить для(Configure for) ».

На вкладке « Действия(Actions) » вы должны выбрать сценарий, нажать « Изменить(Edit) », а затем добавить путь к папке, содержащей сценарий, в поле « Начать в» (необязательно)(e Start in (optional)) . Это может показаться ненужным, но это не так. В моем случае я C:\Users\Aseem\Documents\ в поле.

Теперь нажмите OK , чтобы сохранить настройки. При этом может появиться диалоговое окно, в котором необходимо ввести пароль для учетной записи пользователя, которая будет запускать задачу. Отсюда вытекает еще одно требование. Вы не можете использовать учетную запись без пароля. Учетная запись пользователя должна иметь пароль для запуска задачи.

Наконец, вы должны запустить задачу вручную один раз в планировщике задач(Task Scheduler) , чтобы убедиться, что она выполняется. Если он работает нормально вручную после того, как вы изменили все настройки, то он должен работать, когда он должен быть запущен. В моем случае это должно было произойти при запуске, и после того, как я внес изменения, все заработало нормально.

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

Еще один момент, на который следует обратить внимание, — это доступ вашего скрипта к ресурсам на сетевом ресурсе. Если ваш скрипт использует буквы для доступа к сети, он может не запуститься. Например, вместо использования F:\data\ в сценарии следует использовать \\machinename\share_name\data\ . Если вы по-прежнему не можете запустить свой сценарий, оставьте комментарий здесь, и я постараюсь помочь. Наслаждаться!



About the author

Я инженер-программист с более чем 10-летним опытом работы с Apple iOS и периферийными устройствами. Мой опыт в разработке аппаратного обеспечения заставляет меня стремиться к тому, чтобы устройства наших клиентов были максимально надежными и плавными. Последние несколько лет я пишу код и научился использовать Git, Vim и Node.js.



Related posts