Parámetros y Opciones

Qué cambia realmente cada opción de Convert-DNSDebugLogFile, cuándo la necesitas y las trampas en las que es fácil caer.

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /es/docs/03-parameters-and-options/index.md.

Esta página explica las opciones en lenguaje sencillo y en el orden en que normalmente las necesitarás. Es una guía, no una especificación: la lista autoritativa y siempre actualizada de parámetros está en la referencia del comando y en:

Get-Help Convert-DNSDebugLogFile -Full

La versión corta

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log"

Esa sola línea ya te da un comportamiento sensato: archivos de datos y estadísticas, delimitador punto y coma, formato de fecha de tu máquina, validación de encabezado activada, registro fuente sin tocar. Todo lo que sigue es ajuste fino.

OpciónPredeterminadoCámbialo cuando
-InputFile(requerido)siempre
-OutputFileruta de entrada con .csvquieres la salida en otro lugar
-Delimiter;tu consumidor espera coma, tabulador o barra vertical
-ComputerNamevacíocombinas registros de más de un servidor
-OutputTypeBothsolo quieres datos, o solo resúmenes
-ContextFilterAllsolo te interesa el tráfico DNS real
-InputCulturecultura actualel registro proviene de un servidor con otra configuración regional
-OutputCulturecultura actualuna máquina leerá el CSV
-NoDetailsParsingdesactivadoimporta más el rendimiento que los detalles de los paquetes
-CompressOutputdesactivadoarchivas o transfieres los resultados
-RemoveSourceFiledesactivadolimpieza programada y confías en la salida
-SkipHeaderValidationdesactivadoel archivo es válido pero el encabezado es inusual

Entrada y salida

-InputFile

Ruta al registro que se va a convertir. Acepta un arreglo y entrada por canalización — por eso funciona esto:

Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" | Convert-DNSDebugLogFile

Get-ChildItem emite objetos con una propiedad FullName, y -InputFile la acepta por nombre de propiedad (sus alias incluyen FullName, Path, FilePath). No se necesita ForEach-Object.

Funcionan rutas locales y rutas SMB/UNC:

Convert-DNSDebugLogFile -InputFile "\\dc01\C$\Administration\Logs\DNSServer\dns.log"

El comando también puede abrir un registro que el servidor DNS tiene abierto actualmente. Consulta registros activos abajo antes de confiar en eso.

-OutputFile

Sin esta opción, el CSV se guarda junto al archivo de entrada, con el mismo nombre base y extensión .csv. Con ella, controlas el destino.

-Delimiter

El valor predeterminado es punto y coma, porque en regiones donde la coma es el separador decimal, eso es lo que Excel espera. Usa -Delimiter "," para herramientas y bases de datos que asumen valores separados por comas clásicas, o -Delimiter "`t" para tabulador.

Sea cual sea tu elección, usa el mismo valor en el lado de importación. Un desajuste es la causa número uno de que “todo termine en una sola columna”.

Etiquetado y filtrado

-ComputerName

Llena la columna ComputerName. La columna existe de todas formas; esto solo le da un valor.

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ComputerName $env:COMPUTERNAME

Siempre configúralo cuando varios servidores alimentan un conjunto de datos — de lo contrario no podrás saber después de qué DC proviene una fila.

-OutputType

  • CSV — solo archivo de datos
  • Statistic — solo los dos archivos agregados, sin datos a nivel de fila
  • Both — los tres archivos (predeterminado)

Statistic es la opción rápida y pequeña cuando solo necesitas tendencias diarias. CSV es adecuado cuando un sistema posterior hace su propia agregación.

-ContextFilter

Un registro de depuración DNS mezcla tráfico real de consultas con charlas internas del servidor. -ContextFilter decide qué pasa a la salida.

# solo tráfico DNS real
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet

# tráfico más eventos del servidor, pero sin notas de diagnóstico
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet, Event
ValorContiene
Alltodo (predeterminado)
Packetconsultas y respuestas DNS — los datos que la mayoría de análisis necesitan
Eventeventos del servidor, p. ej. “El servidor DNS ha iniciado”
Notenotas y advertencias de diagnóstico, p. ej. errores de socket

Tipos de contexto adicionales (DSPoll, Init, Lookup, Recurse, Remote, Tombstone) aparecen bajo All.

Filtrar solo a Event o Note llena solo DateTime, ThreadId, Context e Information — las columnas de protocolo quedan vacías porque esas entradas simplemente no llevan esa información.

