針對 WMI 用戶端應用程式進行疑難排解
WMI 包含一組類別,可用來針對使用 WMI 提供者的用戶端應用程式 進行疑難排解 。 疑難排解事件類別會與 WMI 事件類別結合,讓您可以使用擷取疑難排解事件的記錄來追蹤應用程式執行。
下列清單包含疑難排解事件類別的範例:
Msft_WmiProvider_ExecMethodAsyncEvent_Pre
在 WMI 呼叫提供者上的 IWbemServices::ExecMethodAsync () 之前引發。
Msft_WmiProvider_ExecMethodAsyncEvent_Post
在 WMI 呼叫提供者上的 IWbemServices::ExecMethodAsync () 之後引發。
下列程式示範如何針對應用程式執行進行疑難排解。
設定 WMI 疑難排解
- 建立並編譯 MOF 檔案,以使用 WMI 記錄事件取用者。
- 執行用戶端應用程式。
- 檢視所有提供者作業和失敗事件的疑難排解記錄檔,並分析記錄檔來診斷您遇到的用戶端問題。
另一種疑難排解方法是列舉root\cimv2命名空間中的MSFT_Providers,以檢視目前在電腦快取中的提供者清單。 此類別中有方法可讓您載入和卸載提供者以進行偵錯或設定。
下列程式碼範例會使用 WMI 記錄事件取用者來擷取父事件類別的所有事件,進而擷取所有提供者作業事件。
#pragma autorecover
#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $Filter
{
Name = "ProviderOperationEvents" ;
EventNamespace = "root\\cimv2" ;
Query = "SELECT * FROM MSFT_WmiProvider_OperationEvent" ;
QueryLanguage = "WQL" ;
} ;
Instance of LogFileEventConsumer as $Consumer
{
Name = "ProviderOperationEvents" ;
FileName = "C:\\test.txt" ;
Text = "Operation - %__TEXT%" ;
} ;
instance of __FilterToConsumerBinding
{
Filter = $Filter ;
Consumer = $Consumer ;
MaintainSecurityContext = TRUE ;
} ;
當錯誤訊息指出提供者載入失敗時,請使用 MSFT_WmiProvider_LoadOperationFailureEvent 來識別造成錯誤的提供者。
相關主題