Dépannage
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fr/docs/08-troubleshooting/index.md.
« Le fichier n’est pas un fichier de journal de débogage DNS valide »
La vérification de l’en-tête a rejeté l’entrée. En général, le chemin est simplement incorrect — un fichier .log dans le même dossier qui n’est pas un journal de débogage DNS, ou un fichier qui ne contient qu’un en-tête tourné.
Procédez ainsi :
Ouvrez le fichier. Un journal de débogage DNS commence par une ligne d’en-tête telle que
Message logging started at …et continue avec des entrées de requêtes horodatées.Confirmez que la journalisation de débogage DNS est bien activée et écrit dans le chemin attendu :
Get-DnsServerDiagnostics | Select-Object Enable, LogFilePath, MaxMBFileSizeSi le fichier est vraiment un journal DNS mais que l’en-tête est inhabituel — modifié manuellement, pré-filtré, une exportation personnalisée — contournez la vérification :
Convert-DNSDebugLogFile -InputFile "C:\Logs\odd.log" -SkipHeaderValidation
Gardez la validation activée partout ailleurs. Notez que -SkipHeaderValidation ne peut pas être combiné avec -RemoveSourceFile, donc un fichier non vérifié ne peut jamais être supprimé par la conversion.
Le fichier de sortie est vide ou contient beaucoup moins de lignes que prévu
Vérifiez, dans cet ordre :
- Le journal contient-il des entrées de requêtes ? Un journal fraîchement tourné peut ne contenir qu’un en-tête si aucune requête n’a encore eu lieu.
- Un
-ContextFilterest-il utilisé ?-ContextFilter Packetsupprime par conception les entréesEventetNote. Si vous avez filtré surEventouNote, la plupart des colonnes seront aussi vides — ces types d’entrées ne contiennent queDateTime,ThreadId,ContextetInformation. - Le journal source était-il actif ? Un fichier sur lequel le serveur DNS écrit encore peut changer pendant la conversion ; les entrées les plus récentes peuvent manquer et le dernier enregistrement peut être tronqué. Convertissez un journal tourné et fermé lorsque vous avez besoin d’une sortie complète.
- Le fichier est-il corrompu ou tronqué ? Vérifiez la fin du journal pour une ligne partiellement écrite.
Les dates sont incorrectes, décalées ou le jour et le mois sont inversés
Le journal a été écrit par un serveur avec une locale Windows différente de celle de la session effectuant la conversion. 20.01.2026 et 01/20/2026 décrivent le même moment, mais seulement si les deux parties s’accordent sur le format.
# le journal vient d’un serveur allemand
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
Définissez explicitement -InputCulture dans les tâches planifiées plutôt que de compter sur la culture du compte qui les exécute. Si la sortie doit être lisible par une machine, ajoutez -OutputCulture 'sv-SE'. Plus de détails dans Paramètres et options.
Tout se retrouve dans une seule colonne après l’import
Mauvais délimiteur. Le module écrit ; par défaut ; votre consommateur attendait , (ou inversement).
Relancez la conversion avec le délimiteur attendu par le consommateur :
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter ","
…ou indiquez au programme d’importation quel délimiteur utilise le fichier — dans Excel via Données → À partir du texte/CSV, dans PowerShell via Import-Csv -Delimiter ';'.
« Accès refusé »
- Le répertoire des journaux DNS nécessite généralement des droits administratifs. Lancez PowerShell en mode administrateur, ou exécutez la tâche planifiée avec un compte ayant les droits.
- Vérifiez aussi les droits d’écriture sur le répertoire de sortie, pas seulement les droits de lecture sur le journal.
- Pour les chemins SMB/UNC : une tâche exécutée en tant que
SYSTEMs’authentifie sur le réseau en tant que compte ordinateur. Accordez les droits de partage et NTFS à ce compte ordinateur (ou au groupeDomain Controllers), ou utilisez un compte de service dédié. - Si
-RemoveSourceFileéchoue à la fin d’une exécution par ailleurs réussie, le compte peut lire le journal mais pas le supprimer.
Le traitement est très lent
- Commencez par le disque — la conversion est limitée par les E/S. Un volume occupé ou un chemin réseau lent domine le temps d’exécution.
- Utilisez
-NoDetailsParsingsi vous n’avez pas besoin du JSON détaillant les paquets ; sur des journaux très détaillés, cela économise 30 à 50 %. - Utilisez
-ContextFilter Packetpour écrire moins. - Divisez les journaux énormes avec la rotation des journaux du serveur DNS au lieu de convertir un seul fichier gigantesque.
- Envisagez une exclusion antivirus pour le répertoire des journaux.
Plus d’infos dans Performance.
La sortie compressée est plus volumineuse que prévu
Les journaux avec un contenu très diversifié — de nombreux domaines uniques, de nombreux clients distincts — se compressent moins bien que les journaux répétitifs. C’est normal. ZIP réalise généralement une réduction substantielle ; si ce n’est pas le cas, vérifiez si la colonne Details gonfle le fichier et si vous en avez vraiment besoin.
Les statistiques ne correspondent pas à ce que j’attendais
- Confirmez que vous avez utilisé
-OutputType Bothou-OutputType Statistic. Avec-OutputType CSV, aucun fichier de statistiques n’est généré. Countest un total, pas un compte distinct. Un client demandant le même nom 500 fois contribue pour 500. C’est la cause la plus fréquente du « ce nombre ne peut pas être correct ».- Les statistiques sont regroupées par jour. Un journal couvrant deux jours produit des lignes pour les deux.
- Si
ComputerNameest vide dans les fichiers de statistiques,-ComputerNamen’a pas été défini lors de la conversion.
La tâche planifiée fonctionne en mode interactif mais pas en tâche
Presque toujours l’une des trois causes :
- Module introuvable.
SYSTEMavec-NoProfilene voit que les chemins de modules machine-wide. Installez le module machine-wide ou ajoutez unImport-Module DNSServer.DebugLogParserexplicite dans l’action de la tâche. - Mauvaise culture. La locale du compte de la tâche diffère de la vôtre. Définissez explicitement
-InputCultureet-OutputCulture. - Politique d’exécution ou script non signé. Adaptez le
-ExecutionPolicyde la tâche à votre politique de signature, et débloquez les fichiers copiés depuis ailleurs.
Exécutez manuellement la ligne de commande exacte de la tâche dans le même contexte (par exemple avec PsExec en tant que SYSTEM) pour reproduire le problème.
Signaler un problème
Si rien de tout cela ne vous aide :
Mettez à jour vers la dernière version du module et réessayez.
Cherchez dans les issues GitHub le même symptôme.
Rassemblez les diagnostics :
$PSVersionTable Get-Module DNSServer.DebugLogParser -ListAvailable | Select-Object Name, Version, Path Get-Cultureainsi que la commande exacte que vous avez lancée, le message d’erreur complet incluant la pile d’appels, et — si vous pouvez le partager — un petit extrait anonymisé du journal reproduisant le problème.
Ouvrez une nouvelle issue avec ces informations.