Solución de problemas
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /es/docs/08-troubleshooting/index.md.
“El archivo no es un archivo válido de registro de depuración DNS”
La verificación del encabezado rechazó la entrada. Normalmente la ruta está simplemente equivocada: un archivo .log en la misma carpeta que no es el registro de depuración DNS, o un archivo que solo contiene un encabezado rotado.
Sigue estos pasos:
Abre el archivo. Un registro de depuración DNS comienza con una línea de encabezado como
Message logging started at …y continúa con entradas de consultas con marcas de tiempo.Confirma que el registro de depuración DNS está realmente habilitado y escribiendo en la ruta que esperas:
Get-DnsServerDiagnostics | Select-Object Enable, LogFilePath, MaxMBFileSizeSi el archivo es genuinamente un registro DNS pero el encabezado es inusual — editado a mano, prefiltrado, una exportación personalizada — omite la verificación:
Convert-DNSDebugLogFile -InputFile "C:\Logs\odd.log" -SkipHeaderValidation
Mantén la validación habilitada en todos los demás casos. Ten en cuenta que -SkipHeaderValidation no puede combinarse con -RemoveSourceFile, por lo que un archivo no verificado nunca puede ser eliminado por la conversión.
El archivo de salida está vacío o tiene muchas menos filas de las esperadas
Verifica, en este orden:
- ¿El registro contiene entradas de consultas? Un registro recién rotado puede contener solo un encabezado si aún no ocurrieron consultas.
- ¿Se está usando un
-ContextFilter?-ContextFilter Packetelimina por diseño las entradasEventyNote. Si filtraste aEventoNote, la mayoría de las columnas también estarán vacías — esos tipos de entradas solo contienenDateTime,ThreadId,ContexteInformation. - ¿Estaba activo el registro fuente? Un archivo que el servidor DNS sigue escribiendo puede cambiar durante la conversión; las entradas más nuevas pueden faltar y el último registro puede estar truncado. Convierte un registro rotado y cerrado cuando necesites una salida completa.
- ¿Está el archivo corrupto o truncado? Revisa el final del registro en busca de una línea medio escrita.
Las fechas están mal, desplazadas o el día y el mes están intercambiados
El registro fue escrito por un servidor con una configuración regional de Windows diferente a la sesión que hace la conversión. 20.01.2026 y 01/20/2026 describen el mismo momento, pero solo si ambos lados coinciden en el formato.
# el registro provino de un servidor alemán
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
Establece -InputCulture explícitamente en trabajos programados en lugar de confiar en la cultura de la cuenta que los ejecuta. Si la salida debe ser legible por máquina, añade -OutputCulture 'sv-SE'. Más detalles en Parámetros y Opciones.
Todo termina en una columna después de la importación
Error de delimitador. El módulo escribe ; por defecto; tu consumidor esperaba , (o viceversa).
Vuelve a ejecutar la conversión con el delimitador que quiere el consumidor:
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter ","
…o indica al importador qué delimitador usa el archivo — en Excel vía Datos → Desde texto/CSV, en PowerShell vía Import-Csv -Delimiter ';'.
“Acceso denegado”
- El directorio del registro DNS normalmente requiere derechos administrativos. Inicia PowerShell elevado, o ejecuta la tarea programada con una cuenta que tenga acceso.
- Verifica también el acceso de escritura al directorio de salida, no solo el acceso de lectura al registro.
- Para rutas SMB/UNC: una tarea que corre como
SYSTEMse autentica en la red como la cuenta del equipo. Otorga permisos de compartición y NTFS a esa cuenta de equipo (o al grupoDomain Controllers), o usa una cuenta de servicio dedicada. - Si
-RemoveSourceFilefalla al final de una ejecución exitosa, la cuenta puede leer el registro pero no eliminarlo.
El procesamiento es muy lento
- Primero el disco — la conversión depende de I/O. Un volumen ocupado o una ruta de red lenta dominan el tiempo de ejecución.
- Usa
-NoDetailsParsingsi no necesitas el JSON con detalles del paquete; en registros con muchos detalles esto ahorra entre 30 y 50 %. - Usa
-ContextFilter Packetpara escribir menos. - Divide registros enormes con la rotación de registros del servidor DNS en lugar de convertir un archivo enorme.
- Considera una exclusión antivirus para el directorio del registro.
Más en Rendimiento.
La salida comprimida es más grande de lo esperado
Los registros con contenido muy diverso — muchos dominios únicos, muchos clientes distintos — se comprimen menos que los repetitivos. Eso es normal. ZIP aún suele lograr una reducción sustancial; si no es así, verifica si la columna Details está inflando el archivo y si realmente la necesitas.
Las estadísticas no coinciden con lo esperado
- Confirma que usaste
-OutputType Botho-OutputType Statistic. Con-OutputType CSV, no se generan archivos de estadísticas. Countes un total, no un conteo distinto. Un cliente que pide el mismo nombre 500 veces aporta 500. Esta es la causa más frecuente de “ese número no puede ser correcto”.- Las estadísticas se agrupan por día. Un registro que abarca dos días produce filas para ambos.
- Si
ComputerNameestá vacío en los archivos de estadísticas, no se estableció-ComputerNamedurante la conversión.
La tarea programada funciona de forma interactiva pero no como tarea
Casi siempre es una de tres cosas:
- Módulo no encontrado.
SYSTEMcon-NoProfilesolo ve rutas de módulos a nivel máquina. Instala el módulo a nivel máquina o añade unImport-Module DNSServer.DebugLogParserexplícito en la acción de la tarea. - Cultura incorrecta. La configuración regional de la cuenta de la tarea difiere de la tuya. Establece
-InputCulturey-OutputCultureexplícitamente. - Política de ejecución o script no firmado. Ajusta el
-ExecutionPolicyde la tarea para que coincida con tu política de firma, y desbloquea archivos copiados de otro lugar.
Ejecuta manualmente la línea de comando exacta de la tarea en el mismo contexto (por ejemplo con PsExec como SYSTEM) para reproducir el problema.
Reportar un problema
Si nada de esto ayuda:
Actualiza a la última versión del módulo y vuelve a intentarlo.
Busca en los issues de GitHub el mismo síntoma.
Recopila los diagnósticos:
$PSVersionTable Get-Module DNSServer.DebugLogParser -ListAvailable | Select-Object Name, Version, Path Get-Cultureademás del comando exacto que ejecutaste, el mensaje de error completo incluyendo el seguimiento de pila, y — si puedes compartirlo — un pequeño extracto anonimizado del registro que reproduzca el problema.
Abre un nuevo issue con esa información.