Windows Server 2008计划任务仅适用于“仅在用户login时运行”

我有一个计划任务设置为运行R脚本通过启动Rscript.exe和感兴趣的文件。

当我使用该选项运行它时,此任务成功完成

“仅在用户login时运行”。

我需要安排任务运行没有我,所以我检查了选项:

“运行用户是否login”

并给了我的密码。

我需要testing这个,因此点击“运行”只看它立即失败,结果

为0x1

在脚本运行时有一个由R创build的日志文件,但是在创build日志之前,计划的任务明显失败。

我发现这个资源 ,说当任务不能成功运行时,“是否用户login”选项被选中。

考虑到这一点,我宁愿安排将来运行几分钟的任务。 在启动Rscript之前,该任务再次以0x1运行结果失败,从而创build一个日志。

我重复了这个过程并且重复了几次,结果每次都是一样的。

当我看到任务的属性时,我发现在1秒的时间内,它到达了“Action Completed”步骤,返回一个非零的返回码,失败的操作码为“(2)”。

在这里输入图像说明

任务定义是:

Action: Start a program Program/script: cmd Add arguments: /c E:/PROGRA~1/R/R-33~1.1/bin/Rscript.exe T://code//Forecast.R >> T://code//Forecast.log 2>&1 

您需要具有“作为批处理作业login”的安全权限才能以用户身份运行任务。

pipe理工具 – >本地安全策略 – >本地策略 – >用户权限分配 – >作为批处理作业login。

我确定在事件查看器中,您将看到logintypes为4(批处理作业)的login尝试失败的安全事件。

我终于得到这个工作。

看来它经过了一些小小的改变,我不能确定哪一个是必要的,但这是我做的:

  1. 将所有文件(包括R脚本本身及其调用的.jar文件)从networking驱动器移到本地驱动器

  2. 遵循@Christopher_G_Lewis关于安全的build议,虽然我98%确定我的pipe理用户组已经给了我权限

  3. select“运行用户是否login”,并确保不select“以最高权限运行”(这是我一直在打开和closures的东西)

  4. 设置第一个计划运行时间,以开始过去

  5. 检查所有的文件和文件夹的权限,以确保他们是非常自由的,不会妨碍

  6. 为了确保所有locking的文件,警告消息等都不会停止执行(尽pipe我认为这可能是不必要的,因为之前的运行和日志文件指示没有错误try()为我的脚本添加了很多error handling语句( try() ) )