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

Posted

技术标签:

【中文标题】在 Windows 中以编程方式创建计划任务 - 0x8004130f 错误【英文标题】:Programmatically Creating a Scheduled Task in Windows - 0x8004130f Error 【发布时间】:2010-10-03 10:04:09 【问题描述】:

我在运行计划任务时遇到了重大问题。使用 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 有一个“计划任务数据库”,它需要为每个任务提供凭据信息才能运行。

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

【问题讨论】:

我发现有人遇到完全相同的问题,他还注意到另一个应用程序可以在没有密码的情况下执行此操作。但是仍然没有答案:codeguru.com/forum/showthread.php?t=355665 【参考方案1】:

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

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

它不会提示输入密码。

请参阅technet 了解更多信息。

【讨论】:

“system”用户没有网络访问权限,我们如何通过网络运行程序?假设程序依赖网络运行? @JimmyObonyoAbor 我很确定“SYSTEM”用户确实具有网络访问权限。会不会是您安排了一项在开机时启动的任务,并且它在 Wi-Fi 完成初始化之前启动?【参考方案2】:

您可以使用批处理脚本。

schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2

你去。

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

【讨论】:

很棒的分享!我很感激!【参考方案3】:

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

【讨论】:

不幸的是,这不起作用。将“Users”设置为密码为空的用户名会导致任务获得“BUILT-IN\Users”的用户名字段。但是,任务无法启动,并出现错误提示用户名或密码无效。 在 Vista 和 Windows 2008 中使用组帐户可以正常工作,但在 XP 或 2003 中可能还没有添加,我不记得它是什么时候添加的。不过,拥有帐户的要求仍然有效。 抱歉,这是随 Vista 一起升级到 Task Scheduler 2.0 的众多新增功能之一。如果您使用的是 XP 或 2003,那么您就不走运了。 是的,我使用的是 XP。谢谢你检查这个,斯蒂芬;我很感激。

以上是关于在 Windows 中以编程方式创建计划任务 - 0x8004130f 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上的 Java 中以编程方式创建 wifi 对等连接? [关闭]

在 Windows 中以编程方式复制、重命名和粘贴文件的最佳方法

在 IIS 10 / Windows Server 2019 中以编程方式回收应用程序池

在 Windows 中以编程方式确定电源使用情况?

如何在 Windows 中以编程方式切换用户

如何在 Windows 8.1 中以编程方式更改当前的 Windows 主题?