Программное создание запланированной задачи в Windows - ошибка 0x8004130f

У меня возникают серьезные проблемы с запуском запланированной задачи. Задача создается с использованием интерфейса ITaskScheduler, предоставленного Microsoft. Задача запускается только в том случае, если пользователь вошел в систему.

Проблема заключается в том, что задача НЕ запускается, а файл журнала SchedLgU.txt ссылается на следующую причину:

"The attempt to retrieve account information for the specified task failed; therefore, the task did not run. Either an error occurred, or no account information existed for the task.

The specific error is:

0x8004130f: No account information could be found in the Task Scheduler security database for the task indicated."

Я знаю, что запланированную задачу можно создать без учетной записи, потому что запланированная задача Google Updater делает это, и она работает нормально.

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

Кто-нибудь знает, как изменить эту учетную базу или любой другой способ запустить мою задачу?

Ответы

Ответ 1

Задача GoogleUpdateTaskMachine использует "NT AUTHORITY\SYSTEM" для запуска задачи. Вы можете сделать это, используя команду schtasks и переключатель /ru с параметром "System" или "". Вот так:

schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc monthly /d 15 /ru "System"

Он не запрашивает пароль.

Подробнее см. technet.

Ответ 3

Насколько я знаю, и документация подтверждает это, для запланированной задачи требуется учетная запись. Если задание запускается только при входе пользователя в систему, это означает, что пароль не нужен, вам все равно нужна учетная запись. Эта учетная запись может быть установлена ​​в группу, чтобы задача выполнялась при ее запуске до тех пор, пока кто-либо из группы вошел в систему. Например, вы можете настроить учетную запись на "Пользователи", чтобы задача могла выполняться, когда кто-либо вошел в систему.