在 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 中以编程方式复制、重命名和粘贴文件的最佳方法