追蹤 WMI 活動

從 Windows Vista 開始,WMI 服務不會使用 WMI 記錄檔。 相反地,它會使用Windows 事件追蹤 (ETW) ,而且事件可透過事件檢視器或 Wevtutil 命令列工具取得。

本主題將討論下列各節:

透過 事件檢視器 取得 WMI 事件

WMITracing.log 檔案包含 WMI 追蹤的事件。 不過,這是二進位檔案。 若要以人類可讀取的格式查看這些事件,請使用事件檢視器

根據預設,不會追蹤 WMI 事件。 此程式描述如何使用事件檢視器來啟用 WMI 事件追蹤和尋找 WMI 事件。 您可以透過 wevtutil 命令列工具執行相同的作業。

若要在 事件檢視器 中檢視 WMI 事件

  1. 開啟 [事件檢視器]。 在 [ 檢視] 功能表上,按一下 [ 顯示分析和偵錯記錄]。 在 [應用程式和服務記錄] 下找出 WMI 的 追蹤 通道記錄 |Microsoft |Windows |WMI 活動。
  2. 以滑鼠右鍵按一下 追蹤 記錄,然後選取 [ 記錄屬性]。 按一下 [ 啟用記錄] 核取方塊以啟動 WMI 事件追蹤。 如需通道的詳細資訊,請參閱 Windows 事件記錄檔中的事件記錄檔和通道
  3. WMI 事件會出現在 WMI-Activity的事件視窗中。 按兩下清單中的事件,以查看詳細資訊。 您可以使用 XML 檢視易記檢視 格式檢視事件。

[ 事件識別碼 ] 欄位會顯示包含下列資訊的值。

事件 1

特定作業的事件順序開始。 每個序列出現一次。

事件 1 的事件欄位如下:

  • GroupOperationID 是用於針對特定用戶端報告的所有事件的唯一識別碼。
  • OperationId 表示作業順序。
  • 作業 會指定與 WMI 的連線或要求。
  • 使用者 指出執行腳本或透過 CIM Studio 向 WMI 提出要求的帳戶。
  • 命名空間 會顯示建立連接的 WMI 命名空間。

例如,腳本可能會要求 WMI 類別的所有實例,例如 Win32_Service。 第一個作業可能是與 WMI 的連線。

事件 2

構成作業的事件。 序列中有一或多個出現次數。

事件 2 的事件欄位如下:

  • GroupOperationID 指出事件發生的順序。
  • GroupOperationID 指出事件發生的順序。
  • ProviderName 指出提供資料的提供者名稱。
  • Path 是 物件的 WMI 路徑。

例如,作業可能是 Win32_Service的列舉。

事件 3

特定作業的事件順序結束。 每個序列出現一次。

只會顯示 GroupOperationID

在命令提示字元啟用 WMI 追蹤

您也可以透過 Wevtutil 命令列工具啟用 WMI 事件追蹤。 使用下列命令: Wevtutil.exe sl Microsoft-Windows-WMI-Activity/Trace /e:true。 WMI 事件來源是 Microsoft-Windows-WMI。 如需Wevtutil.exe的詳細資訊,請參閱 關於 Windows 事件記錄檔。

使用 WPP 型 WMI 追蹤

從 Windows Vista 開始的 Windows 作業系統中,WMI 會在開機程式期間建立作用中的追蹤通道。 通道的名稱WMI_Trace_Session。 只會將錯誤記錄到通道。

Windows 軟體追蹤預處理器 (WPP) 記錄二進位檔中的資訊。 若要讀取檔案,您必須先將它轉譯成可讀取的文字格式。 您可以使用名為 tracefmt.exe 的工具,從 Windows 驅動程式套件 (WDK) 來執行翻譯。 此工具需要儲存在某些相關聯檔案中的資訊。 這些檔案位於 %SystemRoot%\System32\wbem\tmf 目錄中,且副檔名為 .tmf。 此工具實際上需要單一 .tmf 檔案 。 您可以將所有 .tmf 檔案串連到另一個 .tmf 檔案,讓該檔案成為單一檔案。 如需 .tmf 檔案的詳細資訊,請參閱 追蹤訊息格式檔案

安裝 Windows 驅動程式套件 (WDK) 以取得tracelog.exe和tracefmt.exe命令列工具之後,請執行下列步驟來收集 WPP 型 WMI 追蹤。

檢視 WPP 型 WMI 追蹤

  1. 若要建立單一 .tmf 檔案,請開啟提升許可權的命令提示字元視窗,然後流覽至 %SystemRoot%\System32\wbem\tmf 目錄。

  2. 類型 複製 /y %SystemRoot%\System32\wbem\tmf\*.tmf %SystemRoot%\System32\wbem\tmf\wmi.tmf。 這會建立名為 wmi.tmf 的檔案,其中包含所有其他 .tmf 檔案的內容。

  3. 輸入 tracelog -flush WMI_Trace_Session。 這會排清磁片上的 WPP 緩衝區。

  4. 類型 集TRACE_FORMAT_PREFIX = [%9!d!]%8!04X!。%3!04X!。%3!04X!::%4!s![%1!s!] (%!COMPNAME!:%!FUNC !:%2!s!) 。 tracefmt 工具會將一些預設資訊新增至每個追蹤訊息。 您可以藉由設定TRACE_FORMAT_PREFIX環境變數來設定包含哪些資訊。 若要瞭解所使用的語法,請參閱 追蹤訊息前置詞

  5. 輸入 tracefmt -tmf %systemroot%\system32\wbem\tmf\wmi.tmf -o OUTPUT.TXT %systemroot%\system32\wbem\logs\WMITracing.log。 這會執行從二進位格式轉譯為可讀取的文字格式。

  6. 輸入 記事本 %systemroot%\system32\wbem\tmf\OUTPUT.TXT。 這會在 [記事本] 中開啟追蹤檔案。

以下是您可能需要執行的一些其他 WPP 相關工作。

停止 WPP 型 WMI 追蹤

  • 輸入 tracelog -stop WMI_Trace_Session

啟動 WPP 型 WMI 追蹤

  • 類型 tracelog -start WMI_Trace_Session -guid #1FF6B227-2CA7-40f9-9A66-980EADAA602E -rt -level 5 -flag 0x7 -f MYTRACE。站

Windows Vista: 根據預設,WPP 型 WMI 追蹤會設定為層級 2,只包含錯誤訊息。 若要同時包含參考訊息,請將層級設定為 4。 預設會追蹤 WMI 的所有區域。 有三個可追蹤的不同區域:Core (flag=0x1) 、ESS (flag=0x2) 和 Prov (flag=0x4) 。 在上述 start 命令中, 旗標0x7 會導致追蹤這三個區域。

Windows 7: 根據預設,WPP 型 WMI 追蹤會停用,並設定為層級 0。 若要使用 WPP 型 WMI 追蹤,必須啟用此功能,並針對錯誤訊息設定為層級 2,或針對錯誤和參考訊息設定為層級 4。

列出所有 WPP 追蹤會話

  • 輸入 tracelog -l

列出 WMI WPP 追蹤會話的相關資訊

  • 輸入tracelog -l | findstr /i 「wmi_trace」。

檢視 WMI WPP 追蹤會話參數

  • 輸入 tracelog -q WMI_Trace_Session

WMI 疑難排解

WMI 記錄檔