追蹤 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) 會記錄二進位檔中的資訊。 若要讀取檔案,您必須先將它轉譯成可讀取的文字格式。 您可以使用 Windows 驅動程式套件 (WDK) 中名為 tracefmt.exe 的工具來執行翻譯。 此工具需要儲存在一些相關聯檔案中的資訊。 這些檔案位於 %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 記錄檔