使用非pipe理代理的SQL代理Powershell作业失败

我正在尝试创build一个SQL代理作业,它将运行保存在我的系统上的PowerShell脚本。 但是,作业失败,出现以下错误:

作业步骤在PowerShell脚本的第1行收到错误。 相应的行是'g:\ PowerShellShare \ Get-LastDBBackups.ps1'。 纠正脚本并重新安排工作。 PowerShell返回的错误信息是:'AuthorizationManager检查失败。

如果我将代理帐户添加到本地pipe理员,它可以工作,所以它似乎是一个权限问题(使本地pipe理员中的帐户不是我的环境的选项)。

每次运行作业时,Windows安全日志都会显示多个具有事件ID 4656的审核失败,它们都来自试图访问对象的代理帐户:

Object: Object Server: SC Manager Object Type: SERVICE OBJECT 

快速sc sdshow scmanager表明, Authenticated Users应该有权访问scmanager:

 D:(A;;CCLCRPRC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD) 

最令人费解的是,如果我RUNAS服务器上的代理帐户,并运行脚本,它运行得很好。 我尝试通过SQL代理作业运行哪个脚本并不重要,试图执行任何脚本导致相同的行为。 然而,我可以运行其他的PowerShell命令,只是不执行任何脚本。

希望以前有人遇到这个问题,可以指引我正确的方向。

更新:似乎主要的问题是,当我从SQL代理作业执行时,我的代理帐户不是交互式隐式安全组的成员。 看起来,这个组织正在授予代理使用RUNAS进行testing时所需的成功运行任务的权限。 我无法追查这个组允许的所有权限。

我所看到的审计失败是针对WinHttpAutoProxySvcCryptSvc服务的。 我使用sc sdshow和sc sdset来修改这些特定服务的权限,以便Authenticated Users权限与Interactive Users组的权限匹配。 审计失败现在消失了,但是当我执行这个工作时,我仍然在SQL中得到相同的错误信息。

在Powershell中检查执行策略; 听起来可能会失败,因为默认设置是“Restricted”,它只允许Powershell作为交互式shell运行,并且根本不执行脚本。 详细信息请参阅以下链接:

http://technet.microsoft.com/en-us/library/ee176961.aspx

编辑:刚才意识到上面的链接只描述“Set-ExecutionPolicy”的语法; 这个链接还应该提供一些额外的内容:

http://technet.microsoft.com/en-us/library/ee176949.aspx