You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server Agent访问远程计算机服务遭拒,请求解决方案

解决SQL Agent作业调用远程BAT访问被拒绝的配置方案

核心原因

手动运行BAT时使用的是当前登录用户的权限(该用户已具备远程访问权限),而SQL Agent作业默认使用SQL Server Agent服务账号(通常是Local System,无网络访问权限)或指定的代理账号,这些账号缺少访问远程共享目录及远程服务器服务的权限,导致“访问被拒绝”。

需要修改的配置项

1. 调整SQL Server Agent服务登录账号

  • 打开services.msc,找到SQL Server Agent服务,右键选择「属性」→「登录」选项卡。
  • 将默认的Local System账号替换为域账号(推荐),或与远程服务器本地账号同名同密码的本地账号:
    • 域账号需具备:
      • SQL本地服务器的登录权限,且属于SQL Server Agent Operators角色;
      • 远程服务器共享目录的共享权限(至少「读取」)和NTFS权限(至少「读取&执行」);
      • 远程服务器的远程服务访问权限(加入远程服务器的Remote Management Users组,或通过本地安全策略授予「从网络访问此计算机」权限)。

2. 配置远程服务器共享与权限

  • 远程服务器的目标共享目录:
    • 在「共享权限」中添加SQL Agent服务账号,授予「读取」权限;
    • 在「NTFS权限」中添加该账号,授予「读取&执行」、「读取」权限。
  • 确保远程服务器未限制该账号的网络访问:打开「本地安全策略」→「本地策略」→「用户权利指派」,确认账号在「从网络访问此计算机」列表中,且不在「拒绝从网络访问此计算机」列表。

3. 开启远程服务器的必要服务与防火墙规则

  • 远程服务器需启动以下服务:
    • Remote Registry(部分服务检查依赖注册表访问);
    • Windows Management Instrumentation(若BAT使用WMI查询服务状态)。
  • 防火墙配置:
    • 允许Windows Management Instrumentation (WMI)入站规则;
    • 开放文件共享端口(135、445)及远程服务控制所需端口。

4. 配置WMI远程访问权限(若BAT依赖WMI)

  • 在远程服务器打开「WMI控制」(运行wmimgmt.msc),右键选择「属性」→「安全」选项卡。
  • 展开Root\CIMV2节点,添加SQL Agent服务账号,授予「Enable Account」和「Remote Enable」权限。

5. 检查SQL Agent代理账号(若作业使用代理)

  • 若作业通过代理账号执行cmdexec步骤:
    • 在SSMS中展开「SQL Server Agent」→「代理」→「代理账号」,确认代理账号关联了cmdexec子系统;
    • 确保该代理账号具备上述所有权限(共享访问、远程服务访问、WMI权限)。

验证步骤

  • 使用SQL Agent的目标账号(服务账号或代理账号)登录SQL所在服务器,手动执行BAT文件,确认可正常访问远程服务;
  • 或用runas命令测试权限:
    runas /user:DOMAIN\TargetAccount "cmd /c \\RemoteServer\SharePath\check_service.bat"
    

内容的提问来源于stack exchange,提问作者Dan Goodwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:58:11