Historial de versiones del módulo

Notas de la versión con control de versiones para el módulo DNSServer.DebugLogParser de PowerShell

Esta sección contiene notas de la versión con control de versiones para las distintas versiones del módulo DNSServer.DebugLogParser de PowerShell.

Notas de la versión v1.2.2.0 (2026-07-24)

Añadido

  • NUEVO: Soporte para leer archivos de registro de depuración del servidor DNS que están abiertos actualmente por el servicio DNS
    • Permite procesar archivos de registro activos sin necesidad de que el archivo se cierre primero
    • Mejora la compatibilidad con registros que aún están siendo escritos o mantenidos abiertos por otro proceso
    • Ten cuidado al procesar registros en vivo, ya que los registros pueden estar incompletos o en constante cambio
  • NUEVO: Soporte para rutas SMB/UNC al leer archivos de registro fuente
    • Permite que el analizador funcione con archivos almacenados en recursos compartidos de red y ubicaciones remotas
    • Mejora la fiabilidad en entornos de almacenamiento centralizado o compartido

Cambiado

  • Metadatos del módulo: Actualizados ProjectUri y ReleaseNotes para apuntar al sitio web oficial https://dnsserverdebuglogparser.andibellstedt.com para mejor descubrimiento y acceso a la documentación
  • Acceso a archivos corregido: Actualizada la lógica subyacente de apertura de archivos para usar acceso basado en flujo con opciones explícitas para escenarios de lectura compartida
    • Mejora el manejo de archivos de registro en vivo y tipos de rutas alternas como recursos UNC
    • Mantiene un comportamiento consistente para fuentes de archivos locales y remotas

Notas de la versión v1.2.1.0 (2026-01-26)

Cambios

  • Rendimiento: Mejorado el procesamiento de registros multilínea para evitar cargar archivos grandes en memoria
    • Previene errores de falta de memoria en archivos de registro muy grandes
    • Mantiene soporte completo para bloques de detalle PACKET y líneas de continuación indentadas
    • El uso de memoria ahora es constante sin importar el tamaño del archivo
  • Progreso: Añadido Write-Progress para retroalimentación del procesamiento
    • La barra de progreso se actualiza cada 1000 registros para un impacto mínimo en el rendimiento
    • Muestra el conteo actual de registros y el archivo que se está procesando

Notas de la versión v1.2.0.0 (2026-01-25)

