繁体   English   中英

Powershell远程签名策略不适用于SQL Agent Job,但在“手动”运行时有效

[英]Powershell remotesigned policy not working with SQL agent Job, but working if run “manually”

我有一个使用Powershell脚本进行数据库备份的SQL 2008作业。 SQL作业中的每个步骤都是“操作系统(CmdExec)”类型。 每个步骤都将启动执行SQL备份和其他操作的Powershell脚本。 该脚本位于远程服务器上,因此,如果我们需要进行更改,则只需进行一次更改。

如果我将Powershell执行策略设置为“绕过”,则SQL作业将起作用。 但是,如果我将其设置为“远程签名”,则无法说执行策略未正确设置。 但是,如果我从CMD窗口启动脚本,则脚本将正确运行。 服务器是64位的,因此我确保32位和64位Shell的执行策略都设置为“远程签名”。 并且,我将远程服务器UNC路径设置为IE中的受信任Intranet站点(发现Powershell会将本地UNC路径视为http路径,除非在IE中设置了该路径)。

就像我说的那样,如果从CMD窗口中将执行策略设置为远程签名,则手动启动它可以正常运行;如果将执行策略设置为绕过,则在关闭该SQL作业时可以正常运行。 仅当它从SQL启动并且执行策略设置为remotesigned时,它才会失败。

它已经运行了一年,并且Powershell执行策略没有设置为绕过任何问题,但是有人告诉我现在将执行策略设置为remotesigned。 使其不再处于旁路状态。

有什么想法吗?

听起来运行作业所使用的凭据与您的登录凭据不同。

您可能必须更改代理作业用户的权限,以允许Powershell脚本按预期运行。

为了使某些旧版应用程序能够与Powershell一起使用,我发现自己正在编写小的.bat“引导”脚本,其中仅包含powershell.exe C:\\Scripts\\MyScript.ps1

无论如何,这都不是一种创造性,优雅的解决方案,也不是“解决问题”的解决方案,但是,如果该解决方案在CMD上有效,则可以尝试这样做,以使其尽快运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM