Share via


syspolicy_policy_execution_history_details (Transact-SQL)

適用於:SQL Server

顯示已執行的條件表示式、表達式的目標、每個執行的結果,以及發生錯誤的詳細數據。 下表描述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_detailssyspolicy_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 角色的成員資格。

使用原則式管理來管理伺服器
以原則為基礎的管理檢視 (Transact - SQL)