Verfolgen von WMI-Aktivitäten

Ab Windows Vista verwendet der WMI-Dienst keine WMI-Protokolldateien. Stattdessen wird die Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW) verwendet, und Ereignisse sind über die Ereignisanzeige oder das Befehlszeilentool „Wevtutil“ verfügbar.

In diesem Thema werden die folgenden Abschnitte behandelt:

Abrufen von WMI-Ereignissen über die Ereignisanzeige

Die Datei „WMITracing.log“ enthält die Ereignisse, die WMI verfolgt. Dies ist jedoch eine Binärdatei. Um diese Ereignisse in einem für Menschen lesbaren Format anzuzeigen, verwenden Sie die Ereignisanzeige.

Standardmäßig werden WMI-Ereignisse nicht verfolgt. In diesem Verfahren wird beschrieben, wie Sie die Ereignisanzeige verwenden, um die WMI-Ereignisablaufverfolgung zu aktivieren und nach WMI-Ereignissen zu suchen. Sie können dieselben Vorgänge auch über das Befehlszeilentool „wevtutil“ ausführen.

So zeigen Sie WMI-Ereignisse in der Ereignisanzeige ab

  1. Öffnen Sie die Ereignisanzeige. Klicken Sie im Menü Ansicht auf Analytische und Debugprotokolle einblenden. Suchen Sie unter „Anwendungen und Dienstprotokolle“ | „Microsoft“ | „Windows“ | „WMI-Aktivitäten“ das Ablaufverfolgungskanal-Protokoll für WMI.
  2. Klicken Sie mit der rechten Maustaste auf das Protokoll Ablaufverfolgung, und wählen Sie Protokolleigenschaften aus. Aktivieren Sie das Kontrollkästchen Protokollierung aktivieren, um die WMI-Ereignisablaufverfolgung zu starten. Weitere Informationen zu Kanälen finden Sie unter Ereignisprotokolle und Kanäle im Windows-Ereignisprotokolldienst.
  3. WMI-Ereignisse werden im Ereignisfenster für WMI-Aktivitäten angezeigt. Doppelklicken Sie auf ein Ereignis in der Liste, um die detaillierten Informationen anzuzeigen. Sie können ein Ereignis in der XML-Ansicht oder im Format Für die Zwischenablage geeignete Ansicht anzeigen.

Im Feld Ereignis-ID wird ein Wert angezeigt, der die folgenden Informationen enthält.

Ereignis 1

Beginn der Ereignissequenz für einen bestimmten Vorgang. Ein Vorkommen für jede Sequenz.

Für „Ereignis 1“ gibt es folgende Ereignisfelder:

  • GroupOperationID ist ein eindeutiger Bezeichner, der für alle Ereignisse verwendet wird, die für einen bestimmten Client gemeldet werden.
  • OperationId gibt die Vorgangssequenz an.
  • Operation gibt die Verbindung zu oder Anforderung an WMI an.
  • User gibt das Konto an, das durch Ausführen eines Skripts oder über CIM Studio eine Anforderung an WMI sendet.
  • Namespace zeigt den WMI-Namespace an, mit dem die Verbindung hergestellt wird.

Beispielsweise kann ein Skript alle Instanzen einer WMI-Klasse anfordern, z. B. Win32_Service. Der erste Vorgang kann eine Verbindung mit WMI sein.

Ereignis 2

Ereignisse, aus denen der Vorgang besteht. Mindestens ein Vorkommen in der Sequenz.

Für „Ereignis 2“ gibt es folgende Ereignisfelder:

  • GroupOperationID gibt die Sequenz an, in der das Ereignis auftritt.
  • GroupOperationID gibt die Sequenz an, in der das Ereignis auftritt.
  • ProviderName gibt den Namen des Anbieters an, der die Daten bereitstellt.
  • Path ist der WMI-Pfad zum Objekt.

Der Vorgang kann beispielsweise eine Enumeration von Win32_Service sein.

Ereignis 3

Ende der Ereignissequenz für einen bestimmten Vorgang. Ein Vorkommen für jede Sequenz.

Nur das Ereignisfeld GroupOperationID wird angezeigt.

Aktivieren der WMI-Ablaufverfolgung an der Eingabeaufforderung

Sie können die WMI-Ereignisablaufverfolgung auch über das Befehlszeilentool „Wevtutil“ aktivieren. Verwenden Sie den folgenden Befehl: Wevtutil.exe sl Microsoft-Windows-WMI-Activity/Trace /e:true. Die WMI-Ereignisquelle ist „Microsoft-Windows-WMI“. Weitere Informationen zu „Wevtutil.exe“ finden Sie unter Informationen zum Windows-Ereignisprotokoll.

Verwenden der WPP-basierten WMI-Ablaufverfolgung

Unter Windows-Betriebssystemen ab Windows Vista erstellt WMI beim Startvorgang einen aktiven Ablaufverfolgungskanal. Der Name des Kanals lautet „WMI_Trace_Session“. Nur Fehler werden im Kanal protokolliert.