Añadido

  • NUEVO: Procesamiento de registros multilínea para bloques de detalle PACKET de DNS
    • Las entradas de contexto PACKET ahora pueden incluir información detallada de conexión TCP/UDP y estructura de mensajes DNS
    • Los bloques de detalle se analizan en formato JSON estructurado en la nueva columna Details
    • Incluye: Información de socket, dirección/puerto remotos, datos de temporización, estructura del mensaje (XID, Flags, QCOUNT, etc.)
    • Se capturan las secciones DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) con detalles completos de los registros
    • Los nombres de dominio codificados en los bloques de detalle se convierten automáticamente al formato FQDN
  • NUEVO: Columna Details en la salida CSV
    • Contiene datos JSON estructurados para entradas PACKET con bloques de detalle
    • Vacía para entradas PACKET sin detalles y para todos los contextos que no son PACKET
    • Permite un análisis profundo de paquetes e investigación forense de consultas/respuestas DNS
  • NUEVO: Parámetro conmutador NoDetailsParsing para optimización de rendimiento
    • Omite el costoso análisis JSON de los bloques de detalle PACKET
    • Puede mejorar la velocidad de procesamiento en un 30-50% para registros con muchos bloques de detalle
    • Úsalo al procesar archivos muy grandes (100MB+) cuando no se necesite la estructura detallada del paquete
    • Los bloques de detalle siguen recogidos en la columna Information, pero la columna Details permanece vacía
  • NUEVO: Soporte de continuación multilínea para contextos que no son PACKET
    • EVENT, Note, DSPoll y otros contextos ahora pueden abarcar varias líneas
    • Las líneas de continuación indentadas se unen automáticamente al campo Information del registro principal
    • Preserva mensajes de error completos, actualizaciones de zona y salida diagnóstica
  • NUEVO: ContextFilter reconoce tipos de contexto adicionales: DSPoll, Init, Lookup, Recurse, Remote, Tombstone
    • Efecto: Convert-DNSDebugLogFile ahora puede incluir/excluir estas entradas diagnósticas y de ciclo de vida mediante -ContextFilter
  • NUEVO: La salida de estadísticas ahora incluye dos archivos dedicados
    • _Statistic.csv: Conteos diarios de registros por tipo de contexto (Date, Context, Count, ComputerName)
    • _PacketStatistic.csv: Conteos diarios de PACKET por cliente/protocolo/dirección/tipo (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
    • Beneficio: Informes más enfocados (volumen de contexto operativo vs. desglose del tráfico DNS)
  • La generación de JSON para bloques de detalle PACKET está optimizada para rendimiento (análisis manual en lugar de regex)

Cambiado

  • CAMBIO IMPORTANTE: La salida CSV ahora incluye 18 columnas (se añadió la columna Details antes de ComputerName)
    • Nuevo orden de columnas: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, Details, ComputerName
    • Impacto: Los scripts que dependen de posiciones de columna deben actualizarse
    • Beneficio: Capacidades avanzadas de análisis de paquetes sin cambiar el comportamiento existente de la columna Information
  • El procesamiento de líneas de datos fue refactorizado para leer todas las líneas en memoria y detectar registros multilínea eficientemente
    • Rendimiento: Impacto mínimo gracias al uso optimizado de List
    • Beneficio: Permite una anticipación precisa para bloques de detalle y líneas de continuación
  • Los nombres de preguntas que faltan o están codificados como vacíos ahora se manejan sin errores de análisis; la salida CSV contendrá un campo QuestionName vacío cuando no esté presente

Mejorado

  • El análisis de Convert-DNSDebugLogFile es más resistente: validación más estricta de líneas y extracción mejorada reducen filas espurias/inválidas de registros malformados mientras se preserva el formato CSV/estadístico
  • La detección del contexto PACKET distingue entre consultas simples y consultas con bloques de detalle
  • Las líneas vacías después de entradas PACKET sin detalles se omiten correctamente
  • La decodificación de nombres de dominio en bloques de detalle usa la función existente ConvertTo-Fqdn para mayor consistencia

Rendimiento

  • Velocidad de procesamiento mantenida para registros sin bloques de detalle
  • El conmutador NoDetailsParsing ofrece una mejora de velocidad del 30-50% cuando no se necesita análisis JSON
  • Gestión eficiente del estado durante el procesamiento de registros multilínea
  • Operaciones de cadena optimizadas (TrimStart, Join) en lugar de regex para manejo de líneas de continuación

Notas

  • Estos cambios están diseñados para ser compatibles hacia atrás en el uso normal. Si dependes de un conjunto exacto de nombres de contexto o del comportamiento de análisis previamente estricto, valida tus scripts posteriores
  • La nueva columna Details siempre está presente en la salida CSV; usa NoDetailsParsing para mantenerla vacía y mejorar el rendimiento
  • Los scripts existentes que analizan CSV por posición de columna deben tener en cuenta la nueva columna Details (posición 17, antes de ComputerName)

Notas de la versión v1.1.0 (2026-01-23)

Añadido

  • NUEVO: Parámetro ContextFilter para análisis selectivo de registros
    • Filtra entradas de registro por tipo de contexto: PACKET (consultas/respuestas DNS), EVENT (eventos del servidor) o Note (información diagnóstica)
    • Permite un análisis enfocado en tipos específicos de entradas de registro
    • Por defecto: All (incluye todos los tipos de contexto)
    • Casos de uso: Enfocarse solo en tráfico DNS, monitorear eventos del servidor, solucionar problemas diagnósticos
  • NUEVO: Campo Information en la salida CSV
    • Captura información detallada para entradas de contexto EVENT y Note
    • Ejemplos: “The DNS server has started.”, “Zone loading completed”, errores de socket, mensajes de estado interno
    • Mejora la visibilidad de eventos operativos y diagnósticos del servidor DNS
    • El campo se rellena cuando el Context es EVENT o Note; queda vacío para entradas PACKET

Cambiado

  • CAMBIO IMPORTANTE: La columna ComputerName ahora siempre se incluye al final de todos los registros de salida
    • Antes: ComputerName se incluía condicionalmente al principio cuando se especificaba un parámetro
    • Ahora: ComputerName siempre presente como última columna; vacía si no se especifica el parámetro
    • Beneficio: Estructura de salida consistente que simplifica la consolidación de registros de múltiples servidores y el procesamiento automatizado
    • Impacto: Los scripts existentes que analizan posiciones de columnas o esperan presencia condicional deben actualizarse

Añadido

  • Filtrado por contexto para enfocarse en tipos específicos de entradas de registro (PACKET, EVENT, NOTE) mediante el parámetro ContextFilter

Mejorado

  • Refactorización de la ayuda basada en comentarios para Convert-DNSDebugLogFile para mayor claridad y concisión
  • Actualización de descripciones de parámetros para ser más informativas y prácticas
  • Mejora en la documentación de ejemplos con casos de uso más enfocados y prácticos
  • Actualización del archivo de ayuda about_DNSServer.DebugLogParser para reflejar la funcionalidad actual
  • Mejora del registro detallado (verbose) para proporcionar información más precisa sobre el progreso durante el procesamiento

v1.0.0 (2026-01-23)

Añadido

  • Lanzamiento inicial
  • Convert-DNSDebugLogFile - Analizador de alto rendimiento para archivos de registro de depuración del servidor DNS de Windows
  • Analiza los 15 campos estándar de los registros de depuración DNS en formato CSV estructurado
  • Soporta delimitadores CSV personalizables (por defecto: punto y coma)
  • Columna opcional ComputerName para consolidación de registros de múltiples servidores
  • Tres modos de salida: solo datos CSV, solo estadísticas o ambos
  • Resúmenes estadísticos que agregan actividad por IP cliente, protocolo y tipo de consulta
  • Soporte para procesamiento por lotes de múltiples archivos de registro mediante pipeline
  • Validación de encabezados para asegurar la integridad de los datos (puede omitirse si es necesario)
  • Compresión automática opcional de archivos de salida (formato ZIP)
  • Eliminación opcional de archivos fuente tras procesamiento exitoso
  • Análisis y formato de fechas sensibles a la cultura para servidores DNS internacionales
  • Optimizado para archivos grandes (más de 100MB) usando E/S en streaming y operaciones eficientes de cadenas
  • Compatible con PowerShell 5.1+ (ediciones Desktop y Core)
  • Soporta formatos de registro de Windows Server 2016+ y DNS Server 2012 R2 hasta 2025