【问题标题】:Batch file called by scheduled task throws error when scheduled, runs fine when double clicked计划任务调用的批处理文件在计划时抛出错误,双击时运行正常
【发布时间】:2012-08-31 08:59:38
【问题描述】:

我有一个映射网络驱动器的批处理文件。大约一周前密码过期了,所以调用批处理文件的程序开始抛出错误。

我已经更新了批处理文件中的密码,当我双击批处理文件时,驱动器映射正常。但是,当计划任务开始时,我收到以下错误:

Logon failure: unknown user name or bad password.

有人见过这个吗?我已经尝试重新创建计划任务,但它似乎没有任何区别。

编辑

我已经更新了计划任务的属性,这不是问题。问题似乎是批处理文件中的用户名和密码。奇怪的是,如果我以交互方式登录并双击可执行文件,一切正常。

作业上次运行时抛出“信号量超时期限已过期”错误。我以前从未见过这个特定的错误,但似乎它实际上已登录并在发生这种情况时尝试复制文件。

编辑

我已经修改了我的代码,使其尽可能简单。我正在使用批处理文件来映射驱动器,然后使用代码来传输文件。我仍然遇到同样的问题 - 当我双击批处理文件时它工作正常,但是一旦我将调度程序放入图片中,它就会抛出“错误的用户名或无效密码”错误。

有时,当我尝试通过双击文件来运行该文件时,我会收到“找不到路径的一部分”错误。这对我说驱动器映射确实有效,但是在尝试复制时出现了故障。 (大多数情况下,通过双击进行测试可以正常工作)

【问题讨论】:

    标签: windows batch-file scheduled-tasks drive-mapping


    【解决方案1】:

    创建任务时与任务关联的用户名和密码不再有效或已更改。 这通常发生在创建任务并忘记选择不存储密码的选项时。当您的密码设置为过期时,每次您必须重置密码时都会遇到此问题。确保按照图片上的方式进行操作:

    【讨论】:

    • 我遇到了同样的问题,但这与用户名/密码不正确无关。他们和以前一样。我已经多次重新创建任务。这只是一个尝试dir \\unc\path 的简单金丝雀应用程序。我可以直接从cmd.exe 访问,但不能通过计划任务执行。
    • @wsams 我建议你使用命令行模式来调度你的任务,根据我的经验,它比任务调度器更好。
    【解决方案2】:

    听起来与计划任务关联的用户名和/或密码不再正确。批处理文件可能没问题,你只需要更改计划任务的属性即可。

    【讨论】:

    • 我已经重新创建了任务,所以我们会看看这是否是问题所在。任务执行良好 - 任务调用一个程序,该程序又调用批处理文件。也许凭据被缓存或由调度程序缓存?我们会看到它今晚什么时候运行。
    【解决方案3】:

    我在测试我们编写的用于创建计划任务以备份到一个或多个网络位置的新 powershell 脚本时遇到了类似的情况。我不得不经历多次迭代,当我从两个网络位置减少到一个时,计划任务停止工作,调用脚本中的各个步骤给出“登录失败:未知用户名或密码错误”错误,尽管当我复制了参数并从它们工作的命令行运行它们。

    在阅读了这个问题和蒂姆的评论后,我尝试删除计划任务并重新创建它。之后它起作用了。我同意计划任务可能缓存了一些东西。

    【讨论】:

      【解决方案4】:

      来自: https://danblee.com/log-on-as-batch-job-rights-for-task-scheduler/

      转到“开始”菜单。 跑步。 键入 secpol.msc 并按 Enter。 本地安全策略管理器打开。 转到安全设置 - 本地策略 - 用户权限分配节点。 双击右侧的作为批处理作业登录。 单击添加用户或组... 选择用户并单击“确定”。

      【讨论】:

        猜你喜欢
        • 2013-03-01
        • 1970-01-01
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 2015-04-22
        • 2014-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多