web-dev-qa-db-ja.com

管理者以外のプロキシでSQLAgentPowershellジョブが失敗する

システムに保存されているPowerShellスクリプトを実行するSQLエージェントジョブを作成しようとしています。ただし、ジョブは次のエラーで失敗します。

ジョブステップは、PowerShellスクリプトの1行目でエラーを受け取りました。対応する行は「g:\ PowerShellShare\Get-LastDBBackups.ps1」です。スクリプトを修正し、ジョブを再スケジュールします。 PowerShellによって返されるエラー情報は次のとおりです。'AuthorizationManagerチェックに失敗しました。

プロキシアカウントをローカル管理者に追加すると機能するため、アクセス許可の問題のようです(アカウントをローカル管理者に残すことは私の環境のオプションではありません)。

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)

最も不可解なことに、サーバーでプロキシアカウントを実行してスクリプトを実行すると、問題なく実行されます。 SQLエージェントジョブを介して実行しようとするスクリプトは関係ありません。スクリプトを実行しようとすると、同じ動作になります。 I canただし、他のPowerShellコマンドを実行し、スクリプトを実行しないでください。

誰かが以前にこれに遭遇し、私を正しい方向に向けることができることを願っています。

PDATE:大きな問題は、SQLエージェントジョブから実行しているときに、プロキシアカウントがinteractiveのメンバーではないことです。暗黙のセキュリティグループ。 RUNASを使用してジョブをテストすると、そのグループがプロキシにジョブを正常に実行するために必要なアクセス許可を付与しているようです。このグループが許可するすべての権限を追跡することはできません。

私が見た監査の失敗は、WinHttpAutoProxySvcおよびCryptSvcサービスに対するものでした。 scsdshowとscsdsetを使用して、これらの特定のサービスへのアクセス許可を変更し、Authenticated Usersアクセス許可がInteractive Usersのアクセス許可と一致するようにしました。 )グループ。監査の失敗はなくなりましたが、ジョブを実行すると、SQLで同じエラーメッセージが表示されます。

2
MaddHatter

Powershell内で実行ポリシーを確認してください。デフォルト設定が「制限付き」であるため、失敗しているように聞こえます。これは、Powershellをインタラクティブシェルとしてのみ実行でき、スクリプトをまったく実行しません。詳細については、次のリンクを参照してください。

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

編集:上記のリンクは「Set-ExecutionPolicy」の構文のみを説明していることに気づきました。このリンクは、いくつかの追加のコンテキストも提供する必要があります。

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

1
ethinton