Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Ereignisablaufverfolgung für Windows (ETW) kann ein wertvolles Problembehandlungstool für Active Directory Domain Services (AD DS) sein. Sie können ETW verwenden, um die LDAP-Kommunikation (Lightweight Directory Access Protocol) zwischen Windows-Clients und LDAP-Servern, einschließlich AD DS-Domänencontrollern, nachzuverfolgen.
Aktivieren von ETW und Starten einer Ablaufverfolgung
So aktivieren Sie ETW
Öffnen Sie den Registrierungs-Editor, und erstellen Sie den folgenden Registrierungsunterschlüssel:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ldap\Tracing\ProcessName
In diesem Unterschlüssel ist ProcessName der vollständige Name des Prozesses, den Sie nachverfolgen möchten, einschließlich der Erweiterung (z. B. "Svchost.exe").
(Optional) Erstellen Sie unter diesem Unterschlüssel einen neuen Eintrag mit dem Namen PID. Um diesen Eintrag zu verwenden, weisen Sie eine Prozess-ID als DWORD-Wert zu.
Wenn Sie eine Prozess-ID angeben, verfolgt ETW nur die Instanz der Anwendung mit dieser Prozess-ID.
Starten einer Ablaufverfolgungssitzung
Öffnen Sie ein Eingabeaufforderungsfenster, und führen Sie den folgenden Befehl aus:
tracelog.exe -start <SessionName> -guid \#099614a5-5dd7-4788-8bc9-e29f43db28fc -f <FileName> -flag <TraceFlags>
Die Platzhalter in diesem Befehl stellen die folgenden Werte dar.
- < SessionName> ist ein beliebiger Bezeichner, der zur Kennzeichnung der Tracing-Sitzung verwendet wird.
Hinweis
Sie müssen später beim Beenden der Ablaufverfolgungssitzung auf diesen Sitzungsnamen verweisen.
- < Dateiname> Gibt die Protokolldatei an, in die Ereignisse geschrieben werden.
- < TraceFlags> sollte mindestens einer der Werte sein, die in der Tabelle "Ablaufverfolgungskennzeichnungen" aufgeführt sind.
Beenden einer Ablaufverfolgungssitzung und Deaktivieren der Ereignisablaufverfolgung
Beenden der Ablaufverfolgung
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus:
tracelog.exe -stop <SessionName>
In diesem Befehl < ist SessionName> derselbe Name, den Sie im Befehltracelog.exe -start verwendet haben.
So deaktivieren Sie ETW
- Löschen Sie im Registrierungs-Editor den unterschlüsselHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ldap\Tracing\ProcessName .
Werte für Ablaufverfolgungsflags
Um ein Flag zu verwenden, ersetzen Sie den Flagwert für den Platzhalter <TraceFlags> in den Argumenten des Befehls stracelog.exe -start.
Hinweis
Sie können mehrere Flags angeben, indem Sie die Summe der entsprechenden Flagwerte verwenden. Wenn Sie z. B. die DEBUG_SEARCH (0x00000001) und DEBUG_CACHE (0x00000010)-Flags angeben möchten, wird der entsprechende <TraceFlags-Wert>0x00000011.
Flagname | Flagwert | Flaggenbeschreibung |
---|---|---|
DEBUG_SEARCH | 0x00000001 | Protokolliert Suchanforderungen und die Parameter, die an diese Anforderungen übergeben werden. Antworten werden hier nicht protokolliert. Nur die Suchanforderungen werden protokolliert. (Verwenden Sie DEBUG_SPEWSEARCH , um die Antworten auf Suchanforderungen zu protokollieren.) |
DEBUG_WRITE | 0x00000002 | Protokolliert Schreibanforderungen und die Parameter, die an diese Anforderungen übergeben werden. Zu den Schreibanforderungen gehören Hinzufüge-, Lösch-, Bearbeitungs- und erweiterte Vorgänge. |
DEBUG_REFCNT | 0x00000004 | Die Protokolle verweisen auf die Zählung von Daten und die Vorgänge für Verbindungen und Anforderungen. |
DEBUG_HEAP | 0x00000008 | Protokolliert alle Speicherzuweisungen und Speicherfreigaben. |
DEBUG_CACHE | 0x00000010 | Protokolliert Cacheaktivitäten. Diese Aktivität beinhaltet Vorgänge zum Hinzufügen und Entfernen, Treffer, Fehlversuche usw. |
DEBUG_SSL | 0x00000020 | Protokolliert SSL-Informationen und -Fehler. |
DEBUG_SPEWSEARCH | 0x00000040 | Protokolliert alle Serverantworten für Suchanforderungen. Zu diesen Antworten gehören die angeforderten Attribute sowie alle empfangenen Daten. |
DEBUG_SERVERDOWN | 0x00000080 | Protokolliert Server-Down- und Verbindungsfehler. |
DEBUG_CONNECT | 0x00000100 | Protokolliert Daten, die sich auf das Herstellen einer Verbindung beziehen. Verwenden Sie DEBUG_CONNECTION , um andere Daten zu protokollieren, die mit Verbindungen zusammenhängen. |
DEBUG_RECONNECT | 0x00000200 | Protokolliert die automatische Wiederverbindungsaktivität. Diese Aktivität beinhaltet Verbindungswiederherstellungsversuche, Fehlversuche und verwandte Fehler. |
DEBUG_RECEIVEDATA | 0x00000400 | Protokolliert Aktivitäten im Zusammenhang mit dem Empfangen von Nachrichten vom Server. Diese Aktivität umfasst Ereignisse wie "Warten auf die Antwort vom Server" und die Antwort, die vom Server empfangen wird. |
DEBUG_BYTES_SENT | 0x00000800 | Protokolliert alle Vom LDAP-Client an den Server gesendeten Daten. Diese Funktion ist im Wesentlichen die Paketprotokollierung, protokolliert aber immer unverschlüsselte Daten. (Wenn ein Paket über SSL gesendet wird, protokolliert diese Funktion das unverschlüsselte Paket.) Diese Protokollierung kann ausführlich sein. Diese Kennzeichnung wird wahrscheinlich am besten alleine verwendet oder mit DEBUG_BYTES_RECEIVED kombiniert. |
DEBUG_EOM | 0x00001000 | Protokolliert Ereignisse, die mit dem Erreichen des Endes einer Nachrichtenliste zusammenhängen. Zu diesen Ereignissen gehören Informationen wie "Nachrichtenliste gelöscht" usw. |
DEBUG_BER | 0x00002000 | Protokolliert Vorgänge und Fehler, die sich auf grundlegende Codierungsregeln (BASIC Encoding Rules, BER) beziehen. Zu diesen Vorgängen und Fehlern gehören Probleme bei der Codierung, Puffergrößenprobleme usw. |
DEBUG_OUTMEMORY | 0x00004000 | Protokolliert Fehler beim Zuordnen des Arbeitsspeichers. Protokolliert außerdem alle Fehler beim Berechnen des erforderlichen Arbeitsspeichers (z. B. einen Überlauf, der beim Berechnen der erforderlichen Puffergröße auftritt). |
DEBUG_CONTROLS | 0x00008000 | Protokolliert Daten, die sich auf Steuerelemente beziehen. Diese Daten umfassen eingefügte Steuerelemente, Probleme, die Sich auf Steuerelemente auswirken, obligatorische Steuerelemente für eine Verbindung usw. |
DEBUG_BYTES_RECEIVED | 0x00010000 | Protokolliert alle Daten, die vom LDAP-Client empfangen werden. Dieses Verhalten ist im Wesentlichen die Paketprotokollierung, protokolliert aber immer unverschlüsselte Daten. (Wenn ein Paket über SSL gesendet wird, protokolliert diese Option das unverschlüsselte Paket.) Dieser Protokollierungstyp kann ausführlich sein. Diese Kennzeichnung wird wahrscheinlich am besten alleine verwendet oder mit DEBUG_BYTES_SENT kombiniert. |
DEBUG_CLDAP | 0x00020000 | Protokolliert Ereignisse, die für UDP und verbindungsloses LDAP spezifisch sind. |
DEBUG_FILTER | 0x00040000 | Protokolliert Ereignisse und Fehler, die beim Erstellen eines Suchfilters auftreten. Anmerkung Diese Option protokolliert Client-Ereignisse nur während der Filterbildung. Es protokolliert keine Antworten vom Server im Zusammenhang mit einem Filter. |
DEBUG_BIND | 0x00080000 | Protokolle binden Ereignisse und Fehler. Diese Daten umfassen Verhandlungsinformationen, erfolgreiche Bindungen, Bindungsfehlschläge usw. |
DEBUG_NETWORK_ERRORS | 0x00100000 | Protokolliert allgemeine Netzwerkfehler. Diese Daten umfassen Sende- und Empfangsfehler. Anmerkung Wenn eine Verbindung verloren geht oder der Server nicht erreicht werden kann, ist DEBUG_SERVERDOWN das bevorzugte Tag. |
DEBUG_VERBOSE | 0x00200000 | Protokolliert allgemeine Nachrichten. Verwenden Sie diese Option für alle Nachrichten, die dazu neigen, eine große Menge an Ausgabe zu generieren. Beispielsweise protokolliert sie Nachrichten wie "Ende der Nachricht erreicht", "Server hat noch nicht geantwortet" usw. Diese Option ist auch für generische Nachrichten nützlich. |
DEBUG_PARSE | 0x00400000 | Protokolliert allgemeine Nachrichtenereignisse und Fehler sowie Paketanalyse- und Codierungsereignisse und -fehler. |
DEBUG_REFERRALS | 0x00800000 | Protokolliert Daten zu Empfehlungen und der Verfolgung von Empfehlungen. |
DEBUG_REQUEST | 0x01000000 | Protokolliert die Verfolgung von Anforderungen. |
DEBUG_CONNECTION | 0x02000000 | Protokolliert allgemeine Verbindungsdaten und Fehler. |
DEBUG_INIT_TERM | 0x04000000 | Protokolliert Modulinitialisierung und Bereinigung (DLL Main usw.). |
DEBUG_API_ERRORS | 0x08000000 | Unterstützt die Protokollierung der falschen Verwendung der API. Mit dieser Option werden beispielsweise Daten protokolliert, wenn der Bindungsvorgang bei derselben Verbindung zweimal aufgerufen wird. |
DEBUG_FEHLER | 0x10000000 | Protokolliert allgemeine Fehler. Die meisten dieser Fehler können als Modulinitialisierungsfehler, SSL-Fehler oder Überlauf- oder Unterlauffehler kategorisiert werden. |
DEBUG_PERFORMANCE | 0x20000000 | Protokolliert Daten zu prozess-globalen LDAP-Aktivitätsstatistiken, nachdem eine Serverantwort für eine LDAP-Anforderung empfangen wurde. |
Beispiel
Erwägen Sie eine Anwendung, App1.exe, die Kennwörter für Benutzerkonten festlegt. Angenommen, App1.exe verursacht einen unerwarteten Fehler. Wenn Sie ETW verwenden möchten, um dieses Problem zu diagnostizieren, führen Sie die folgenden Schritte aus:
Erstellen Sie im Registrierungs-Editor den folgenden Registrierungseintrag:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ldap\Tracing\App1.exe
Um eine Ablaufverfolgungssitzung zu starten, öffnen Sie ein Eingabeaufforderungsfenster, und führen Sie den folgenden Befehl aus:
tracelog.exe -start ldaptrace -guid \#099614a5-5dd7-4788-8bc9-e29f43db28fc -f .\ldap.etl -flag 0x80000
Nach dem Starten dieses Befehls stellt DEBUG_BIND sicher, dass ETW Ablaufverfolgungsmeldungen in „.\ldap.etl“ schreibt.
Starten Sie App1.exe, und reproduzieren Sie den unerwarteten Fehler.
Führen Sie den folgenden Befehl an der Eingabeaufforderung aus, um die Ablaufverfolgungssitzung zu beenden:
tracelog.exe -stop ldaptrace
Um zu verhindern, dass andere Benutzer die Anwendung nachverfolgen, löschen Sie die HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ldap\Tracing\App1.exe Registrierungseintrag.
Um die Informationen im Ablaufverfolgungsprotokoll zu überprüfen, führen Sie an der Eingabeaufforderung den folgenden Befehl aus:
tracerpt.exe .\ldap.etl -o -report
Hinweis
In diesem Befehl ist tracerpt.exe ein Ablaufverfolgungsverbraucher-Tool.