以编程方式在Windows中创建计划任务 - 0x8004130f错误

时间:2009-01-25 12:05:34

标签: scheduled-tasks

我遇到运行计划任务的主要问题。使用Microsoft提供的ITaskScheduler接口可以很好地创建任务。该任务设置为仅在用户登录时运行。

问题是任务没有运行,日志文件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有一个“计划任务数据库”,需要为每个任务提供凭据信息才能运行。

有谁知道如何修改此凭据数据库或任何其他方式来运行我的任务?

3 个答案:

答案 0 :(得分:24)

GoogleUpdateTaskMachine任务使用“NT AUTHORITY \ SYSTEM”来运行任务。您可以使用schtasks命令和带有“System”或“”作为参数的/ ru开关来完成此操作。像这样:

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

它不会提示输入密码。

有关详细信息,请参阅technet

答案 1 :(得分:9)

您可以使用批处理脚本。

schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2
你去吧。

阅读:How to use Schtasks.exe to Schedule Tasks in Windows Server 2003

答案 2 :(得分:2)

据我所知,文档支持这一点,计划任务需要一个帐户。如果将任务设置为仅在用户登录时运行,仅表示不需要密码,则仍需要帐户。此帐户可以设置为一个组,以便只要该组中的任何人登录,该任务将在触发时运行。例如,您可以将帐户设置为“用户”,以便任何人登录时都可以运行该任务。