Notes de version v1.2.0.0 (2026-01-25)

Ajouté

  • NOUVEAU : Traitement multi-lignes des enregistrements pour les blocs de détails PACKET DNS
    • Les entrées de contexte PACKET peuvent désormais inclure des informations détaillées sur la connexion TCP/UDP et la structure du message DNS
    • Les blocs de détails sont analysés en format JSON structuré dans la nouvelle colonne Details
    • Comprend : infos socket, adresse/port distant, données temporelles, structure du message (XID, Flags, QCOUNT, etc.)
    • Les sections DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) sont capturées avec tous les détails des enregistrements
    • Les noms de domaine encodés dans les blocs de détails sont automatiquement convertis au format FQDN
  • NOUVEAU : Colonne Details dans la sortie CSV
    • Contient les données JSON structurées pour les entrées PACKET avec blocs de détails
    • Vide pour les entrées PACKET sans détails et tous les contextes non-PACKET
    • Permet une analyse approfondie des paquets et une investigation forensique des requêtes/réponses DNS
  • NOUVEAU : Paramètre switch NoDetailsParsing pour optimisation des performances
    • Ignore l’analyse JSON coûteuse des blocs de détails PACKET
    • Peut améliorer la vitesse de traitement de 30 à 50 % pour les logs avec de nombreux blocs de détails
    • À utiliser pour traiter des fichiers très volumineux (100 Mo+) lorsque la structure détaillée des paquets n’est pas nécessaire
    • Les blocs de détails sont toujours collectés dans la colonne Information, mais la colonne Details reste vide
  • NOUVEAU : Support de continuation multi-lignes pour les contextes non-PACKET
    • Les contextes EVENT, Note, DSPoll et autres peuvent maintenant s’étendre sur plusieurs lignes
    • Les lignes de continuation indentées sont automatiquement jointes au champ Information de l’enregistrement principal
    • Préserve les messages d’erreur complets, mises à jour de zone et sorties de diagnostic
  • NOUVEAU : ContextFilter reconnaît des types de contexte supplémentaires : DSPoll, Init, Lookup, Recurse, Remote, Tombstone
    • Effet : Convert-DNSDebugLogFile peut maintenant inclure/exclure ces entrées de diagnostic et cycle de vie via -ContextFilter
  • NOUVEAU : La sortie des statistiques inclut désormais deux fichiers dédiés
    • _Statistic.csv : Comptage quotidien des enregistrements par type de contexte (Date, Context, Count, ComputerName)
    • _PacketStatistic.csv : Comptage quotidien des PACKET par client/protocole/direction/type (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
    • Avantage : Rapports plus ciblés (volume opérationnel par contexte vs répartition du trafic DNS)
  • La génération JSON pour les blocs de détails PACKET est optimisée pour la performance (analyse manuelle au lieu de regex)

Modifié

  • BREAKING : La sortie CSV comprend maintenant 18 colonnes (ajout de la colonne Details avant ComputerName)
    • Nouvel ordre des colonnes : DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, Details, ComputerName
    • Impact : Les scripts qui dépendent des positions des colonnes doivent être mis à jour
    • Avantage : Capacités d’analyse riche des paquets sans modifier le comportement existant de la colonne Information
  • Le traitement des lignes de données a été refactoré pour lire toutes les lignes en mémoire afin de détecter efficacement les enregistrements multi-lignes
    • Performance : Impact minimal grâce à l’utilisation optimisée de List
    • Avantage : Permet une anticipation précise des blocs de détails et des lignes de continuation
  • Les noms de question manquants ou encodés comme vides sont maintenant gérés sans erreur de parsing ; la sortie CSV contiendra un champ QuestionName vide lorsqu’absent

Amélioré

  • Le parsing de Convert-DNSDebugLogFile est plus résilient : validation plus stricte des lignes et extraction améliorée réduisent les lignes erronées ou invalides issues de logs mal formés tout en préservant le format CSV/statistiques
  • La détection du contexte PACKET distingue les requêtes simples des requêtes avec blocs de détails
  • Les lignes vides après les entrées PACKET sans détails sont correctement ignorées
  • Le décodage des noms de domaine dans les blocs de détails utilise la fonction existante ConvertTo-Fqdn pour plus de cohérence

Performances

  • Vitesse de traitement maintenue pour les logs sans blocs de détails
  • Le switch NoDetailsParsing offre une amélioration de vitesse de 30 à 50 % lorsque l’analyse JSON n’est pas nécessaire
  • Gestion efficace de l’état lors du traitement des enregistrements multi-lignes
  • Opérations sur chaînes optimisées (TrimStart, Join) au lieu de regex pour la gestion des lignes de continuation

Notes

  • Ces changements sont conçus pour être rétrocompatibles en usage normal. Si tu relies sur un ensemble exact de noms de contexte ou un comportement de parsing strict antérieur, merci de valider les scripts en aval
  • La nouvelle colonne Details est toujours présente dans la sortie CSV ; utilise NoDetailsParsing pour la garder vide pour les performances
  • Les scripts existants qui analysent le CSV par position de colonne doivent prendre en compte la nouvelle colonne Details (position 17, avant ComputerName)