Version 1.0.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.0.0.0/fr/docs/commands/convert-dnsdebuglogfile/index.md.
SYNOPSIS
Convertit les fichiers journaux de débogage du serveur DNS Windows au format CSV.
SYNTAXE
__AllParameterSets
Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
[[-ComputerName] <string>] [[-OutputType] <string>] [[-InputCulture] <cultureinfo>]
[[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation] [-RemoveSourceFile] [-CompressOutput]
[-WhatIf] [-Confirm] [<CommonParameters>]
ALIAS
Cette cmdlet possède les alias suivants,
DESCRIPTION
Analyseur haute performance pour les fichiers journaux de débogage du serveur DNS Windows, conçu pour rendre l’activité du serveur DNS transparente, analysable et exploitable dans les outils de reporting et d’analyse.
Les journaux de débogage du serveur DNS contiennent des informations détaillées sur les requêtes/réponses mais sont difficiles à analyser dans leur format texte brut.
Ce script transforme ces journaux en fichiers CSV structurés pouvant être importés dans Excel, Power BI, bases de données SQL ou autres plateformes d’analyse de données.
CAPACITÉS PRINCIPALES :
- Analyse les 16 champs des journaux de débogage DNS (date, heure, protocole, IP client, type de requête, etc.)
- Génère une sortie CSV structurée avec délimiteurs personnalisables
- Crée des résumés statistiques optionnels agrégés par client, protocole et type de requête
- Traite des fichiers uniques ou des lots via pipeline
- Supporte les formats standard et détaillé des journaux de débogage DNS
- Compression automatique optionnelle des fichiers de sortie pour économiser de l’espace disque
- Suppression optionnelle des fichiers sources après traitement réussi
- Validation des en-têtes des fichiers journaux pour garantir l’intégrité des données
CAS D’UTILISATION :
- Analyse de sécurité : identifier les schémas suspects de requêtes DNS
- Surveillance de performance : suivre les volumes de requêtes et temps de réponse
- Planification de capacité : analyser la charge du serveur DNS et la répartition des clients
- Reporting de conformité : documenter l’activité DNS pour les audits
- Dépannage : investiguer les problèmes de résolution DNS
PERFORMANCE :
Optimisé pour les gros fichiers (100 Mo+) grâce à :
- Opérations sur chaînes plutôt que regex pour le parsing
- StreamReader/StreamWriter avec tampons de 64 Ko
- Génération manuelle du CSV pour éviter la surcharge d’Export-Csv
- Collecte efficace des statistiques via dictionnaire
COMPATIBILITÉ :
- PowerShell 5.1+ sur Windows
- PowerShell 7+ sur Windows
- Windows Server 2016 et versions ultérieures
- Supporte les formats de journaux DNS Server 2012 R2 à 2025
EXEMPLES
EXEMPLE 1
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log"
Convertit le journal de débogage DNS en format CSV avec les paramètres par défaut.
Sortie : C:\Logs\dns.csv (fichier de données uniquement, délimiteur point-virgule).
EXEMPLE 2
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both
Convertit le journal DNS et génère les deux fichiers de sortie.
Sorties : C:\Logs\dns.csv (données) et C:\Logs\dns_statistic.csv (statistiques agrégées).
EXEMPLE 3
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Statistic
Génère uniquement le fichier de statistiques sans créer le fichier CSV complet.
Sortie : C:\Logs\dns_statistic.csv (statistiques uniquement).
EXEMPLE 4
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"
Convertit le journal DNS vers un emplacement de sortie personnalisé.
Sortie : C:\Output\parsed.csv.
EXEMPLE 5
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both
Convertit le journal en utilisant la virgule comme délimiteur avec une colonne ComputerName.
Sorties : C:\Logs\dns.csv et C:\Logs\dns_statistic.csv, tous deux avec “DNS01” dans la colonne ComputerName.
EXEMPLE 6
PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -OutputType Both
Traite plusieurs fichiers journaux DNS via pipeline.
Sorties : pour chaque fichier .log, génère les fichiers .csv (données) et _statistic.csv (statistiques).
EXEMPLE 7
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -CompressOutput
Convertit le journal DNS et compresse la sortie dans une archive ZIP.
Sortie : C:\Logs\dns.zip contenant dns.csv. Le fichier csv non compressé est supprimé après compression.
EXEMPLE 8
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both -CompressOutput
Convertit le journal avec statistiques et compresse les deux fichiers de sortie.
Sortie : C:\Logs\dns.zip contenant dns.csv et dns_statistic.csv.
EXEMPLE 9
PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -RemoveSourceFile -CompressOutput
Traite plusieurs fichiers journaux, compresse la sortie et supprime les fichiers sources.
Chaque fichier .log est converti en .zip compressé, puis le fichier source .log est supprimé.
Idéal pour les pipelines automatisés d’archivage de journaux.
EXEMPLE 10
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\old_dns.log" -RemoveSourceFile -Verbose
Convertit le fichier journal et supprime la source après traitement réussi.
La sortie détaillée confirme la suppression du fichier. À utiliser avec précaution car les fichiers sources sont supprimés définitivement.
EXEMPLE 11
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE'
Convertit un journal DNS provenant d’un serveur Windows allemand.
À utiliser lorsque le fichier journal provient d’un serveur avec des paramètres régionaux différents.
EXEMPLE 12
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo('sv-SE'))
Convertit un journal DNS d’un serveur Windows suédois utilisant le format de date ISO (YYYY-MM-DD).
Utile pour traiter des journaux de serveurs avec des paramètres régionaux différents.
EXEMPLE 13
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'
Convertit un journal DNS d’un serveur allemand et formate les dates de sortie pour les systèmes américains.
Utile pour traiter des journaux de serveurs internationaux destinés à des systèmes basés aux États-Unis.
EXEMPLE 14
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)
Convertit un journal DNS et formate les dates de sortie au format ISO 8601 (YYYY-MM-DD).
Idéal pour la compatibilité multiplateforme ou les scénarios d’échange de données.
EXEMPLE 15
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -WhatIf
Montre ce qui se passerait si la commande était exécutée sans créer de fichiers.
Utile pour tester les paramètres avant de traiter les données réelles.
EXEMPLE 16
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -RemoveSourceFile -CompressOutput -WhatIf
Prévisualise le flux complet incluant compression et suppression des fichiers sources.
Aucun fichier n’est créé, compressé ou supprimé — montre uniquement ce qui se passerait.
PARAMÈTRES
-CompressOutput
Compresse les fichiers CSV de sortie dans une archive ZIP après leur création.
Crée un fichier .zip contenant le(s) fichier(s) 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.
La compression se fait immédiatement après le traitement de chaque fichier pour gérer efficacement l’espace disque.
Avantages :
- Réduit significativement l’espace disque utilisé (les fichiers CSV compressent très bien)
- Simplifie la gestion et l’archivage des fichiers
- Adapté au stockage à long terme des journaux traités
Exemple : le fichier ‘dns.log’ génère ‘dns.csv’ qui est compressé en ‘dns.zip’, puis ‘dns.csv’ est supprimé.
Compatible avec PowerShell 5.1+ et Windows Server 2016+.
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
Optionnel.
Si spécifié, ajoute une colonne ComputerName dans la sortie CSV avec la valeur indiquée.
Utile pour consolider des journaux provenant de plusieurs serveurs DNS.
Important : ce n’est PAS une fonctionnalité de remoting.
Le script traite uniquement des 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.
Si spécifié, demande confirmation avant :
- Le traitement de chaque fichier journal DNS
- La suppression des fichiers sources (lorsque -RemoveSourceFile est utilisé)
- L’écrasement des fichiers de sortie existants
Utile pour un traitement interactif lorsque tu souhaites 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: ''
-Delimiter
Caractère délimiteur pour la sortie CSV.
Par défaut, point-virgule ‘;’
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 utilisée pour analyser les valeurs date/heure dans le journal DNS.
Les journaux de débogage DNS utilisent le format de date de la locale Windows du serveur où le journal a été généré.
Ce paramètre permet d’analyser des journaux provenant de serveurs avec des paramètres régionaux différents.
Par défaut, la culture courante ([System.Globalization.CultureInfo]::CurrentCulture).
Valeurs culture courantes :
- ‘de-DE’ ou ‘de-AT’ : format allemand (JJ.MM.AAAA ou JJ/MM/AAAA)
- ’en-US’ : format américain (MM/JJ/AAAA)
- ’en-GB’ : format britannique (JJ/MM/AAAA)
- ‘sv-SE’ : format suédois/ISO (AAAA-MM-JJ)
Exemple : -InputCulture ‘de-DE’ pour des journaux d’un serveur Windows allemand.
Exemple : -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo(‘sv-SE’)) pour des journaux suédois.
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 5
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-InputFile
Chemin vers le fichier journal DNS à analyser.
Supporte les tableaux pour traiter plusieurs 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 utilisée pour formater les valeurs date/heure dans les fichiers CSV de sortie.
Ce paramètre contrôle la façon dont les valeurs DateTime sont écrites dans la sortie CSV.
Utile lorsque les fichiers CSV seront utilisés par des applications ou systèmes avec des paramètres régionaux spécifiques.
Par défaut, la culture courante ([System.Globalization.CultureInfo]::CurrentCulture).
Valeurs culture courantes :
- ’en-US’ : format américain (MM/JJ/AAAA)
- ‘de-DE’ : format allemand (JJ.MM.AAAA)
- ’en-GB’ : format britannique (JJ/MM/AAAA)
- ‘sv-SE’ : format suédois/ISO (AAAA-MM-JJ)
Exemple : -OutputCulture ’en-US’ pour formater les dates pour les systèmes américains.
Exemple : -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture) pour le format ISO.
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: ''
-OutputFile
Optionnel.
Chemin du fichier CSV de sortie.
Si non spécifié, utilise le nom du fichier d’entrée avec extension .csv.
Doit être un chemin de fichier, pas un répertoire.
Si tu souhaites spécifier uniquement le répertoire de sortie, omets ce paramètre et le script utilisera le même répertoire que le fichier d’entrée.
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 CSV avec les données analysées (par défaut)
- ‘Statistic’ : génère uniquement le fichier de statistiques avec les données agrégées
- ‘Both’ : génère à la fois les fichiers CSV et statistiques
Par défaut : ‘Both’.
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.
Utilise ce commutateur pour supprimer automatiquement les fichiers d’entrée après qu’ils ont été analysés avec succès et que les fichiers de sortie ont été créés.
Utile pour :
- Pipelines automatisés de traitement de journaux
- Gestion de l’espace disque dans les scénarios de collecte de journaux
- Éviter le retraitement des fichiers déjà convertis
Fonctions de sécurité :
- Supprime uniquement les fichiers après un traitement réussi et la création des fichiers de sortie
- Ignore la suppression si le traitement échoue ou est interrompu
- Ne peut pas être utilisé avec SkipHeaderValidation pour des raisons de sécurité
Attention : les fichiers sources sont supprimés définitivement.
Assure-toi 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 DNS.
Par défaut, le script vérifie que les fichiers d’entrée ont une structure d’en-tête valide pour les journaux de débogage DNS.
Utilise ce commutateur pour traiter les fichiers sans validation d’en-tête, ce qui peut être utile pour :
- Traiter des formats de journaux modifiés ou personnalisés
- Dépanner des problèmes de validation
- Traiter des journaux avec des en-têtes non standards
Attention : l’utilisation de ce paramètre 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 était exécutée.
La cmdlet n’est pas réellement exécutée.
Si spécifié, affiche des informations détaillées sur les opérations qui seraient effectuées sans les exécuter.
Utile pour :
- Prévisualiser les fichiers qui seraient traités
- Vérifier les chemins des fichiers de sortie avant traitement
- Tester les 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.
ENTRÉES
System.String[]
NOTES
Version : 1.2.0.0
Auteur : Andreas Bellstedt, Copilot
Date : 2026-01-23
Mots-clés : Microsoft, Windows Server, DNSServer, DNS, DebugLog, LogParser