我有一个使用 Powershell 脚本进行数据库备份的 SQL 2008 作业。SQL 作业中的每个步骤都是“操作系统(CmdExec)”类型。每个步骤都会启动一个执行 SQL 备份和其他操作的 powershell 脚本。该脚本位于远程服务器上,因此如果我们需要进行更改,我们只需进行一次。
如果我将 Powershell 执行策略设置为“绕过”,则 SQL 作业可以工作。但是,如果我将其设置为“远程签名”,则无法说明执行策略设置不正确。但是,如果我从 CMD 窗口启动脚本,它会正确运行。服务器是 64 位的,所以我确保 32 位和 64 位 shell 的执行策略都设置为“远程签名”。而且,我在 IE 中将远程服务器 UNC 路径设置为受信任的 Intranet 站点(发现 Powershell 将本地 UNC 路径视为 http 路径,除非在 IE 中设置)。
就像我说的,它运行正确,如果从 CMD 窗口中手动启动,并且执行策略设置为远程签名,并且如果执行策略设置为绕过,则如果 SQL 作业启动,则它可以正常运行。仅当它从 SQL 启动并且执行策略设置为远程签名时才会失败。
它已经运行了一年,没有将 Powershell 执行策略设置为绕过的问题,但我被告知现在将该执行策略设置为远程签名。将其保持在旁路不再是一种选择。
有什么想法吗?