Запустите исполняемый файл из планировщика задач НЕ в фоновом режиме W7

641
JD Gamboa

Я создал скрипт Autoit, который открывает определенное приложение и работает с определенным поведением. Когда я его компилирую, Autoit выдает исполняемый файл. Если я запускаю его, он работает нормально и плавно.

Теперь мне нужно запустить его ночью, поэтому я добавил его в планировщик заданий Windows.

Это не бежало.

Я решил наблюдать за процессом, изменив время выполнения, и, когда наступает время запуска, иногда (и ТОЛЬКО иногда) значок выскакивает в трее, но в любом случае ничего не происходит: окно не открывается и поэтому процесс не запускается ,

Я попытался изменить «запускать только когда пользователь вошел в систему» ​​и использовать разные учетные записи, но, похоже, он работает неправильно.

Некоторые поиски в Интернете говорят мне, что обычно эти задачи выполняются в фоновом режиме, поэтому окна на самом деле не открываются. Ну, тогда я должен сделать противоположное этому.

Любая помощь приветствуется.

3
Весьма вероятно, что ваш сценарий является виновником такого поведения. Это пакет? dmb 6 лет назад 0
@dmb, нет, сэр. Это файл .exe, сгенерированный AutoIt. JD Gamboa 6 лет назад 0
Затем вам нужно проверить ваши настройки в TaskScheduler. В соответствующем меню для таков выберите «Запускать с самыми высокими привилегиями», установите флажок «Выполнить, если пользователь не вошел в систему» ​​и введите пароль, снимите флажок «Скрытый». Установите триггер в триггерах. Кратко рассмотрим условия. В настройках разрешить «Выполнять по требованию». Наконец, я бы посоветовал выполнить ваш AutoIt из пакета для регистрации ошибок с помощью `C: \ path \ to \ AutoIt.exe> ​​errorlog.txt 2> & 1` dmb 6 лет назад 1
@PimpJuiceIT Я попробовал ваш первый ответ (тот, который ссылается на изображения), и он, кажется, работает. Ранее я пытался проверить «запустить с наивысшими привилегиями», поэтому я предполагаю, что «запуск в» сделал существенную разницу. Пожалуйста, отправьте его как ответ, чтобы квалифицировать его как таковой. Я не пробовал ваш второй ответ или последний ответ dmb, но я верю, что они хорошо послужат другим людям. JD Gamboa 6 лет назад 0

1 ответ на вопрос

1
Pimp Juice IT

Я на самом деле запускаю скомпилированный скрипт AutoIT через Task Scheduler, который делает что-то похожее, как вы описали, и единственные настройки, необходимые в Task Scheduler :

  1. На вкладке Общие проверьте Run only when use is logged onи Run with highest privileges. Учетная запись, которую вы используете для запуска задания, выполняющего исполняемый файл, должна иметь разрешение на выполнение файла, в котором он находится. Чтобы проверить эти разрешения, это не проблема, просто войдите в систему как этот пользователь, а затем дважды щелкните исполняемый файл и подтвердите, что у вас есть разрешение на его запуск таким образом.

    i.imgur.com/rdCry0f.png

  2. Из области действия «Действие» убедитесь, что Program/scriptполе указывает на полный явный путь, где находится исполняемый файл. Также убедитесь, что в Start inполе указан полный путь к исполняемому файлу, но только путь. Если у вас есть этот набор, а также подтверждение того, что у пользователя, запускающего процесс, есть разрешение на это, он должен работать так, как ожидается.

    i.imgur.com/k8c1QLy.png,


Дополнительные ресурсы

  • Проверьте «некоторые» подробности в « Windows 10: Запланированные задачи с блокировкой / разблокировкой рабочей станции, не инициируемой », если это применимо, и вы хотите перепроверить только применимые параметры.

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