SQL Server 2014を使用していて、ジョブ「syspolicy_purge_history」がステップ3の「ファントムシステムヘルスレコードの消去」で失敗し続け、何が失敗の原因なのかわからないので、私を夢中にさせています。
ここにコマンドがあります:
if ('$(ESCAPE_SQUOTE(INST))' -eq 'MSSQLSERVER') {$a = '\DEFAULT'} ELSE {$a = ''}; (Get-Item SQLSERVER:\SQLPolicy\$(ESCAPE_NONE(SRVR))$a).EraseSystemHealthPhantomRecords()
私が得たエラーメッセージは:
ユーザーとして実行:jonbrown。ジョブステップは、PowerShellスクリプトの2行目でエラーを受け取りました。対応する行は '(Get-Item SQLSERVER:\ SQLPolicy\xyz\T $ a).EraseSystemHealthPhantomRecords()'です。スクリプトを修正し、ジョブを再スケジュールしてください。 PowerShellによって返されるエラー情報は次のとおりです: 'サーバーに接続できませんでした。 SQL Serverへの接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー) '。プロセス終了コード-1。ステップは失敗しました。
Windows Server PowerShellパスでこれを試すことができますか?
PS C:\Windows\system32> Get-ExecutionPolicy -list
Scope ExecutionPolicy
-------- ------------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Restricted
..SQL Serverパスでも同じ:
PS SQLSERVER:\> Get-ExecutionPolicy -list
Scope ExecutionPolicy
-------- ------------------
MachinePolicy Undefined
UserPolicy Undefined
Process RemoteSigned
CurrentUser Undefined
LocalMachine Restricted
実行ポリシーが「制限付き」に設定されている場合は、「RemoteSigned」または「Unrestricted」に設定してみてください。
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted
または
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
Windows PowerShellとSQL PowerShellの両方のコンソールでこの実行ポリシーを設定する必要があることに注意してください。