Formats de sortie
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fr/docs/02-output-formats/index.md.
Convert-DNSDebugLogFile produit jusqu’à trois fichiers par fichier journal d’entrée :
| Fichier | Contenu | Créé quand |
|---|---|---|
<name>.csv | Une ligne par entrée de journal analysée | -OutputType CSV ou Both |
<name>_Statistic.csv | Nombre d’enregistrements quotidiens par contexte | -OutputType Statistic ou Both |
<name>_PacketStatistic.csv | Nombre quotidien de requêtes par client, protocole, direction et type d’enregistrement | -OutputType Statistic ou Both |
Both est la valeur par défaut. La sortie est placée à côté du fichier d’entrée sauf si tu définis -OutputFile.
Les fichiers exemples liés sur cette page sont des résultats de conversion réels, pas des maquettes. Télécharge-en un et ouvre-le dans Excel avant de te lancer dans la conception d’un pipeline.
Le fichier de données CSV
Exemple de sortie :
| Locale | Colonne Détails | Fichiers |
|---|---|---|
| en-US | non renseignée | WithComputerName, NoComputerName |
| de-DE | non renseignée | WithComputerName, NoComputerName |
| de-DE | renseignée | WithComputerName, NoComputerName |
Deux lignes issues d’une conversion réelle — une requête DNS et une note interne au serveur :
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
Colonnes
Toujours 18 colonnes, toujours dans cet ordre :
| # | Colonne | Signification | Usage typique |
|---|---|---|---|
| 1 | DateTime | Horodatage de l’entrée | Filtrage temporel, jointure avec d’autres journaux |
| 2 | ThreadId | Thread de travail du serveur DNS | Rarement nécessaire ; utile pour corréler des problèmes internes au serveur |
| 3 | Context | Type d’entrée : Packet, Event, Note, DSPoll, Init, Lookup, Recurse, Remote, Tombstone | Premier filtre que tu appliqueras — Packet correspond au trafic DNS réel |
| 4 | PacketId | Identifiant interne du paquet | Jumeler une requête avec sa réponse |
| 5 | Protocol | UDP ou TCP | Les pics TCP peuvent indiquer de grosses réponses ou des transferts de zone |
| 6 | Direction | Rcv (requête reçue) ou Snd (réponse envoyée) | Séparer le volume des requêtes du volume des réponses |
| 7 | ClientIP | Adresse de l’hôte qui interroge | Analyse des plus gros émetteurs, cadrage d’incident |
| 8 | Xid | ID de transaction DNS (hexadécimal) | Faire correspondre requête et réponse |
| 9 | Type | Query ou Response | |
| 10 | Opcode | Standard, Notify, Update, Unknown | Sépare les mises à jour dynamiques et notifications de zone des recherches normales |
| 11 | FlagsHex | Flags bruts de l’en-tête (hexadécimal) | Pour une analyse approfondie du protocole |
| 12 | FlagsChar | Flags décodés : Authoritative, Truncated, RecursionDesired, RecursionAvailable | Version lisible des flags ci-dessus |
| 13 | ResponseCode | NOERROR, NXDOMAIN, SERVFAIL, … | Rapport de taux d’erreur, recherche d’échecs de résolution |
| 14 | QuestionType | Type d’enregistrement : A, AAAA, MX, PTR, TXT, … | Le volume TXT est un indicateur classique de tunneling |
| 15 | QuestionName | Nom interrogé en FQDN normal | Correspondance avec renseignements sur les menaces, rapports de domaines principaux |
| 16 | Information | Texte libre pour les entrées Event / Note ; pour les blocs de détails Packet, ligne d’en-tête TCP/UDP | Lecture des messages serveur |
| 17 | Details | Représentation JSON d’un bloc de détails Packet ; vide sinon | Inspection complète du paquet sans revenir au journal brut |
| 18 | ComputerName | Serveur source, depuis -ComputerName | Permet d’attribuer les données multi-serveurs |
Deux points à prévoir :
- Toutes les colonnes ne sont pas remplies pour chaque ligne. Seules les entrées
Packetont une IP client, un nom de question et un code de réponse. Les lignesNoteetEventportent leur texte dansInformationet laissent les colonnes protocole vides. Conçois ton schéma de base de données et tes filtres de tableau de bord en conséquence. ComputerNameest toujours la dernière colonne, même si tu n’utilises pas-ComputerName. Elle est alors simplement vide. Cela garantit une mise en page identique sur tous les serveurs pour concaténer des fichiers de plusieurs serveurs DNS sans étape de mappage des colonnes.
La colonne Détails
Les blocs de détails n’apparaissent que si le serveur DNS est configuré pour enregistrer les détails complets des paquets. Lorsqu’ils existent, le parseur les convertit en une seule valeur JSON pour que la ligne reste unique :
{
"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": []
}
}
Analyser ces blocs prend du temps et rend le CSV beaucoup plus volumineux. Si tu n’en as pas besoin, utilise -NoDetailsParsing — la colonne reste présente mais vide, et la conversion est plus rapide. Voir Performance.
Les fichiers statistiques
Les statistiques sont des agrégats quotidiens. Utilise-les quand tu veux une tendance ou un résumé et que tu ne veux pas manipuler l’ensemble complet des enregistrements — ils sont des ordres de grandeur plus petits que le fichier de données.
Statistiques par contexte (*_Statistic.csv)
Répondent à la question : quelle quantité de quel type d’activité s’est produite par jour ?
Date;Context;Count;ComputerName
2026-01-20;Event;2;dc01
2026-01-20;Note;2;dc01
2026-01-20;Packet;12;dc01
| Colonne | Signification |
|---|---|
Date | Jour, toujours au format yyyy-MM-dd |
Context | Nom du contexte (Packet, Event, Note, …) |
Count | Nombre d’enregistrements de ce contexte ce jour-là |
ComputerName | Serveur source |
Fichiers exemples : en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName
Statistiques par paquet (*_PacketStatistic.csv)
Répondent à la question : qui a interrogé quoi, combien de fois, par jour ?
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
| Colonne | Signification |
|---|---|
Date | Jour, toujours au format yyyy-MM-dd |
ClientIP | Hôte qui interroge |
Protocol | UDP ou TCP |
Direction | Rcv ou Snd |
QuestionType | Type d’enregistrement DNS |
Count | Nombre de paquets correspondants ce jour-là |
ComputerName | Serveur source |
Fichiers exemples : en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName
Count est le nombre d’enregistrements dans ce groupe quotidien. Un client qui a demandé le même nom 500 fois contribue pour 500, pas 1. Si un nombre semble trop élevé, c’est généralement pour cette raison.
Délimiteur et format de date
Les deux types de sortie respectent -Delimiter (par défaut ;) et -OutputCulture. Pour tout ce qui sera importé par une machine, écris des horodatages au format ISO-like :
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
Cela produit 2026-01-20 23:00:16, que SQL Server, Power BI et pandas lisent sans indication de format. Détails dans Paramètres et options.