Paramètres et options

Ce que chaque option de Convert-DNSDebugLogFile modifie réellement, quand vous en avez besoin, et les pièges faciles à éviter.

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

Cette page explique les options en langage clair et dans l’ordre où vous en aurez généralement besoin. C’est un guide, pas une spécification — la liste autoritaire et toujours à jour des paramètres se trouve dans la référence de commande et dans :

Get-Help Convert-DNSDebugLogFile -Full

La version courte

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

Cette seule ligne vous donne déjà un comportement sensé : fichiers de données et de statistiques, délimiteur point-virgule, format de date de votre machine, validation de l’en-tête activée, journal source intact. Tout ce qui suit est du réglage fin.

OptionPar défautChangez-la quand
-InputFile(obligatoire)toujours
-OutputFilechemin d’entrée avec .csvvous voulez la sortie ailleurs
-Delimiter;votre consommateur attend une virgule, une tabulation ou un pipe
-ComputerNamevidevous fusionnez des journaux de plusieurs serveurs
-OutputTypeBothvous ne voulez que les données, ou seulement les synthèses
-ContextFilterAllvous ne vous intéressez qu’au trafic DNS réel
-InputCultureculture actuellele journal vient d’un serveur avec une autre locale
-OutputCultureculture actuelleune machine lira le CSV
-NoDetailsParsingdésactivéle débit compte plus que les détails des paquets
-CompressOutputdésactivévous archivez ou transférez les résultats
-RemoveSourceFiledésactivénettoyage programmé, et vous faites confiance à la sortie
-SkipHeaderValidationdésactivéle fichier est valide mais l’en-tête est inhabituel

Entrée et sortie

-InputFile

Chemin vers le journal à convertir. Accepte un tableau et l’entrée par pipeline — c’est pourquoi ceci fonctionne :

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

Get-ChildItem émet des objets avec une propriété FullName, et -InputFile l’accepte par nom de propriété (ses alias incluent FullName, Path, FilePath). Pas besoin de ForEach-Object.

Les chemins locaux et SMB/UNC fonctionnent tous les deux :

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

La commande peut aussi ouvrir un journal que le serveur DNS a actuellement ouvert. Voir journaux actifs ci-dessous avant de vous y fier.

-OutputFile

Sans cette option, le CSV est créé à côté du fichier d’entrée, même nom de base, extension .csv. Avec, vous contrôlez la destination.

-Delimiter

Par défaut, c’est un point-virgule, car dans les locales où la virgule est le séparateur décimal, c’est ce qu’Excel attend. Utilisez -Delimiter "," pour les outils et bases de données qui attendent des valeurs séparées par des virgules classiques, ou -Delimiter "`t" pour une tabulation.

Quelle que soit votre sélection, utilisez la même valeur à l’import. Un décalage est la cause numéro un de “tout est dans une seule colonne”.

Étiquetage et filtrage

-ComputerName

Remplit la colonne ComputerName. La colonne existe de toute façon ; cela lui donne juste une valeur.

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

Mettez-le toujours quand plusieurs serveurs alimentent un même jeu de données — sinon vous ne pourrez pas dire ensuite de quel DC vient une ligne.

-OutputType

  • CSV — fichier de données uniquement
  • Statistic — les deux fichiers agrégés seulement, pas les données ligne par ligne
  • Both — les trois fichiers (par défaut)

Statistic est l’option rapide et légère quand vous ne voulez que les tendances journalières. CSV est adapté quand un système en aval fait sa propre agrégation.

-ContextFilter

Un journal de débogage DNS mélange le trafic réel des requêtes avec le bavardage interne du serveur. -ContextFilter décide ce qui survit dans la sortie.

# uniquement le trafic DNS réel
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet

# trafic plus événements serveur, mais pas les notes de diagnostic
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet, Event
ValeurContient
Alltout (par défaut)
Packetrequêtes et réponses DNS — les données dont la plupart des analyses ont besoin
Eventévénements serveur, ex. “Le serveur DNS a démarré”
Notenotes et avertissements de diagnostic, ex. erreurs de socket

D’autres types de contexte (DSPoll, Init, Lookup, Recurse, Remote, Tombstone) apparaissent sous All.

Filtrer sur Event ou Note remplit seulement DateTime, ThreadId, Context et Information — les colonnes de protocole restent vides car ces entrées ne portent pas cette information.

