我遇到了以下问题。我们的 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 安全日志。过滤日志以仅显示审核失败,然后搜索您上次尝试运行计划任务的时间。