Der Windows-Softwareablaufverfolgungs-Präprozessor (WPP) zeichnet Informationen in einer Binärdatei auf. Zum Lesen der Datei müssen Sie sie zuerst in ein lesbares Textformat übersetzen. Für die Übersetzung verwenden Sie ein Tool namens „tracefmt.exe“ aus dem Windows Driver Kit (WDK). Das Tool erfordert Informationen, die in einigen zugeordneten Dateien gespeichert sind. Die Dateien befinden sich im Verzeichnis „%SystemRoot%\System32\wbem\tmf“ und verfügen über die TMF-Dateinamenerweiterung. Das Tool erfordert faktisch eine einzelne TMF-Datei. Sie erstellen diese einzelne Datei, indem Sie alle TMF-Dateien in einer anderen TMF-Datei verketten. Weitere Informationen zu TMF-Dateien finden Sie unter TMF-Datei (Trace Message Format).

Führen Sie nach der Installation des Windows Driver Kit (WDK) die folgenden Schritte aus, um die Befehlszeilentools „tracelog.exe“ und „tracefmt.exe“ abzurufen und eine WPP-basierte WMI-Ablaufverfolgung auszuführen.

So zeigen Sie eine WPP-basierte WMI-Ablaufverfolgung an

  1. Um die einzelne TMF-Datei zu erstellen, öffnen Sie ein Eingabeaufforderungsfenster mit erhöhten Rechten, und navigieren Sie zum Verzeichnis „%SystemRoot%\System32\wbem\tmf“.

  2. Geben Sie copy /y %SystemRoot%\System32\wbem\tmf\*.tmf %SystemRoot%\System32\wbem\tmf\wmi.tmf ein. Dadurch wird eine Datei mit dem Namen „wmi.tmf“ erstellt, die den Inhalt aller anderen TMF-Dateien enthält.

  3. Geben Sie tracelog -flush WMI_Trace_Session ein. Dadurch werden die WPP-Puffer auf dem Datenträger geleert.

  4. Geben Sie set TRACE_FORMAT_PREFIX = [%9!d!]%8!04X!.%3!04X!.%3!04X!::%4!s![%1!s!](%!COMPNAME!:%!FUNC !:%2!s!) ein. Das Tool „tracefmt“ fügt jeder Ablaufverfolgungsnachricht einige Standardinformationen hinzu. Durch Festlegen der Umgebungsvariablen „TRACE_FORMAT_PREFIX“ können Sie die enthaltenen Informationen konfigurieren. Informationen zur verwendeten Syntax finden Sie unter Präfix für Ablaufverfolgungsnachrichten.

  5. Geben Sie tracefmt -tmf %systemroot%\system32\wbem\tmf\wmi.tmf -o OUTPUT.TXT %systemroot%\system32\wbem\logs\WMITracing.log ein. Dadurch wird die Übersetzung vom Binärformat in das lesbare Textformat durchgeführt.

  6. Geben Sie notepad %systemroot%\system32\wbem\tmf\OUTPUT.TXT ein. Dadurch wird die Ablaufverfolgungsdatei im Editor geöffnet.

Im Folgenden sind einige andere WPP-bezogene Aufgaben aufgeführt, die Sie möglicherweise ausführen müssen.

So beenden Sie die WPP-basierte WMI-Ablaufverfolgung

  • Geben Sie tracelog -stop WMI_Trace_Session ein.

So starten Sie die WPP-basierte WMI-Ablaufverfolgung

  • Geben Sie tracelog -start WMI_Trace_Session -guid #1FF6B227-2CA7-40f9-9A66-980EADAA602E -rt -level 5 -flag 0x7 -f MYTRACE.BIN ein.

Windows Vista: Standardmäßig ist die WPP-basierte WMI-Ablaufverfolgung auf Ebene 2 festgelegt, die nur Fehlermeldungen enthält. Sollen auch Informationsmeldungen einbezogen werden, legen Sie die Ebene auf „4“ fest. Alle Bereiche von WMI werden standardmäßig nachverfolgt. Es gibt drei verschiedene Bereiche, die nachverfolgt werden können: Core (flag=0x1), ESS (flag=0x2) und Prov (flag=0x4). Im obigen Startbefehl bewirkt Flag 0x7, dass alle drei Bereiche nachverfolgt werden.

Windows 7: Standardmäßig ist die WPP-basierte WMI-Ablaufverfolgung deaktiviert und auf Ebene 0 festgelegt. Um die WPP-basierte WMI-Ablaufverfolgung verwenden zu können, muss dieses Feature aktiviert und auf Ebene 2 für Fehlermeldungen oder Ebene 4 für Fehler- und Informationsmeldungen festgelegt werden.

So listen Sie alle WPP-Ablaufverfolgungssitzungen auf

  • Geben Sie tracelog -l ein.

So listen Sie Informationen zur WMI-WPP-Ablaufverfolgungssitzung auf

  • Geben Sie tracelog -l | findstr /i "wmi_trace" ein.

So zeigen Sie die Parameter für die WMI-WPP-Ablaufverfolgungssitzung an

  • Geben Sie tracelog -q WMI_Trace_Session ein.

WMI-Problembehandlung

WMI-Protokolldateien