“拒绝访问”本质是权限链中断,需逐层排查:一查任务是否勾选“以最高权限运行”;二查运行账户是否属管理员组且具“作为批处理作业登录”权;三查SYSTEM对事件日志是否有写入权限;四查脚本工作目录及目标路径权限是否匹配。
任务计划程序提示“拒绝访问”,本质是权限链中某个环节被阻断。不是单纯点几下就能解决,得顺着执行路径一层层查:谁在运行、在哪运行、用什么身份、有没有对应权限。下面分四类常见堵点,直接对应操作。
检查任务是否配置了“以最高权限运行”
很多任务失败,就卡在这一项没勾。即使你用管理员账号创建任务,不勾这个选项,它默认还是以标准用户权限启动,根本碰不到系统级资源。
- 打开任务计划程序,找到出问题的任务,右键→属性
- 切换到“常规”选项卡,确认已勾选“使用最高权限运行”
- 如果任务是为普通用户设计的(比如触发脚本写日志),这一步必须做,否则后续所有权限调整都白搭
验证运行账户是否具备必要权限
任务指定的账户,必须同时满足两个条件:属于本地管理员组,且被赋予“作为批处理作业登录”的权利。缺一不可。
- 按 Win+R,输入 gpedit.msc 打开组策略编辑器
- 导航至:计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配
- 双击“作为批处理作业登录”,把任务所用的用户或用户组(如 Users、Administrators)加进去
- 同样检查该账户是否在“本地管理员组”中——右键“此电脑”→管理→本地用户和组→组→Administrators,确认账户已加入
确认 SYSTEM 帐户对系统事件日志有写入权
任务计划程序服务本身由 NT AUTHORITY\SYSTEM 运行。如果它连系统日志都写不了,服务会直接报错“错误5:访问被拒绝”,甚至无法启动。
- 按 Win+R,输入 regedit,定位到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\System\CustomSD - 双击右侧的 CustomSD 值,查看 SDDL 字符串中是否包含:
(A;;0xf0007;;;SY)(SY 就是 SYSTEM 的缩写,0xf0007 表示读/写/清除权限) - 如果没有,手动添加该段并保存;若整个值为空或被删,可还原为默认值:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)
排查脚本自身运行环境权限
任务能启动,但脚本报“拒绝访问”,大概率是脚本在 C:\Windows\System32 下执行,却试图往其他目录写文件——而当前工作目录没设对,权限自然不匹配。
- 编辑任务的“操作”→“起始于”字段,明确填写脚本所在目录的绝对路径(例如:D:\Scripts\)
- 不要留空,也不要写成相对路径;留空时默认是 System32,普通脚本几乎不可能有那里写入权限
- 如果脚本要写日志或生成临时文件,确保目标目录对运行账户开放了“修改”权限(右键文件夹→属性→安全→编辑→添加账户→勾选“修改”)

















