我正在尝试安排作业以使用Windows 10任务计划程序运行批处理文件,但它会返回代码2147942401.
批处理文件位于远程位置,因此我给出了绝对路径
" \\ server1 \ file传输\ data files \ inbound \ abc \ csv \ excel-to-csv.bat"
批处理脚本是将excel转换为文件到csv。
脚本的内容是:
FOR /f "delims=" %%i IN ("\\server1\file transfers\Data Files\Inbound\abc\CSV\*.xlsx" ) DO to-csv.vbs "\\server1\file transfers\Data Files\Inbound\abc\*.xlsx" "%%~ni.csv"
它调用另一个VB脚本to-cvs.vbs
如果我在@Steinspecht提到的Action选项卡中进行了更改(任务调度程序 - 任务已成功完成,退出代码为0x8007001),那么我也得到代码2147942401 Not sure whether Add a arguments is written correct
答案 0 :(得分:4)
任务计划程序的错误代码在msdn列为十六进制,您的代码2147942401转换为十六进制为0x80070001(未在此处列出),但this superuser将其描述为“非法函数” ”。他通过使用“最简单的任务调度程序设置并现在可以正常工作”来解决他的问题。我注意到他只在用户登录时运行他的任务,因此他不需要“以批处理作业登录”。
如果要在未登录时运行批处理作业,则需要一个名为“以批处理作业登录”的特殊权限。请注意,还有一个“DENY登录作为批处理作业”权限,您不需要。
从Social Technet,您可以使用
分配该权限您的任务调用网络资源。这些powershell scripters建议将这些资源带到您的本地计算机,以消除任何网络/连接/权限问题。
答案 1 :(得分:2)
在此处引发错误操作"powershell.exe" with return code 2147942401
的另一个常见原因。如果您的操作参数不正确,您还将收到此错误消息。
检查动作参数参数和参数值的间距是否正确。
很好的例子:
-executionpolicy bypass -file "C:\Scripts\ImportFiles.ps1"
残破的示例(“ file”参数与其值之间没有空格):
-executionpolicy bypass -file"C:\Scripts\ImportFiles.ps1"
答案 2 :(得分:1)
即使所有任务计划程序设置,权限等均正确,此错误代码也可能由实际Powershell脚本中的错误/错误引起。就我而言,我引用的目录不存在。
答案 3 :(得分:0)
M Herbener的回答导致我尝试手动运行脚本,以查看脚本是否有错误。它没有,但是当我收到错误消息时它确实突出了问题所在:
[我的脚本]无法加载,因为此系统上禁用了正在运行的脚本。
当然,解决方案是运行Set-ExecutionPolicy以允许Powershell脚本运行。
答案 4 :(得分:0)
我知道一个老问题,但在Windows 2016服务器上却收到2147942401错误。
如果查看计划的任务属性,则在“常规”选项卡的底部,默认情况下将其配置为:Windows Vista,Windows Server 2008。
更改为Windows Server 2016,问题已解决。
答案 5 :(得分:0)
对我来说,该任务有时会起作用,有时却不会。根据“计划任务历史记录”,如果失败,则好像已运行40秒钟,什么也不做,并完成了action "C:\windows\SYSTEM32\cmd.exe" with return code 2147942401
。
在这种情况下,组策略设置毫无意义,因为有时它会会起作用,但并非每次都能起作用。
简化,重新创建,重新配置任务无法解决问题(请参见https://superuser.com/questions/1172540/task-scheduler-task-completed-successfully-with-exit-code-0x8007001)。
我也考虑过批处理我的批处理文件并摆脱标准的输出重定向,从而放弃了日志记录功能(并且变得盲目)。或者只是运行一个实际的.exe进程,而不是根本不使用批处理文件。这本来可以解决的。
我还考虑过用服务替换“启动时”计划的任务,这对于这样一个小问题来说是一个相当昂贵的实验。
最终,我考虑在计划的任务上添加延迟,并希望将任务配置为延迟的服务-服务可以是“自动”或“自动(延迟启动)”。对于“在启动时”计划的任务,它是具有单独属性的触发器,包括添加延迟的功能:
我认为有时我的计划任务要提前几毫秒开始,并且某些OS服务或功能尚不可用或不允许。只需在触发器上添加一个小的延迟即可解决问题。