追蹤 WMI 活動
從 Windows Vista 開始,WMI 服務不會使用 WMI 記錄檔 。 相反地,它會使用 Windows 事件追蹤 (ETW) 和事件可透過 事件檢視器 或 Wevtutil 命令列工具取得。
本主題將討論下列各節:
透過 事件檢視器 取得 WMI 事件
WMITracing.log 檔案包含 WMI 追蹤的事件。 不過,這是二進位檔案。 若要以人類可讀取的格式查看這些事件,請使用 事件檢視器 。
根據預設,不會追蹤 WMI 事件。 此程式描述如何使用 事件檢視器 來啟用 WMI 事件追蹤和尋找 WMI 事件。 您可以透過 wevtutil 命令列工具來執行相同的作業。
若要在 事件檢視器 中檢視 WMI 事件
- 開啟 [事件檢視器]。 在 [ 檢視] 功能表上,按一下 [ 顯示分析和偵錯記錄 ]。 在 [應用程式和服務記錄] 下找出 WMI 的 追蹤 通道記錄 |Microsoft |Windows |WMI 活動。
- 以 滑鼠右鍵按一下追蹤 記錄,然後選取 [記錄屬性 ]。 按一下 [ 啟用記錄] 核取方塊以啟動 WMI 事件追蹤。 如需通道的詳細資訊,請參閱 Windows 事件記錄 檔中的事件記錄檔和通道。
- 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 追蹤
若要建立單一 .tmf 檔案,請開啟提升許可權的命令提示字元視窗,並流覽至 %SystemRoot%\System32\wbem\tmf 目錄。
類型 複製 /y %SystemRoot%\System32\wbem\tmf\*.tmf %SystemRoot%\System32\wbem\tmf\wmi.tmf 。 這會建立名為 wmi.tmf 的檔案,其中包含所有其他 .tmf 檔案的內容。
輸入 tracelog -flush WMI_Trace_Session 。 這會排清磁片上的 WPP 緩衝區。
類型 集TRACE_FORMAT_PREFIX = [%9!d!]%8!04X!。%3!04X!。%3!04X!::%4!s![%1!s!](%!COMPNAME!:%!FUNC !:%2!s!) 。 tracefmt 工具會將一些預設資訊新增至每個追蹤訊息。 您可以藉由設定TRACE_FORMAT_PREFIX環境變數來設定包含哪些資訊。 若要瞭解所使用的語法,請參閱 追蹤訊息前置詞 。
輸入 tracefmt -tmf %systemroot%\system32\wbem\tmf\wmi.tmf -o OUTPUT.TXT %systemroot%\system32\wbem\logs\WMITracing.log 。 這會執行從二進位格式轉譯為可讀取的文字格式。
輸入 記事本 %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。
相關主題