Sql-Server

SQL Server 2014“syspolicy_purge_history”作業不斷失敗

  • July 20, 2019

我正在使用 SQL Server 2014,作業“syspolicy_purge_history”在第 3 步“Erase Phantom System Health Records”中一直失敗,這讓我發瘋,因為我不知道是什麼導致了失敗。

這是命令:

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返回的錯誤資訊是:‘Failed to connect to server 。建立與 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

如果執行策略設置為“Restricted”,請嘗試將其設置為“RemoteSigned”或“Unrestricted”。

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted

要麼

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned

請注意,您需要在Windows PowerShellSQL PowerShell控制台中設置此執行策略。

我知道這是我很久以前問的一個問題,問題已經解決。但是,我意識到它仍在查看中,所以我將說明我為解決問題所做的工作。

我打開 SQL 配置管理器並在我的實例名稱更新時添加了別名。之後連接成功並且作業完成且沒有錯誤。

在此處輸入圖像描述

引用自:https://dba.stackexchange.com/questions/160203