当前位置: 首页 > 知识库问答 >
问题:

窗口任务计划程序报告不正确/不一致的结果代码

杨乐
2023-03-14

背景:我正在尝试在计划任务失败时收到电子邮件通知。我的任务可以通过退出代码(错误级别)指示失败,我想使用它并按照本答案中描述的过滤器方法来触发电子邮件。

问题:我在不同的计算机和版本的 Windows 上从任务计划程序收到不一致的行为。为了进行测试,我使用以下非常简单的任务。

  • 仅在用户登录时运行。(其中“用户”是当前用户)
  • 要执行的操作: 启动一个程序
    • 程序/脚本: 厘米
    • 参数: /c “退出 /b 1”
    • 开始时间:空白

    我已经启用了任务历史记录,当我在Windows 7 Ultimate和Windows Server 2008 R2 Enterprise上手动运行任务时,会在类别“操作完成”中创建一个正确的历史记录项,如下所示:

    任务计划程序已成功完成任务“\测试”,实例“{ abcdefgh-fab 0-4a 21-b51a-e 25 baaa 0000 }”,操作“C:\Windows\system32\cmd。返回代码为1。

    上次运行结果列中的文本对应于此:< code>(0x1)。

    但是,在Windows Server 2012(Azure VM)上运行时,会出现以下错误消息:

    任务计划程序已成功完成任务“\test”,实例“{abcdefgh-fab0-4a21-b51a-e25bbbbb1111}”,操作“C:\Windows\system32\cmd.EXE”,返回代码为 0。

    (强调我的。)然而,“最后运行结果”列中的文本为:错误函数:(0x80070001)。这表明至少部分任务计划处理器识别出某种程度的错误条件。如果我将参数替换为/c“退出 /b0”,则此列为:操作成功完成。(0x0)

    我已经尝试了用户上下文、“start in”目录、参数(有和没有/b)和“配置:”下的不同操作系统的各种值组合,但都没有用。

    问:如何让 Windows 2012 计算机上的任务计划程序在历史记录项中显示正确的返回代码?

    解决方法:虽然我仍然想理解这种奇怪的行为(也许它表明了一些更严重的问题/误解),但我通过在任务脚本中添加以下内容来解决我的原始问题:

    $objMailMessage = New-Object System.Net.Mail.MailMessage
    $objMailMessage.From = "username@gmail.com"
    $objMailMessage.To.Add("recipient@example.com")
    $objMailMessage.Subject = "The task failed."
    #$objMailMessage.Body = "Detailed information."
    
    $smtp = new-object Net.Mail.SmtpClient("smtp.gmail.com", 587)
    $smtp.EnableSsl = $true
    $smtp.Credentials = new-object Net.NetworkCredential("username@gmail.com","pass")
    $smtp.send($objMailMessage)
    

共有1个答案

甄正信
2023-03-14

我在服务器2012上看到了类似的问题,批处理文件看起来成功,在事件日志中显示返回值为0,但上次运行结果为0x80070001。

我看到MSFT有一个适用于服务器2012的修补程序,可以解决此问题:

http://support.microsoft.com/kb/3003689

 类似资料:
  • 我使用Flink SQL计算基于事件时间的窗口分析。在我的数据源每天晚上空闲之前,一切都正常工作,之后直到第二天数据再次开始流动时才产生最后一分钟的结果。 我已尝试将<code>设置为table.exec.source。空闲超时,但没有帮助。我能做什么?

  • 问题内容: 我正在尝试使用ZGEEV计算特征值和特征向量,但是在以不同的优化级别使用时,输出不正确且不一致也有些麻烦。以下是我的Fortran代码,结果为-O1和-O2优化级别。我还提供了Python代码进行比较。 我只能假设我打错了电话,但是我无法确定如何打电话。我相信我的LAPACK安装不太可能出现问题,因为我已经比较了Windows和Linux上两台不同计算机上的输出。 Fortran代码:

  • 我使用任务调度程序运行一个.bat文件,对文件进行压缩和加密,并在夜间将文件备份到外部驱动器。我已经用了很多年了,效果很好。从几个月前开始,任务调度程序中的任务被禁用,我不知道为什么。我可以启用它,它将再次运行,但在同一天或第二天再次禁用。然后我注意到,不仅是这个任务,其他计划任务(我没有写)也在同时被禁用。像谷歌软件更新这样的东西也被禁用了。 我一直在查看任务历史记录,以了解任务何时被禁用,并且

  • 我在我的Windows 2008 R2服务器上使用任务计划程序创建了一个任务。它会打开一个. bat文件。这个bat没有错误,工作正常。如果我开始任务(即单击运行),它会执行bat文件。从现在开始,它应该每隔x分钟重复一次(目前设置为1分钟),但它没有。我尝试了很多,几乎改变了每个属性,但它仍然不会重复执行我的bat文件。 我已经阅读了不同的问题和答案,但没有任何效果。 有人知道我做错了什么吗?

  • 我已经创建了一个控制台应用程序,并尝试在任务计划程序中运行。当我通过单击可执行文件或使用快捷方式运行它时,它工作正常,但当我在任务调度程序中运行它时,我得到“PHLIP231 Prod的应用程序访问路径' C:\WINDOWS\DMBErrors '被拒绝。” 我已经在我的应用程序中搜索了此路径,甚至尝试手动将路径添加到我的计算机,但没有成功。我的应用程序构建了一个excel文件并将其写入相对于可

  • 我用两种方法对一个项目进行了声纳分析 > 作为maven的目标,使用(Java1.8)和(java 1.6) 两次扫描都产生了两份不同的报告。我不知道为什么会这样。 下面是我的开发环境配置 Maven: 3.0.5声纳方块: 3.0.1声纳转轮: 2.4日食:开普勒Java: 1.6