-ContextFilter Packet es la elección habitual para pipelines de seguridad e informes: elimina el ruido y reduce notablemente la salida.

Registros internacionales

El servidor DNS escribe marcas de tiempo en la configuración regional de Windows de la máquina donde corre. Un DC alemán escribe 20.01.2026 23:00:16; un servidor de EE. UU. escribe 1/20/2026 11:00:16 PM. Si la configuración regional de tu estación de trabajo difiere de la del servidor, el análisis falla — o peor, intercambia día y mes silenciosamente.

-InputCulture

Indica al analizador qué configuración regional usa el registro fuente:

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
CulturaFormato de marca de tiempo en el registro
de-DEDD.MM.YYYY HH:MM:SS
en-USM/D/YYYY H:MM:SS AM/PM
en-GBDD/MM/YYYY HH:MM:SS
sv-SEYYYY-MM-DD HH:MM:SS

El valor predeterminado es la cultura de la sesión que ejecuta el comando. En un entorno con configuraciones regionales mixtas, configúralo explícitamente en lugar de confiar en ese valor predeterminado — y recuerda que una tarea programada que corre como SYSTEM puede no tener la cultura con la que probaste interactivamente.

-OutputCulture

Controla cómo se escriben las marcas de tiempo en el CSV:

# salida tipo ISO que SQL Server, Power BI y pandas entienden
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'

# mismo efecto, cultura invariante explícita
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" `
    -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)

Regla general: si un humano abre el archivo en Excel, usa la cultura local. Si una máquina lo lee, usa sv-SE o cultura invariante y olvídate de configuraciones regionales en la importación.

Los dos parámetros son independientes — puedes leer un registro sueco y escribir una salida con formato estadounidense.

Velocidad y almacenamiento

-NoDetailsParsing

Si el servidor DNS registra detalles completos de paquetes, el analizador convierte cada bloque de detalles en JSON en la columna Details. Eso es útil, pero también la parte más costosa de la ejecución y hace que el CSV crezca.

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -NoDetailsParsing

La columna permanece presente pero vacía; la línea de encabezado de detalles TCP/UDP sigue disponible en Information. En registros con muchos bloques de detalles esto puede reducir el tiempo de procesamiento entre un 30 y 50 %. Úsalo cuando la información a nivel de consulta sea suficiente.

-CompressOutput

Comprime los archivos CSV generados y elimina los sin comprimir. dns.log produce dns.zip en lugar de dns.csv.

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput

Un CSV de esta forma típicamente se comprime un 90 % o más, así que esto es un ahorro de almacenamiento casi gratis para archivos de archivo y para enviar archivos por la red.

-RemoveSourceFile

Elimina el archivo fuente .log tras una conversión exitosa — el registro solo se borra si todos los archivos de salida se crearon.

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput -RemoveSourceFile

Redes de seguridad

-SkipHeaderValidation

Por defecto el comando verifica que el archivo realmente sea un registro de depuración del servidor DNS antes de analizarlo. Esto evita el error clásico de apuntar el trabajo a la carpeta equivocada.

Desactívalo solo para casos genuinamente inusuales: registros editados a mano, extractos prefiltrados, formatos personalizados. Manténlo activado en todos los demás casos — es barato y es lo que evita que un error tipográfico produzca un montón de filas basura.

-WhatIf y -Confirm

El comando soporta ambos. -WhatIf es la forma correcta de ver qué tocaría un nuevo trabajo por lotes:

Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
    Convert-DNSDebugLogFile -RemoveSourceFile -WhatIf

-Confirm pregunta antes de procesar cada archivo, antes de eliminar un archivo fuente y antes de sobrescribir una salida existente.

Registros activos

Convert-DNSDebugLogFile puede leer un archivo que el servidor DNS tiene abierto. Útil para echar un vistazo rápido a lo que está pasando ahora mismo.

Poniéndolo todo junto

Una invocación típica en producción en un controlador de dominio:

Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
    Sort-Object LastWriteTime -Descending |
    Select-Object -Skip 1 |
    Convert-DNSDebugLogFile `
        -ComputerName $env:COMPUTERNAME `
        -Delimiter ';' `
        -OutputType Both `
        -ContextFilter Packet `
        -OutputCulture 'sv-SE' `
        -CompressOutput

Se lee así: toma cada registro rotado excepto el activo, conserva solo el tráfico DNS, etiqueta cada fila con el nombre del servidor, escribe marcas de tiempo legibles por máquina y deja archivos comprimidos. La versión completa para tarea programada y directiva de grupo está en el ejemplo de recopilación dirigida por GPO.