web-dev-qa-db-ja.com

SQLエージェントからリモートPowerShellスクリプトを実行する

テストSQLサーバージョブは、Powershellスクリプトを実行するとハングします。ログインとPowershellウィンドウを使用して機能しますが、Agentアカウントとジョブを使用しません。 SQL Agentユーザーは、Powershellスクリプトを使用して、ディレクトリに対する読み取り/書き込み/実行権限を持っています。

例:

Run as: SQL Server Agent Service Account

powershell.exe -file \\Server02\test2\Test.ps1

エージェントアカウントにもアクセス権が付与されています。

このテストファイルは現在、非常に基本的な処理を実行します。文字列を表示します。

実行しても、応答しないため、エラーメッセージは表示されません。何が起こっているのか、またはどのセキュリティ設定が欠落しているのかについて何か考えがありますか?

6
PianoDan

上記のコメントでJNKは正しかった。コマンドシェルで実行すると、次のようなプロンプトが表示されました。

セキュリティ警告信頼できるスクリプトのみを実行してください

このメッセージを回避するために、コマンドに-ExecutionPolicy Bypassを追加しました

例:powershell.exe -ExecutionPolicy Bypass -file\Server02\test2\Test.ps1

これでジョブを完了することができます。

4
PianoDan

資格情報を作成し、それをプロキシアカウントで使用する必要があるようです。エージェントを介してリモートスクリプトを実行しているときにその問題が発生し、資格情報/プロキシが問題を解決しました。 この投稿 を参照して、誰かが同様の問題/解決策を持っていることを確認できます。権限に関する注意事項に注意してください。資格情報にはアカウントを使用できますが、これが辞任した場合に実行することを意図している場合は、サービスアカウントを使用して必要な権限を付与することができます。