Steuerung der Winsock-Ablaufverfolgung
Die Winsock-Ablaufverfolgung kann mit einer der folgenden Methoden gesteuert werden:
Befehlszeilentools
In Windows Vista und Windows Server 2008 sind zwei Befehlszeilentools enthalten, die zum Steuern der Ablaufverfolgung und zum Konvertieren der Binären Ablaufverfolgungsprotokolldatei in lesbaren Text verwendet werden.
Das logman.exe-Tool wird verwendet, um die Winsock-Ablaufverfolgung zu starten oder zu beenden.
Das tracerpt.exe-Tool wird verwendet, um die binäre Ablaufverfolgungsprotokolldatei in eine lesbare Textdatei zu konvertieren.
Ereignisanzeige
Die Ereignisanzeige unter Windows Vista und höher kann auch verwendet werden, um die Winsock-Ablaufverfolgung zu aktivieren. Auf die Ereignisanzeige kann über das Startmenü unter Verwaltung zugegriffen werden.
Verwenden von logman und tracert
Die Winsock-Netzwerkereignisablaufverfolgung ist unter Windows Vista und höher standardmäßig deaktiviert.
Der folgende Befehl startet die Winsock-Netzwerkereignisablaufverfolgung auf einem Computer, legt den Namen der Ereignisablaufverfolgungssitzung auf mywinsocksession fest und sendet die Ausgabe an eine binäre Protokolldatei namens winsocklogfile.etl:
logman start -ets mywinsocksession -o winsocklogfile.etl -p Microsoft-Windows-Winsock-AFD
Protokolldateien werden im aktuellen Verzeichnis mit Dateinamen der Form winsocklogfile_000001.etl erstellt.
Mit dem folgenden Befehl wird die oben genannte Winsock-Ablaufverfolgung auf einem Computer für die Sitzung mywinsocksession beendet:
logman stop -ets mywinsocksession
Eine binärprotokolldatei wird an den durch den -o-Parameter angegebenen Speicherort geschrieben. Um die Binärdatei in eine lesbare Textdatei zu übersetzen, wird tracerpt.exe verwendet:
<tracerpt.exe Name der ETL-Datei> –o winsocktracelog.txt
Wenn eine Ausgabedatei mit XML anstelle von Nur-Text bevorzugt wird, wird der folgende Befehl verwendet:
<tracerpt.exe Name der ETL-Datei> –o winsocktracelog.xml –von xml
Die Winsock-Katalogänderungsablaufverfolgung ist unter Windows Vista und höher standardmäßig aktiviert.
Hinweis
Mehrschichtige Dienstanbieter sind veraltet. Verwenden Sie ab Windows 8 und Windows Server 2012 die Windows-Filterplattform.
Der folgende Befehl startet winsock Catalog Change tracing for Layered Service Providers (LSPs) auf einem Computer, legt den Namen der Ereignisablaufverfolgungssitzung auf mywinsockcatalogsession fest und sendet die Ausgabe an eine binäre Protokolldatei namens winsockcataloglogfile.etl:
logman start -ets mywinsockcatalogsession -o winsockcatalogloglogfile.etl -p Microsoft-Windows-Winsock-WS2HELP
Protokolldateien werden im aktuellen Verzeichnis mit Dateinamen der Form winsockcataloglogfile_000001.etl erstellt.
Der folgende Befehl beendet die oben genannte Winsock-Ablaufverfolgung auf einem Computer für die Sitzung mit dem Namen mysession:
logman stop -ets mywinsockcatalogsession
Eine binärprotokolldatei wird an den durch den -o-Parameter angegebenen Speicherort geschrieben. Um die Binärdatei in eine lesbare Textdatei zu übersetzen, wird tracerpt.exe verwendet:
<tracerpt.exe Name der ETL-Datei> –o winsockcatalogtracelog.txt
Wenn eine Ausgabedatei mit XML anstelle von Nur-Text bevorzugt wird, wird der folgende Befehl verwendet:
<tracerpt.exe Name der ETL-Datei> –o winsockcatalogtracelog.xml –von xml
Verwenden von Ereignisanzeige zum Starten der Winsock-Netzwerkereignisablaufverfolgung
Wenn Sie Ereignisanzeige öffnen, enthält der linke Bereich die Liste der Ereignisse. Öffnen Sie Anwendungs- und Dienstprotokolle , navigieren Sie zu Microsoft\Windows\Winsock Network Event als Quelle, und wählen Sie Betriebsbereit aus.
Wählen Sie im Bereich Aktion die Option Protokolleigenschaften aus, und aktivieren Sie das Kontrollkästchen Protokollierung aktivieren . Sobald die Protokollierung aktiviert ist, können Sie auch die Größe der Protokolldatei ändern, wenn dies erforderlich ist.
Die Winsock-Netzwerkereignisablaufverfolgung ist jetzt aktiviert, und Sie müssen lediglich die Aktion Aktualisieren ausführen, um die Liste der protokollierten Ereignisse zu aktualisieren. Um die Protokollierung zu beenden, deaktivieren Sie einfach dasselbe Optionsfeld.
Möglicherweise müssen Sie die Protokollgröße erhöhen, je nachdem, wie viele Ereignisse Angezeigt werden sollen. Ein Nachteil der Verwendung der Ereignisanzeige für die Winsock-Ablaufverfolgung besteht darin, dass nicht alle Zeichenfolgenressourcen geladen werden, sodass die im Feld Beschreibung angezeigten Nachrichten (sobald Sie ein Ereignis ausgewählt haben) manchmal schwer zu lesen sind (ein Argument, das als Hex formatiert werden sollte, wird z. B. dezimal angezeigt). Sie können jedoch die Registerkarte Details in der Ereignisbeschreibung auswählen, die den unformatierten XML-Protokolleintrag anzeigt, der normalerweise einfacher zu verstehende Argumente aufweist.
Verwenden von Ereignisanzeige zum Starten der Änderungsablaufverfolgung des Winsock-Katalogs
Wenn Sie Ereignisanzeige öffnen, enthält der linke Bereich die Liste der Ereignisse. Öffnen Sie Anwendungs- und Dienstprotokolle , navigieren Sie zu Microsoft\Windows\Winsock Catalog Change als Quelle, und wählen Sie Betriebsbereit aus.
Wählen Sie im Bereich Aktion die Option Protokolleigenschaften aus, und aktivieren Sie das Kontrollkästchen Protokollierung aktivieren . Sobald die Protokollierung aktiviert ist, können Sie auch die Größe der Protokolldatei ändern, wenn dies erforderlich ist.
Die Änderungsablaufverfolgung des Winsock-Katalogs ist jetzt aktiviert, und Sie müssen lediglich die Aktion Aktualisieren ausführen, um die Liste der protokollierten Ereignisse zu aktualisieren. Um die Protokollierung zu beenden, deaktivieren Sie einfach dasselbe Optionsfeld.
Möglicherweise müssen Sie die Protokollgröße erhöhen, je nachdem, wie viele Ereignisse Angezeigt werden sollen. Ein Nachteil der Verwendung der Ereignisanzeige für die Winsock-Ablaufverfolgung besteht darin, dass nicht alle Zeichenfolgenressourcen geladen werden, sodass die im Feld Beschreibung angezeigten Nachrichten (sobald Sie ein Ereignis ausgewählt haben) manchmal schwer zu lesen sind (ein Argument, das als Hex formatiert werden sollte, wird z. B. dezimal angezeigt). Sie können jedoch die Registerkarte Details in der Ereignisbeschreibung auswählen, die den unformatierten XML-Protokolleintrag anzeigt, der normalerweise einfacher zu verstehende Argumente aufweist.
Interpretieren von Winsock-Ablaufverfolgungsprotokollen
Alle Winsock-Ablaufverfolgungsereignisse in einem Protokoll enthalten zwei Arten von Informationen:
- System
- EventData
Die Systeminformationen enthalten die Protokollierungsebene, den Zeitpunkt, zu dem der Protokolleintrag erstellt wurde, die Ereignis-ID, die den Ereignistyp darstellt, die Ausführungsprozess-ID, die Ausführungsthread-ID und andere Systeminformationen. Die Protokollebene 4 in der Winsock-Ablaufverfolgung stellt die Protokollierung von Informationsereignissen dar. Die Protokollebene 5 in der Winsock-Ablaufverfolgung stellt die ausführliche Ereignisprotokollierung dar.
Die Ausführungsprozess-ID und thread-ID in den Systeminformationen geben den Prozess und den Thread an, die ausgeführt wurden, als das Ereignis aufgetreten ist. In vielen Fällen stellt dies einen Kernel- oder Workerthread und -prozess dar, nicht einen Benutzermodusthread und oder den Prozess der Anwendung. Daher ist dieses Feld normalerweise nicht sehr nützlich.
Jeder Winsock-Ablaufverfolgungsereignistyp verfügt über eine eindeutige Ereignis-ID im Systemabschnitt der protokollierten Daten. Diese Ereignis-IDs können problemlos verwendet werden, um eine Protokolldatei nach bestimmten Winsock-Ablaufverfolgungsereignissen zu filtern.
Die Ereignisdaten enthalten spezifische Informationen für den Ereignistyp.
Der Process-Parameter in den Ereignisdateninformationen ist die Kernel-EPROCESS-Strukturadresse für den Prozess, nicht die tatsächliche PID. Um ein Ereignis mit der Benutzermodus-PID abzugleichen, verwenden Sie den Wert Process aus den Ereignisdateninformationen eines beliebigen Protokolleintrags, und suchen Sie weiter oben im Protokoll nach einem Socketerstellungsereignis mit dem Wert Process. Sobald eine Übereinstimmung gefunden wurde, ist der letzte Parameter in den Socketerstellungsereignisdaten die Benutzermodus-Prozess-ID, die den Socket erstellt hat.
In einigen Winsock-Ablaufverfolgungsereignissen wird ein Address-Parameter in den Ereignisdateninformationen zurückgegeben. Ein Address-Parameter stellt eine IP-Adresse dar, wird aber in der Textdatei angezeigt, die vom tracerpt.exe-Tool erstellt wurde, oder in Ereignisanzeige als unformatierte Bytes oder eine Zahl. IPv6-Adressen werden hexadezimal angezeigt, sodass sie leichter verständlich sind. IPv4-Adressen werden als große Dezimalzahl angezeigt. Entwickler müssen die Rohbytes einer IPv4-Adresse manuell in die vertrautere IPv4-Dezimaladressenschreibweise konvertieren, um den Wert besser interpretieren zu können.
In einigen Winsock-Ablaufverfolgungsereignissen wird ein Fehlerparameter in den Ereignisdaten zurückgegeben. Ein Error-Parameter hat die Form eines NTSTATUS- oder HRESULT-Fehlercodes. Dieser Fehlerparameter wird in der Vom tracerpt.exe-Tool erstellten Textdatei oder in Ereignisanzeige als Dezimalzahl angezeigt. Entwickler müssen die Dezimalzahl manuell in eine Sechskantzahl konvertieren, um den Fehlercode in einigen Fällen besser interpretieren zu können.
Zugehörige Themen