Version 1.1.0.0 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot.
Convert-DNSDebugLogFile
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /v1.1.0.0/fr/docs/commands/convert-dnsdebuglogfile/index.md.
SYNOPSIS
Transforme les journaux de débogage du serveur DNS Windows en un format CSV structuré pour analyse et reporting.
SYNTAX
__AllParameterSets
Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
[[-ComputerName] <string>] [[-OutputType] <string>] [[-ContextFilter] <string>]
[[-InputCulture] <cultureinfo>] [[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation]
[-RemoveSourceFile] [-CompressOutput] [-WhatIf] [-Confirm] [<CommonParameters>]
ALIASES
Cette cmdlet possède les alias suivants,
DESCRIPTION
Convertit les fichiers journaux de débogage du serveur DNS Windows en données CSV structurées pouvant être analysées dans Excel, Power BI, bases de données SQL ou outils SIEM. Conçu pour l’analyse de sécurité, la surveillance des performances, le dépannage et le reporting de conformité.
La cmdlet analyse les 17 champs des journaux de débogage DNS incluant date/heure, protocole, IP client, type de requête, noms de domaine, codes de réponse, indicateurs, informations d’événement et nom de l’ordinateur. Elle génère une sortie CSV structurée avec un résumé statistique optionnel agrégant l’activité par client, protocole et type de requête.
FONCTIONNALITÉS CLÉS :
- Analyse haute performance optimisée pour les gros fichiers (100 Mo+)
- Délimiteur CSV personnalisable (par défaut : point-virgule)
- Résumés statistiques optionnels avec métriques agrégées
- Filtrage par contexte (PACKET, EVENT, Note) pour cibler certains types d’entrées
- Analyse et formatage des dates sensibles à la culture pour serveurs internationaux
- Support du pipeline pour traitement par lots de plusieurs fichiers
- Compression optionnelle des fichiers de sortie (format ZIP)
- Suppression automatique optionnelle des fichiers sources après traitement
- Validation des en-têtes pour assurer l’intégrité des données
FORMAT DE SORTIE : La colonne ComputerName est toujours incluse à la fin de chaque enregistrement. Si le paramètre -ComputerName n’est pas spécifié, la colonne sera vide. Cela garantit une structure de sortie cohérente pour les scénarios de consolidation multi-serveurs.
PERFORMANCE : Optimisé avec StreamReader/StreamWriter utilisant des tampons de 64 Ko, opérations sur chaînes au lieu de regex, génération manuelle du CSV, et collecte efficace des statistiques via tables de hachage.
COMPATIBILITÉ :
- PowerShell 5.1+ (éd. Desktop et Core)
- Windows Server 2016+
- Formats de journaux DNS Server 2012 R2 à 2025
EXAMPLES
EXEMPLE 1
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log"
Convertit le journal DNS avec les paramètres par défaut (fichiers de données et statistiques avec délimiteur point-virgule).
Sortie : C:\Logs\dns.csv et C:\Logs\dns_statistic.csv
EXEMPLE 2
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType CSV
Génère uniquement le fichier de données sans statistiques.
Sortie : C:\Logs\dns.csv
EXEMPLE 3
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType Statistic
Génère uniquement le fichier de statistiques avec métriques agrégées.
Sortie : C:\Logs\dns_statistic.csv
EXEMPLE 4
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"
Convertit le journal vers un emplacement de sortie personnalisé.
Sortie : C:\Output\parsed.csv
EXEMPLE 5
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both
Convertit avec délimiteur virgule et ajoute la colonne ComputerName avec la valeur “DNS01”.
Sortie : C:\Logs\dns.csv et C:\Logs\dns_statistic.csv avec colonne ComputerName
EXEMPLE 6
PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -OutputType Both
Traitement par lots de plusieurs fichiers journaux DNS via pipeline.
Sortie : Pour chaque fichier .log, génère .csv et _statistic.csv
EXEMPLE 7
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput
Convertit et compresse la sortie en archive ZIP.
Sortie : C:\Logs\dns.zip (contenant dns.csv et dns_statistic.csv)
EXEMPLE 8
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -RemoveSourceFile -Verbose
Convertit le journal et supprime le fichier source après traitement réussi.
Sortie détaillée confirme la suppression du fichier.
EXEMPLE 9
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'
Analyse le format de date allemand (JJ.MM.AAAA) et produit en format US (MM/JJ/AAAA).
Utilisez-le pour traiter des journaux de serveurs avec des paramètres régionaux différents.
EXEMPLE 10
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter 'Packet'
Convertit uniquement les entrées de paquets de requêtes/réponses DNS, excluant les entrées EVENT et Note.
Utilisez pour concentrer l’analyse sur le trafic DNS réel.
EXEMPLE 11
PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -RemoveSourceFile -CompressOutput
Archivage automatisé des journaux : traite tous les journaux, compresse la sortie et supprime les fichiers sources.
Idéal pour les pipelines de traitement de journaux planifiés.
PARAMETERS
-CompressOutput
Compresse les fichiers CSV de sortie dans une archive ZIP après création.
Crée un fichier .zip contenant les fichiers CSV générés, puis supprime les CSV non compressés.
Le fichier ZIP est créé dans le même répertoire que le CSV de sortie avec le même nom de base.
Avantages :
- Réduit significativement l’espace disque (les fichiers CSV compressent généralement à plus de 90 %)
- Simplifie la gestion et l’archivage des fichiers
- Adapté au stockage à long terme
Exemple : le fichier d’entrée ‘dns.log’ génère ‘dns.csv’ compressé en ‘dns.zip’, puis ‘dns.csv’ est supprimé.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ComputerName
Spécifie la valeur pour la colonne ComputerName dans la sortie CSV.
La colonne ComputerName est toujours présente dans la sortie — si ce paramètre n’est pas spécifié, la colonne sera vide.
Utilisez-le lors de la consolidation de journaux provenant de plusieurs serveurs DNS pour identifier le serveur source dans les ensembles de données combinés.
Note : Ce n’est PAS un paramètre de télécommande.
La cmdlet traite uniquement les fichiers locaux.
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Server
- DNSServer
- HostName
ParameterSets:
- Name: (All)
Position: 3
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Confirm
Demande une confirmation avant d’exécuter la cmdlet.
Lorsqu’il est spécifié, demande une confirmation avant :
- Le traitement de chaque fichier journal DNS
- La suppression des fichiers sources (lorsque -RemoveSourceFile est spécifié)
- L’écrasement des fichiers de sortie existants
Utile pour un traitement interactif lorsque vous souhaitez contrôler les fichiers traités.
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-ContextFilter
Filtre les types d’entrées du journal à inclure dans la sortie.
Les journaux de débogage DNS contiennent différents types de contexte :
- PACKET : informations sur les paquets de requêtes et réponses DNS (données principales)
- EVENT : événements du serveur DNS (ex. : « Le serveur DNS a démarré. »)
- Note : notes et avertissements diagnostics (ex. : erreurs de socket, états internes)
Valeurs valides :
- ‘All’ : inclut tous les types de contexte (par défaut)
- ‘Packet’ : inclut uniquement les entrées PACKET (requêtes/réponses DNS)
- ‘Event’ : inclut uniquement les entrées EVENT (événements serveur)
- ‘Note’ : inclut uniquement les entrées Note (informations diagnostics)
Par défaut : All
Note : Lors du filtrage sur ‘Event’ ou ‘Note’, seules les colonnes DateTime, ThreadId, Context et Information contiennent des données. Les autres colonnes (Protocole, ClientIP, etc.) seront vides.
Type: String
DefaultValue: All
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 5
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-Delimiter
Spécifie le caractère délimiteur pour la sortie CSV.
Par défaut : point-virgule (;)
Alternatives courantes : virgule (,), tabulation (`t), barre verticale (|)
Utilisez le point-virgule dans les régions où la virgule est le séparateur décimal (Europe).
Utilisez la virgule pour les outils CSV standard et bases de données qui attendent des valeurs séparées par des virgules.
Type: String
DefaultValue: ;
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 2
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-InputCulture
Spécifie la culture/locale utilisée pour analyser les valeurs date/heure dans le journal de débogage DNS.
Les journaux de débogage du serveur DNS utilisent le format de date de la locale Windows du serveur où le journal a été généré.
Utilisez ce paramètre lors du traitement de journaux provenant de serveurs avec des paramètres régionaux différents.
Par défaut : culture courante
Exemples courants :
- ‘de-DE’ ou ‘de-AT’ : format allemand (JJ.MM.AAAA ou JJ/MM/AAAA)
- ’en-US’ : format US (MM/JJ/AAAA avec AM/PM)
- ’en-GB’ : format UK (JJ/MM/AAAA avec heure 24h)
- ‘sv-SE’ : format suédois/ISO (AAAA-MM-JJ)
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 6
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-InputFile
Spécifie le chemin vers le fichier journal de débogage DNS à analyser.
Supporte les tableaux pour traiter plusieurs fichiers.
Accepte l’entrée du pipeline depuis Get-ChildItem ou d’autres cmdlets produisant des fichiers.
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- FullName
- FilePath
- InputPath
- File
- Path
ParameterSets:
- Name: (All)
Position: 0
IsRequired: true
ValueFromPipeline: true
ValueFromPipelineByPropertyName: true
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-OutputCulture
Spécifie la culture/locale utilisée pour formater les valeurs date/heure dans les fichiers CSV de sortie.
Contrôle la façon dont les valeurs DateTime sont écrites dans le CSV.
Utilisez-le lorsque les fichiers CSV seront consommés par des applications ou systèmes avec des paramètres régionaux spécifiques.
Par défaut : culture courante
Exemples courants :
- ’en-US’ : format US (MM/JJ/AAAA)
- ‘de-DE’ : format allemand (JJ.MM.AAAA)
- ‘sv-SE’ ou InvariantCulture : format ISO (AAAA-MM-JJ) pour compatibilité maximale
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 7
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-OutputFile
Spécifie le chemin du fichier CSV de sortie.
Si non spécifié, utilise le nom du fichier d’entrée avec extension .csv dans le même répertoire que le fichier d’entrée.
Important : Doit être un chemin de fichier, pas un répertoire.
Si vous souhaitez utiliser le répertoire du fichier d’entrée avec un nom personnalisé, spécifiez le chemin complet incluant le nom de fichier.
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Output
- Destination
- OutFile
- OutputPath
ParameterSets:
- Name: (All)
Position: 1
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-OutputType
Spécifie le type de sortie à générer.
Valeurs valides :
- ‘CSV’ : génère uniquement le fichier de données avec toutes les entrées analysées (par défaut)
- ‘Statistic’ : génère uniquement le fichier de statistiques avec métriques agrégées
- ‘Both’ : génère les fichiers de données et de statistiques
Par défaut : Both
Les statistiques fournissent des comptes agrégés par IP client, protocole, direction et type de requête, ainsi que la plage de dates pour chaque combinaison unique.
Type: String
DefaultValue: Both
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 4
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-RemoveSourceFile
Supprime le fichier journal DNS source après un traitement réussi.
Utilisez-le pour les pipelines automatisés de traitement de journaux ou la gestion de l’espace disque.
Le fichier source est supprimé uniquement si le traitement se termine avec succès et que tous les fichiers de sortie sont créés.
Sécurité : Ne peut pas être utilisé avec -SkipHeaderValidation pour éviter la suppression accidentelle de fichiers invalides.
Avertissement : Les fichiers sources sont supprimés définitivement.
Assurez-vous que les fichiers de sortie sont valides avant d’utiliser cette option.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-SkipHeaderValidation
Ignore la validation de l’en-tête du journal de débogage DNS.
Par défaut, la cmdlet vérifie que les fichiers d’entrée ont un en-tête valide de journal de débogage DNS Server.
Utilisez ce commutateur pour traiter des fichiers sans validation, ce qui peut être utile pour :
- Formats de journaux modifiés ou personnalisés
- Résolution de problèmes de validation
- Journaux non standards ou pré-traités
Avertissement : Peut entraîner des erreurs de traitement si le fichier n’est pas un journal DNS valide.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-WhatIf
Montre ce qui se passerait si la cmdlet s’exécutait.
La cmdlet n’est pas exécutée.
Lorsqu’il est spécifié, affiche des informations détaillées sur les opérations qui seraient effectuées sans les exécuter réellement.
Utile pour :
- Prévisualiser les fichiers qui seraient traités
- Vérifier les chemins des fichiers de sortie avant traitement
- Tester des scripts avant exécution en production
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
CommonParameters
Cette cmdlet supporte les paramètres communs : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, et -WarningVariable. Pour plus d’informations, voir about_CommonParameters.
INPUTS
System.String[]
NOTES
Version : 1.3.0.1
Auteur : Andi Bellstedt, Copilot
Date : 2026-01-23
Mots-clés : Microsoft Windows Server, DNSServer, DNS, DebugLog, LogParser