Windows Server 2008 R2(已全面修补)
我正在尝试运行一项计划任务,将特定类型的文件从 C:\Windows\Temp 移动到 E:\Foo_blah_blah_blah_blah\Foo2,但由于某种原因,出现以下错误:
任务计划程序无法为用户“FOOBOX\Administrator”启动“\Move Temp Files”任务的实例“{fe0f148a-cece-44a0-a4d1-914aaf21daa8}”。附加数据:错误值:2147942402
知道为什么会发生这种情况吗?
额外细节:
- 该任务配置为以具有移动文件权限的帐户运行。
- 该任务配置为无论用户是否登录都运行。两种情况下都会失败 - 错误相同。
- 该任务配置为在本地操作系统(Windows Server 2008)上运行
- 该命令分为两部分。程序/脚本:
move
添加参数:C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\
move C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\
如果我从 Windows 命令提示符运行相同的命令,它可以正常工作。
我错过了什么?
答案1
正如 Ryan Ries 指出的那样,2147942402 翻译为“文件未找到”——这是一个非常合适的回应。尝试按下 Win+R,输入“移动”并按回车键——这就是您的任务未能完成的交互等效内容。
原因是MOVE
不是一个程序,而是一个本机命令cmd
。
它应该是:
程序:"cmd.exe"
参数:"/c move C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\"
答案2
原因是:任务配置为在不再安排运行时删除。这在“设置”选项卡中配置。任务的删除是在触发任务的触发器的到期时间完成的。如果触发器的到期时间与触发器的开始时间完全相同,则可能会(偶然)发生任务在其触发器触发前几秒钟被删除的情况。这会导致事件 101,原因代码为 2147942402。解决方案是将触发器的到期时间设置为比触发器的开始时间晚 1 分钟。
答案3
使用 Powershell,在命令中指定完整路径,例如 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
答案4
Matthias 发布的答案帮助我解决了我的问题。
我把整个命令行、路径和参数都放在了“程序”字段中;我没有注意到有一个单独的“参数”输入字段。当我把参数分开并单独输入时,我的计划任务运行得非常顺利。
诊断:操作系统正在寻找一个调用的程序,"C:\bin\someprog.BAT connect keep"
而不是寻找"C:\bin\someprog.BAT"
并使用参数调用该程序connect keep
。
我的错误,现已修复。