Powershell スクリプトを使用してデータベースのバックアップを行う SQL 2008 ジョブがあります。SQL ジョブの各ステップは「オペレーティング システム (CmdExec)」タイプです。各ステップで、SQL バックアップなどを実行する PowerShell スクリプトが開始されます。そのスクリプトはリモート サーバー上に存在するため、変更が必要な場合でも 1 回で済みます。
Powershell 実行ポリシーを「バイパス」に設定すると、SQL ジョブが機能します。しかし、「リモート署名」に設定すると、実行ポリシーが正しく設定されていないと言って失敗します。ただし、CMD ウィンドウからスクリプトを開始すると、正しく実行されます。サーバーは 64 ビットなので、32 ビット シェルと 64 ビット シェルの両方で実行ポリシーが「remotesigned」に設定されていることを確認しました。また、リモート サーバーの UNC パスを IE で信頼できるイントラネット サイトとして設定しています (IE で設定されていない限り、Powershell はローカル UNC パスを http パスのように扱うことがわかりました)。
私が言ったように、実行ポリシーをリモート署名に設定してCMDウィンドウから手動でキックすると正しく実行され、実行ポリシーがバイパスに設定されている場合にSQLジョブがオフになると動作します。SQL から開始され、実行ポリシーが remotesigned に設定されている場合にのみ失敗します。
Powershell 実行ポリシーをバイパスに設定して問題なく 1 年間実行されていますが、現在、その実行ポリシーをリモート署名に設定するように言われています。バイパスのままにしておくことは、もはやオプションではありません。
何かご意見は?