-ContextFilter Packet est le choix habituel pour les pipelines de sécurité et de reporting : il enlève le bruit et réduit nettement la sortie.

Journaux internationaux

Le serveur DNS écrit les horodatages dans la locale Windows de la machine où il tourne. Un DC allemand écrit 20.01.2026 23:00:16 ; un serveur US écrit 1/20/2026 11:00:16 PM. Si la locale de votre poste diffère de celle du serveur, l’analyse échoue — ou pire, échange silencieusement jour et mois.

-InputCulture

Indiquez au parseur la locale utilisée par le journal source :

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
CultureFormat d’horodatage dans le journal
de-DEJJ.MM.AAAA HH:MM:SS
en-USM/J/AAAA H:MM:SS AM/PM
en-GBJJ/MM/AAAA HH:MM:SS
sv-SEAAAA-MM-JJ HH:MM:SS

Par défaut, c’est la culture de la session qui exécute la commande. Dans un environnement à locales mixtes, définissez-la explicitement plutôt que de compter sur ce défaut — et souvenez-vous qu’une tâche planifiée lancée en tant que SYSTEM peut ne pas avoir la culture que vous avez testée en interactif.

-OutputCulture

Contrôle comment les horodatages sont écrits dans le CSV :

# sortie de type ISO que SQL Server, Power BI et pandas comprennent tous
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'

# même effet, culture invariante explicite
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" `
    -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)

Règle générale : si un humain ouvre le fichier dans Excel, adaptez à la culture locale. Si une machine le lit, utilisez sv-SE ou la culture invariante et ne vous souciez plus des paramètres régionaux à l’import.

Les deux paramètres sont indépendants — vous pouvez lire un journal suédois et écrire une sortie au format US.

Vitesse et stockage

-NoDetailsParsing

Si le serveur DNS journalise les détails complets des paquets, le parseur transforme chaque bloc de détails en JSON dans la colonne Details. C’est utile, mais c’est aussi la partie la plus coûteuse du traitement et cela gonfle le CSV.

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

La colonne reste présente mais vide ; la ligne d’en-tête des détails TCP/UDP est toujours disponible dans Information. Sur des journaux riches en blocs de détails, cela peut réduire le temps de traitement de 30 à 50 %. Utilisez-le dès que les informations au niveau des requêtes suffisent.

-CompressOutput

Compresse les fichiers CSV générés en ZIP et supprime les fichiers non compressés. dns.log produit dns.zip au lieu de dns.csv.

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

Un CSV de cette forme se compresse typiquement à 90 % ou plus, donc c’est presque un gain de stockage gratuit pour les archives et pour l’envoi des fichiers sur le réseau.

-RemoveSourceFile

Supprime le fichier source .log après une conversion réussie — le journal n’est supprimé que si tous les fichiers de sortie ont été créés.

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

Filets de sécurité

-SkipHeaderValidation

Par défaut, la commande vérifie que le fichier est bien un journal de débogage DNS Server avant de le parser. Cela évite la classique erreur de pointer la tâche vers le mauvais dossier.

Désactivez-le uniquement pour des cas vraiment inhabituels : journaux édités à la main, extraits pré-filtrés, formats personnalisés. Gardez-le activé partout ailleurs — c’est peu coûteux et c’est ce qui vous protège d’une faute de frappe et d’une montagne de lignes inutiles.

-WhatIf et -Confirm

La commande supporte les deux. -WhatIf est la bonne façon de voir ce qu’une nouvelle tâche par lot toucherait :

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

-Confirm demande une confirmation avant de traiter chaque fichier, avant de supprimer un fichier source, et avant d’écraser une sortie existante.

Journaux actifs

Convert-DNSDebugLogFile peut lire un fichier que le serveur DNS a ouvert. Pratique pour un coup d’œil ad hoc sur ce qui se passe en ce moment.

Mise en pratique

Une invocation typique en production sur un contrôleur de domaine :

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

À lire comme : prenez chaque journal tourné sauf l’actif, ne gardez que le trafic DNS, étiquetez chaque ligne avec le nom du serveur, écrivez des horodatages lisibles par machine, et laissez des archives compressées. La version complète pour tâche planifiée et stratégie de groupe est dans l’exemple de collecte pilotée par GPO.