Sql server SQL Server代理作业无法在代理帐户下运行CmdExec步骤
我当前正在尝试运行SQL Server代理作业,该作业在特定域帐户下执行Sql server SQL Server代理作业无法在代理帐户下运行CmdExec步骤,sql-server,proxy,sql-server-2008-r2,sql-server-2012,sql-server-agent,Sql Server,Proxy,Sql Server 2008 R2,Sql Server 2012,Sql Server Agent,我当前正在尝试运行SQL Server代理作业,该作业在特定域帐户下执行CmdExec作业步骤。我们对作业进行了设置,以便在部署时设置以下内容: 使用正确的密码创建凭证DOMAIN\CustomUser 创建SQL Server代理代理DOMAIN\CustomUser 授予对域\CustomUser代理的操作系统(CmdExec)子系统的访问权限 创建由sa拥有的SQL Server代理作业 CmdExec上述作业中的作业步骤,该作业在DOMAIN\CustomUser代理帐户下运行 作业已在
CmdExec
作业步骤。我们对作业进行了设置,以便在部署时设置以下内容:
DOMAIN\CustomUser
DOMAIN\CustomUser
域\CustomUser
代理的操作系统(CmdExec)
子系统的访问权限sa拥有的SQL Server代理作业
CmdExec
上述作业中的作业步骤,该作业在DOMAIN\CustomUser
代理帐户下运行- 作业在此环境下对所有计算机都能正确运行
DOMAIN\serviceCount
运行。DOMAIN\servicecomport
是SQL Server中的一个sysadmin
,位于计算机上的administrators
组中。
- 作业在此环境中的两台计算机上出现两条不同的错误消息失败
为什么我会得到三个不同的结果(两次失败,一次成功)?脚本化作业在我们所有的机器上都是逐位(简称作业ID)相同的,但它完全无法在环境2中运行。作业过程中的某个地方调用了局部变量吗? 如果是这样,这可能是MS KB2968540的Windows 6.2“功能”。Server2008按设计工作;服务器2012转发已损坏。建议的解决方法是偶然的。如果这是您的问题,那么运行ProcMon跟踪应该允许您查看在不正确的上下文下运行的内容 在我的商店里,我们要做的是将代理作业切换到计划任务,并从批处理文件中显式声明USERPROFILE和APPDATA变量。在代理作业中设置这些内容会很好,但运行CMDEXEC作业的代理处理事情的方式似乎与CMD不同
MS在服务器2012中打破了很多向后兼容性;祝您好运。任务计划程序可用于计划和执行作业(运行SSIS包)。将文件保存在桌面上的.bat中,并使用任务计划程序计划自动运行作业:
“D:\ARMSTEE\ssipackage\gianticweeklyupload_1.dtsx”
dtexec/f“D:\ARMSTEE\ssipackage\gianticweeklyupload_1.dtsx”
这样做更快更容易。我花了一段时间才找到它,所以才找到了wonna share。当您有权限问题时可以使用此选项,尤其是 我在这里列出了SSSCE要点:。这适用于我在环境1和我的开发机器上(我使用代理服务的
LocalSystem
),但不适用于其他两个环境。不,我们没有使用任何使用环境变量的东西。正如在最初的SSSCE中所看到的,该示例甚至使用了非常简单的配置。从那以后,我们不知何故修复了它,但是修复的细节已经丢失。我不建议在桌面上使用.bat文件,任何人都可以意外地删除它,从而破坏计划。这并不能解决问题。事实上,这几乎是完全无关的,因为问题在于CmdExec作业步骤。然而,使用任务调度器是一种合理的解决方法。就@davejal而言,当使用不同的帐户运行任务时,确保设置文件权限以防止意外事故和恶意篡改总是很重要的。