在基于 Windows Server 2003 的计算机上运行批处理作业时,访问被拒绝
09/25/2020
本文内容
本文提供对在基于 Microsoft Windows (Server 2003 的计算机上) 运行批处理作业时 Access 被拒绝的问题的解决方案。
适用于: WindowsServer 2003
原始 KB 编号: 867466
症状
当您运行在常规用户帐户上下文中运行的批处理作业时,脚本可能不会运行。 如果使用"计划任务"功能运行批处理作业,则"计划任务"中可能会记录以下日志文件 (Schedlgu.txt) :
0x80070005:访问被拒绝。
如果使用调试程序程序尝试确定批处理作业不起作用的原因,则调试输出中可能会显示以下错误消息:
访问被拒绝 (错误 5)
原因
如果满足以下所有条件,则会出现此问题:
您可以在基于 Windows Server 2003 的成员服务器上运行批处理作业。
批处理作业作为非交互进程运行。
批处理作业配置为在帐户(该帐户不是 管理员组)的上下文中运行。
在 Windows Server 2003 中,Users 组没有对命令处理器服务器的读取和执行 (Cmd.exe) 。 默认情况下,Cmd.exe程序具有以下权限设置:
交互式隐式组和服务隐式组具有读取和执行权限。
备注
在成员服务器上,TelnetClients 组还具有读取和执行权限。 在域控制器上,批处理隐式组还具有读取和执行权限。
the 管理员组 and the System implicit group have Full Control permissions.
若要解决此问题,请使用以下任一方法。
解决方案 1:Cmd.exe读取和执行权限
授予Cmd.exe运行批处理作业的用户帐户的读取和执行权限。 为此,请按照下列步骤操作:
单击 "开始",然后单击 "Windows资源管理器"。
找到并右键单击Cmd.exe文件。 the Cmd.exe file is located in the %windir%\System32 folder.
单击“属性”。
单击“安全”选项卡。
单击“添加”。
在" 输入要选择的对象 名称"框中,键入运行批处理作业的用户名,然后单击" 确定" 两次。
备注
添加用户时,将自动向该用户授予读取和执行权限。
当 系统 提示您继续时,单击"是"。
解决方案 2:将文件读取和执行权限授予Cmd.exe批处理组
向 Batch 组授予Cmd.exe读取和执行权限。 这允许所有批处理进程运行命令处理器。 为此,请按照下列步骤操作:
单击 "开始",然后单击 "Windows资源管理器"。
找到并右键单击"Cmd.exe"文件。 the Cmd.exe file is located in the %windir%\System32 folder.
单击“属性”。
单击“安全”选项卡。
单击“添加”。
在" 输入要选择的对象名称"框中 ,键入 Batch,然后单击 "确定" 两次。
当 系统 提示您继续时,单击"是"。
更多信息
本文中介绍的行为不同于 Microsoft Windows 2000 Server 的默认行为。 默认情况下,Windows 2000 Server 向 Users 组授予读取权限和执行权限。
有关隐式组的信息,请访问以下 Microsoft 网站: