Historique des versions du module

Notes de version versionnées pour le module PowerShell DNSServer.DebugLogParser

Cette section contient les notes de version versionnées pour les différentes versions du module PowerShell DNSServer.DebugLogParser.

Notes de version v1.2.2.0 (2026-07-24)

Ajouté

  • NOUVEAU : Prise en charge de la lecture des fichiers journaux de débogage du serveur DNS actuellement ouverts par le service DNS
    • Permet le traitement des fichiers journaux actifs sans nécessiter leur fermeture préalable
    • Améliore la compatibilité avec les journaux encore en cours d’écriture ou maintenus ouverts par un autre processus
    • Soyez prudent lors du traitement des journaux en direct, car les enregistrements peuvent être incomplets ou en cours de modification
  • NOUVEAU : Prise en charge des chemins SMB/UNC lors de la lecture des fichiers journaux sources
    • Permet au parseur de fonctionner avec des fichiers stockés sur des partages réseau et des emplacements distants
    • Améliore la fiabilité dans les environnements de stockage centralisé ou partagé

Modifié

  • Métadonnées du module : Mise à jour de ProjectUri et ReleaseNotes pour pointer vers le site officiel https://dnsserverdebuglogparser.andibellstedt.com afin d’améliorer la découvrabilité et l’accès à la documentation
  • Correction de l’accès aux fichiers : Mise à jour de la logique d’ouverture des fichiers sous-jacente pour utiliser un accès basé sur les flux avec des options explicites pour les scénarios de lecture partagée
    • Améliore la gestion des fichiers journaux en direct et des types de chemins alternatifs tels que les partages UNC
    • Maintient un comportement cohérent pour les sources de fichiers locales et distantes

Notes de version v1.2.1.0 (2026-01-26)

Modifications

  • Performance : Amélioration du traitement des enregistrements multi-lignes pour éviter de charger de gros fichiers en mémoire
    • Évite les erreurs de mémoire insuffisante sur des fichiers journaux très volumineux
    • Maintient la prise en charge complète des blocs de détails PACKET et des lignes de continuation indentées
    • L’utilisation mémoire est désormais constante quelle que soit la taille du fichier
  • Progression : Ajout de Write-Progress pour un retour sur le traitement
    • La barre de progression se met à jour toutes les 1000 entrées pour un impact minimal sur les performances
    • Affiche le nombre d’enregistrements traités et le fichier en cours d’analyse

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)

Notes de version v1.1.0 (2026-01-23)

Ajouté

  • NOUVEAU : Paramètre ContextFilter pour un parsing sélectif des logs
    • Filtre les entrées de log par type de contexte : PACKET (requêtes/réponses DNS), EVENT (événements serveur) ou Note (informations de diagnostic)
    • Permet une analyse ciblée sur des types spécifiques d’entrées de log
    • Par défaut : Tous (inclut tous les types de contexte)
    • Cas d’usage : Se concentrer uniquement sur le trafic DNS, surveiller les événements serveur, dépanner des problèmes de diagnostic
  • NOUVEAU : Champ Information dans la sortie CSV
    • Capture des informations détaillées pour les entrées de contexte EVENT et Note
    • Exemples : « Le serveur DNS a démarré. », « Chargement de la zone terminé », erreurs de socket, messages d’état interne
    • Améliore la visibilité sur les événements opérationnels et diagnostics du serveur DNS
    • Champ rempli lorsque le contexte est EVENT ou Note ; vide pour les entrées PACKET

Modifié

  • INCOMPATIBILITÉ : La colonne ComputerName est désormais toujours incluse à la fin de tous les enregistrements de sortie
    • Avant : ComputerName était incluse conditionnellement au début quand le paramètre était spécifié
    • Maintenant : ComputerName toujours présente en dernière colonne ; vide si le paramètre n’est pas spécifié
    • Avantage : Structure de sortie cohérente facilitant la consolidation des logs multi-serveurs et le traitement automatisé
    • Impact : Les scripts existants qui analysent la position des colonnes ou attendent une présence conditionnelle doivent être mis à jour

Ajouté

  • Filtrage par contexte pour se concentrer sur des types spécifiques d’entrées de log (PACKET, EVENT, NOTE) via le paramètre ContextFilter

Amélioré

  • Refactorisation de l’aide basée sur les commentaires pour Convert-DNSDebugLogFile pour plus de clarté et concision
  • Descriptions des paramètres mises à jour pour être plus informatives et exploitables
  • Documentation des exemples améliorée avec des cas d’usage plus ciblés et pratiques
  • Fichier d’aide about_DNSServer.DebugLogParser enrichi pour refléter la fonctionnalité actuelle
  • Journalisation détaillée améliorée pour fournir plus d’informations sur la progression pendant le traitement

v1.0.0 (2026-01-23)

Ajouté

  • Version initiale
  • Convert-DNSDebugLogFile - Analyseur haute performance pour les fichiers de journalisation de débogage du serveur DNS Windows
  • Analyse les 15 champs standard des journaux de débogage DNS en un format CSV structuré
  • Prise en charge des délimiteurs CSV personnalisables (par défaut : point-virgule)
  • Colonne ComputerName optionnelle pour la consolidation des journaux multi-serveurs
  • Trois modes de sortie : données CSV uniquement, statistiques uniquement, ou les deux
  • Résumés statistiques regroupant l’activité par IP client, protocole et type de requête
  • Support du pipeline pour le traitement par lots de plusieurs fichiers journaux
  • Validation de l’en-tête pour garantir l’intégrité des données (peut être contournée si nécessaire)
  • Compression automatique optionnelle des fichiers de sortie (format ZIP)
  • Suppression optionnelle des fichiers sources après traitement réussi
  • Analyse et formatage des dates sensibles à la culture pour les serveurs DNS internationaux
  • Optimisé pour les gros fichiers (100 Mo +) grâce à une entrée/sortie en flux et des opérations sur chaînes efficaces
  • Compatible avec PowerShell 5.1+ (éditions Desktop et Core)
  • Prise en charge des formats de journaux Windows Server 2016+ et DNS Server 2012 R2 jusqu’en 2025