Windows Server 2012 R2 任务计划程序访问被拒绝(0x80070005),但命令在 shell 中手动运行

Windows Server 2012 R2 任务计划程序访问被拒绝(0x80070005),但命令在 shell 中手动运行

我遇到了以下问题。我们的 Windows Server 2012 R2 上有一个计划任务,它调用一个批处理文件,而批处理文件又调用 vb 脚本。

这些脚本只是下载 5 张图片并将它们存储到指定名称的文件夹中。如果我直接通过命令行调用该脚本,它会运行良好,但使用调度程序我会得到以下信息。

它将文件保存在脚本所在的同一分区中。只是保存在用户也有权访问的另一个文件夹中,因为他被添加到了管理员组。

Event Information: Event-ID: 201  ResultCode 2147943645 successfully completed

ResultCode 似乎与以下访问被拒绝消息相匹配。

Result of the last execution: Access denied 0x80070005

我的研究引导我尝试一些配置更改。

  • 以最高权限运行计划中的任务 -> 同样的错误

  • 更改 %windir%/system32/cmd.exe 的安全性 -> 用户已在管理员组中

  • 从开始中删除“-> 没有任何内容,同时添加脚本所在的文件夹也不会改变任何东西

提前感谢您对此问题的任何提示、疑问和信息。

答案1

我认为应该检查任务安全上下文您的预定任务。

您在任务中存储了用户的密码吗?

该错误可能是由于缺乏网络访问引起的。

答案2

您很可能需要向用于运行计划任务的服务帐户授予“作为批处理作业登录”系统权限。

(您没有使用自己的个人凭据运行计划任务,对吗?)

来自TechNet的描述:

允许用户通过批处理队列工具登录。例如,当用户通过任务调度程序提交作业时,任务调度程序会将该用户作为批处理用户而不是交互式用户登录。

默认情况下,只有 LocalSystem 帐户才有权限作为批处理作业登录。

可以在域 GPO 或本地 GPO 中设置,均位于以下位置:

Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment

要确认“拒绝访问”故障的来源,您应该检查事件查看器中的 Windows 安全日志。过滤日志以仅显示审核失败,然后搜索您上次尝试运行计划任务的时间。

相关内容