Parámetros y Opciones
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ón | Predeterminado | Cámbialo cuando |
|---|---|---|
-InputFile | (requerido) | siempre |
-OutputFile | ruta de entrada con .csv | quieres la salida en otro lugar |
-Delimiter | ; | tu consumidor espera coma, tabulador o barra vertical |
-ComputerName | vacío | combinas registros de más de un servidor |
-OutputType | Both | solo quieres datos, o solo resúmenes |
-ContextFilter | All | solo te interesa el tráfico DNS real |
-InputCulture | cultura actual | el registro proviene de un servidor con otra configuración regional |
-OutputCulture | cultura actual | una máquina leerá el CSV |
-NoDetailsParsing | desactivado | importa más el rendimiento que los detalles de los paquetes |
-CompressOutput | desactivado | archivas o transfieres los resultados |
-RemoveSourceFile | desactivado | limpieza programada y confías en la salida |
-SkipHeaderValidation | desactivado | el 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.
-OutputFile "D:\Processed\" no significa “escribir dentro de esta carpeta”. Debes dar la ruta completa incluyendo el nombre del archivo: -OutputFile "D:\Processed\dns_data.csv".
Esto también significa que -OutputFile no tiene sentido cuando canalizas muchos archivos — cada conversión escribiría en el mismo destino. Para ejecuciones por lotes, déjalo sin usar y deja que cada registro produzca su propio CSV.
-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
A pesar del nombre (y de los alias -Server / -DNSServer / -HostName), -ComputerName no se conecta a nada. No hay WinRM, ni ejecución remota. Solo escribe una etiqueta en la salida. Para leer un registro remoto, apunta -InputFile a una ruta UNC.
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 datosStatistic— solo los dos archivos agregados, sin datos a nivel de filaBoth— 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
| Valor | Contiene |
|---|---|
All | todo (predeterminado) |
Packet | consultas y respuestas DNS — los datos que la mayoría de análisis necesitan |
Event | eventos del servidor, p. ej. “El servidor DNS ha iniciado” |
Note | notas 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'
| Cultura | Formato de marca de tiempo en el registro |
|---|---|
de-DE | DD.MM.YYYY HH:MM:SS |
en-US | M/D/YYYY H:MM:SS AM/PM |
en-GB | DD/MM/YYYY HH:MM:SS |
sv-SE | YYYY-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
Aquí no hay papelera de reciclaje. Valida tu salida con registros reales antes de activar esto en un trabajo programado, y nunca apuntes a un archivo de registro activo.
El comando se niega deliberadamente a combinar -RemoveSourceFile con -SkipHeaderValidation, para que no puedas borrar un archivo que nunca se confirmó como un registro DNS.
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.
Un registro activo cambia mientras se lee. La salida puede perder entradas escritas durante la conversión y su último registro puede estar truncado. Repetir la ejecución da un resultado diferente.
Para una salida reproducible, activa la rotación de registros en el servidor DNS y convierte solo archivos cerrados y rotados — por ejemplo, saltando el más nuevo:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME
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.