Я намагаюся встановити завдання розкладу, щоб запустити exe рівно один раз на день. Я спробував таке:
Тригер щодня 4:00 ранку, "виконати завдання якнайшвидше після пропуску запланованого запуску"
Цей підхід чудово працює, якщо у мене не встановлено пароль у моєму обліковому записі, і в цьому випадку Windows завантажується безпосередньо на робочий стіл - після короткої затримки завдання запускається.
Коли я додав пароль до свого облікового запису, завдання більше не виконується. В історії завдань я бачу, як заносяться попередження:
Планувальник завдань не запустив завдання "X", оскільки користувач "Y" не входив у систему, коли були виконані умови запуску. Дія користувача: переконайтесь, що користувач увійшов або змінив визначення завдання, щоб дозволити запуск, коли користувач вийшов із системи.
Це здається дурним попередженням - у розділі "Параметри безпеки" вибрано "Запустити лише тоді, коли користувач увійшов". Чому Планувальник завдань намагається запустити завдання до входу користувача?
Запуск щодня 4:00 ранку та "увійти в систему", запустіть якомога швидше
Такий підхід не мав того ефекту, який я задумав, тобто я хотів, щоб обидві умови були істинними, тобто якщо "після 4:00 ранку щодня" є істинним, а "увійти" - істинним, то запустіть завдання; і для кожної наступної події "увійти" в цей день "після 4:00 щодня" не буде правдою, тому вона буде чекати наступного дня. На жаль, це не так, як працює Планувальник завдань, і при такому підході завдання виконується після кожного входу.
Запустити, чи користувач увійшов чи ні
Я не можу використовувати цей підхід, тому що exe, який я намагаюся запустити, іноді вимагає введення користувача, коли він закінчений. Загалом, існує ціла низка причин, з яких можна не використовувати цю опцію.
Інші варіанти
У царині відчайдушних обхідних шляхів я розглядаю можливість написання пакетного сценарію, який випише у файл і зможе виявити, чи був він викликаний раніше.
Напевно, повинен бути кращий спосіб досягти цього, здавалося б, звичайного і простого випадку планування використання?
VersionBackup_20160201.txt
а якщо його НЕ існує, створіть його, а потім запустіть додаток. Якщо вона існує, то НЕ запускайте VersionBackup.exe і не закривайте. Таким чином ви забезпечуєте за день, наприклад, <YYYYMMDD>, що він запускається лише один раз і створює цей файл безпосередньо перед його запуском. Якщо ви інтестовані, у мене є приклад логіки сценарію, який я додам як відповідь, якщо ви думаєте, що це потенційно може бути рішенням, яке ви могли б використати або, принаймні, протестувати?