Ausgabeformate
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /de/docs/02-output-formats/index.md.
Convert-DNSDebugLogFile erzeugt bis zu drei Dateien pro Eingabeprotokoll:
| Datei | Enthält | Erstellt bei |
|---|---|---|
<name>.csv | Eine Zeile pro geparstem Protokolleintrag | -OutputType CSV oder Both |
<name>_Statistic.csv | Tägliche Anzahl der Einträge pro Kontext | -OutputType Statistic oder Both |
<name>_PacketStatistic.csv | Tägliche Abfrageanzahl pro Client, Protokoll, Richtung und Eintragstyp | -OutputType Statistic oder Both |
Both ist die Standardeinstellung. Die Ausgabe landet neben der Eingabedatei, sofern du nicht -OutputFile setzt.
Die auf dieser Seite verlinkten Beispieldateien sind echte Konversionsergebnisse, keine Mock-ups. Lade eine herunter und öffne sie in Excel, bevor du dich für ein Pipeline-Design entscheidest.
Die CSV-Datendatei
Beispielausgabe:
| Gebietsschema | Details-Spalte | Dateien |
|---|---|---|
| en-US | nicht befüllt | WithComputerName, NoComputerName |
| de-DE | nicht befüllt | WithComputerName, NoComputerName |
| de-DE | befüllt | WithComputerName, NoComputerName |
Zwei Zeilen aus einer echten Konversion — eine DNS-Abfrage und eine serverinterne Notiz:
DateTime;ThreadId;Context;PacketId;Protocol;Direction;ClientIP;Xid;Type;Opcode;FlagsHex;FlagsChar;ResponseCode;QuestionType;QuestionName;Information;Details;ComputerName
2026-01-20 23:00:16;0FE0;Packet;000002C53117D990;UDP;Rcv;10.0.0.2;c049;Query;Standard;0001;RecursionDesired;NOERROR;A;"odc.officeapps.live.com";"";"";dc01
2026-01-20 23:00:16;DF0;Note;;;;;;;;;;;;"";"got GQCS failure on a dead socket context status=995, socket=904";"";dc01
Spalten
Immer 18 Spalten, immer in dieser Reihenfolge:
| # | Spalte | Bedeutung | Typische Verwendung |
|---|---|---|---|
| 1 | DateTime | Zeitstempel des Eintrags | Zeitfilterung, Verknüpfung mit anderen Protokollen |
| 2 | ThreadId | DNS-Server-Arbeitsthread | Selten benötigt; nützlich bei der Korrelation serverinterner Probleme |
| 3 | Context | Art des Eintrags: Packet, Event, Note, DSPoll, Init, Lookup, Recurse, Remote, Tombstone | Erster Filter, den du anwendest — Packet ist der eigentliche DNS-Verkehr |
| 4 | PacketId | Interne Paketkennung | Verknüpfung einer Abfrage mit ihrer Antwort |
| 5 | Protocol | UDP oder TCP | TCP-Spitzen können auf große Antworten oder Zonentransfers hinweisen |
| 6 | Direction | Rcv (Abfrage eingegangen) oder Snd (Server antwortete) | Trennung von Anfrage- und Antwortvolumen |
| 7 | ClientIP | Adresse des abfragenden Hosts | Analyse der aktivsten Hosts, Eingrenzung von Vorfällen |
| 8 | Xid | DNS-Transaktions-ID (hex) | Abgleich von Anfrage und Antwort |
| 9 | Type | Query oder Response | |
| 10 | Opcode | Standard, Notify, Update, Unknown | Trennt dynamische Updates und Zonennachrichten von normalen Abfragen |
| 11 | FlagsHex | Roh-Header-Flags (hex) | Für tiefgehende Protokollanalyse |
| 12 | FlagsChar | Dekodierte Flags: Authoritative, Truncated, RecursionDesired, RecursionAvailable | Lesbare Version der obigen Flags |
| 13 | ResponseCode | NOERROR, NXDOMAIN, SERVFAIL, … | Fehlerquotenbericht, Suche nach Auflösungsfehlern |
| 14 | QuestionType | Eintragstyp: A, AAAA, MX, PTR, TXT, … | TXT-Volumen ist ein klassischer Indikator für Tunneling |
| 15 | QuestionName | Abgefragter Name als normaler FQDN | Bedrohungs-Intelligence-Abgleich, Top-Domain-Berichte |
| 16 | Information | Freitext für Event / Note-Einträge; für Packet Detailblöcke die TCP/UDP-Detail-Headerzeile | Lesen von Servermeldungen |
| 17 | Details | JSON-Darstellung eines Packet Detailblocks; sonst leer | Vollständige Paketinspektion ohne Rückgriff auf das Rohprotokoll |
| 18 | ComputerName | Quellserver, aus -ComputerName | Mehrserver-Datensätze zuordenbar halten |
Zwei Dinge, die du beachten solltest:
- Nicht jede Spalte ist für jede Zeile gefüllt. Nur
Packet-Einträge haben eine Client-IP, einen Abfragenamen und einen Antwortcode.Note- undEvent-Zeilen tragen ihren Text inInformationund lassen die Protokollspalten leer. Gestalte dein Datenbankschema und Dashboard-Filter entsprechend. ComputerNameist immer die letzte Spalte, auch wenn du-ComputerNamenicht benutzt. Dann ist sie einfach leer. So bleibt das Layout über alle Server hinweg identisch, sodass du Dateien von vielen DNS-Servern ohne Spaltenzuordnung zusammenfügen kannst.
Die Details-Spalte
Detailblöcke erscheinen nur, wenn der DNS-Server so konfiguriert ist, dass er vollständige Paketdetails protokolliert. Wenn sie vorhanden sind, wandelt der Parser sie in einen einzelnen JSON-Wert um, sodass die Zeile eine Zeile bleibt:
{
"Socket": "848",
"Remote": "addr 10.10.0.11, port 60580",
"Buflength": "0x10000 (65536)",
"Message": {
"XID": "0x0001",
"OPCODE": "0 (QUERY)",
"RCODE": "0 (NOERROR)",
"QUESTION": [ { "Name": "berlin.de", "QTYPE": "A (1)", "QCLASS": "1" } ],
"ANSWER": []
}
}
Das Parsen dieser Blöcke kostet Zeit und macht die CSV deutlich größer. Wenn du sie nicht brauchst, nutze -NoDetailsParsing — die Spalte bleibt vorhanden, aber leer, und die Konvertierung wird schneller. Siehe Performance.
Die Statistikdateien
Statistiken sind tägliche Aggregationen. Nutze sie, wenn du einen Trend oder eine Zusammenfassung möchtest und nicht den kompletten Datensatz verschieben willst — sie sind um Größenordnungen kleiner als die Datendatei.
Kontextstatistiken (*_Statistic.csv)
Antworten auf die Frage: Wie viel von welcher Aktivität ist pro Tag passiert?
Date;Context;Count;ComputerName
2026-01-20;Event;2;dc01
2026-01-20;Note;2;dc01
2026-01-20;Packet;12;dc01
| Spalte | Bedeutung |
|---|---|
Date | Tag, immer yyyy-MM-dd |
Context | Kontextname (Packet, Event, Note, …) |
Count | Anzahl der Einträge dieses Kontexts an diesem Tag |
ComputerName | Quellserver |
Beispieldateien: en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName
Paketstatistiken (*_PacketStatistic.csv)
Antworten auf die Frage: Wer hat was wie oft pro Tag abgefragt?
Date;ClientIP;Protocol;Direction;QuestionType;Count;ComputerName
2026-01-20;10.0.0.1;UDP;Rcv;A;3;dc01
2026-01-20;10.0.0.1;UDP;Snd;A;3;dc01
2026-01-20;10.0.0.2;UDP;Rcv;A;3;dc01
| Spalte | Bedeutung |
|---|---|
Date | Tag, immer yyyy-MM-dd |
ClientIP | Abfragender Host |
Protocol | UDP oder TCP |
Direction | Rcv oder Snd |
QuestionType | DNS-Eintragstyp |
Count | Anzahl der passenden Pakete an diesem Tag |
ComputerName | Quellserver |
Beispieldateien: en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName
Count ist die Anzahl der Einträge in dieser Tagesgruppe. Ein Client, der denselben Namen 500-mal abgefragt hat, trägt 500 bei, nicht 1. Wenn eine Zahl zu hoch erscheint, ist das meistens der Grund.
Trennzeichen- und Datumsformat
Beide Ausgabetypen respektieren -Delimiter (Standard ;) und -OutputCulture. Für alles, was maschinell importiert wird, schreibe ISO-ähnliche Zeitstempel:
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
Das ergibt 2026-01-20 23:00:16, was SQL Server, Power BI und pandas alle ohne Formatangabe lesen. Details in Parameter und Optionen.