共用方式為


syspolicy_policy_execution_history_details (Transact-SQL)

顯示已執行的條件運算式、運算式的目標、每一次執行的結果,以及任何發生之錯誤的相關詳細資料。下表描述 syspolicy_execution_history_details 檢視表中的資料行。

資料行名稱

資料類型

描述

detail_id

bigint

這筆記錄的識別碼。每一筆記錄都表示嘗試評估或強制施行原則中的某一個條件運算式。如果套用到多個目標,每一個條件都將會有每一個目標的詳細記錄。

history_id

bigint

記錄事件的識別碼。每一個記錄事件都表示執行原則的某個嘗試。由於一個條件可以有數個條件運算式及數個目標,所以 history_id 可以建立幾筆詳細記錄。使用 history_id 資料行可將這個檢視表聯結到 syspolicy_policy_execution_history 檢視表。

target_query_expression

nvarchar(max)

此原則和 syspolicy_policy_execution_history 檢視表的目標。

execution_date

datetime

建立這筆詳細記錄的日期和時間。

result

bit

這個目標和條件運算式評估為成功或失敗:

0 (成功) 或 1 (失敗)。

result_detail

nvarchar(max)

結果訊息。只有當此 Facet 提供時才可用。

exception_message

nvarchar(max)

由發生的例外狀況所產生的訊息。

exception

nvarchar(max)

發生之例外狀況的描述。

備註

當您針對以原則為基礎的管理進行疑難排解時,請查詢 syspolicy_policy_execution_history_details 檢視表來判斷哪一個目標和條件運算式組合失敗、其失敗的時間,並檢閱相關錯誤。

下列查詢會將 syspolicy_policy_execution_history_details 檢視表與 syspolicy_policy_execution_history_details 和 syspolicy_policies 檢視表結合,以顯示此原則的名稱、此條件的名稱及有關失敗的詳細資料。

SELECT Pol.name AS Policy, 
Cond.name AS Condition, 
PolHistDet.target_query_expression, 
PolHistDet.execution_date, 
PolHistDet.result, 
PolHistDet.result_detail, 
PolHistDet.exception_message, 
PolHistDet.exception 
FROM msdb.dbo.syspolicy_policies AS Pol
JOIN msdb.dbo.syspolicy_conditions AS Cond
    ON Pol.condition_id = Cond.condition_id
JOIN msdb.dbo.syspolicy_policy_execution_history AS PolHist
    ON Pol.policy_id = PolHist.policy_id
JOIN msdb.dbo.syspolicy_policy_execution_history_details AS PolHistDet
    ON PolHist.history_id = PolHistDet.history_id
WHERE PolHistDet.result = 0 ;

權限

需要 msdb 資料庫中 PolicyAdministratorRole 角色的成員資格。