在没有用户login的情况下从任务计划程序运行batch file

我试图从任务计划程序在Windows 7上运行batch file。 如果从命令提示符运行它,我可以运行batch file。

如果我从“任务计划程序”运行它以仅在用户login时运行,则任务将运行而不会出现任何问题。 但是,当用户未login时运行时,Task Scheduler看起来像正在运行该文件,但没有任何反应。

我已经尝试将batch file更改为除了下面的行之外,以确保它不是因为batch file中的内容:

echo "success" >> c:\temp\test.log 

这不起作用。 有任何想法吗? 我已经用最高权限运行,并且具有对batch file和文件所在文件夹具有完全权限的pipe理员帐户。

任务调度程序:调度的批处理脚本不运行

任务计划程序属性。

从Windows Task Scheduler的作业Properties (见底部最屏幕截图)中。 。 。

  • 1. General选项卡,确保select/选中下列选项或取消选中,如打印屏幕A所示

    • 取消选中 Run only when user is logged on
    • 检查 Run whether user is logged on or not
    • 选中 Run with the highest privileges
  • 2.“ Conditions选项卡中,确保如下所示select选中取消选中以下选项,如“ 打印屏幕B”中所示

    • 检查 Wake the computer to run this task
  • 3. Actions选项卡,单击Edit ,并确保Start in (optional)设置如下面的示例中所示( 不要在其周围使用双引号)为完整path指向批处理脚本所在的位置没有最后反斜杠“ \打印屏幕C


安全考虑

  • 一旦你按了OK2.上面),它应该提示你input凭证来运行这个凭证,这个凭证是需要访问EXECUTEbatch file的地方,而且它也需要访问batch file正在运行,你脚本了。

  • 最好为此进程设置一个静态服务/代理用户帐户,然后使用其凭据运行进程。 您需要确保其密码是强大的,并且设置为永不过期,并且需要访问EXECUTE批处理,并运行批处理脚本进程正在运行的任何命令和资源等。 它也被利用。

  • 看起来选项Run whether user is logged on or not你必须检查选项Run with highest privileges ,以实际上运行按预期从任务计划程序。

错误检查

  • 如果实际的批处理脚本存在问题,但是Windows 任务计划程序实际上执行它来运行它,但批处理脚本逻辑错误等出于某种原因, Task Scheduler可能在此级别看不到此故障。 从它的angular度来看(大多数情况下默认情况下),只要它能够执行batch file并有权访问,就可以执行batch file。

  • 添加错误检查logging到批处理脚本逻辑,以捕获 (或排除 )此级别的问题,包括确保批处理调度程序执行的安全上下文具有对批处理脚本运行的命令,资源等的适当访问。


组策略注意事项

检查组策略并将其作为批处理作业权限login

答: 在Windows上,通过本地域安全策略授予此权限。 要使用本地安全策略执行此操作,请按照下列步骤操作。

  1. 控制面板中 ,打开pipe理工具 ,然后打开本地安全策略。
  2. 安全设置下 ,打开本地策略并突出显示用户权限分配
  3. find作为批处理作业login 。 打开属性并添加任何需要此权限的用户。
  4. 完成后, 保存更改并closures“ 本地安全设置”窗口。

您的更改应立即生效。 要更改域安全策略,请在域控制器上使用“ 控制面板”中域安全策略实用程序


具有映射驱动器的批处理脚本逻辑或完整的UNCpath,以及问题。 。 。

如果您的脚本正在引用映射的networking驱动器,但是您希望它Run whether the user is logged on or not ,则在此上下文中,驱动器映射可能实际上并不存在,以便批处理执行所期望的操作。

如果可能,请在批处理脚本逻辑中使用UNCpath,而不要使用映射驱动器号来避免问题。 否则,您可能需要在批处理开始时使用PUSHD \\ServerName\ShareName ,然后在批处理结束时使用POPD 。 您可以在批处理开始时使用NET USE X: \\ServerName\ShareName映射驱动器,然后在批处理结束时使用NET USE X: /DELETE断开驱动器。

  • NET USE
  • PUSHD
  • POPD

其他

  • MS HOTFIX(KB977353):组策略立即任务首选项不能在运行Windows 7或Windows Server 2008 R2的客户端计算机上运行

  • 查看计划任务的Settings选项卡以及Stop the task if it runs longer than:的选项。 如果选中此选项并且时间段小于正在运行的脚本,则任务计划程序将提前终止,因此您可能无法获得预期的结果。 为了以防万一,在进行故障排除时,这是另外一件事。

    在这里输入图像描述

  • 当您selectEdit选项时,从计划任务的“ Triggers选项卡中,确保设置Start:时间和date是一个尚未通过的值。 确保这个date和时间设置为未来的价值。 否则,您可能会注意到,该工作表明它将按照您预期在下一个计划的时间运行; 但是,它不会被任务计划程序执行, 任务计划 程序 History选项卡也不会显示它曾经被执行(因为它不是)。 只需编辑触发器,并使用未来的date和/或时间对其进行更新,以便在遇到此问题时解决此问题。

    在这里输入图像描述


打印屏幕

打印屏幕

在这里输入图像描述

打印屏幕B

在这里输入图像描述

打印屏幕

在这里输入图像描述