Fehlerbehebung
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /de/docs/08-troubleshooting/index.md.
„Die Datei ist keine gültige DNS-Debug-Logdatei“
Die Header-Prüfung hat die Eingabe abgelehnt. Meistens ist der Pfad einfach falsch — eine .log-Datei im gleichen Ordner, die kein DNS-Debug-Log ist, oder eine Datei, die nur einen rotierten Header enthält.
Arbeite das Folgende durch:
Öffne die Datei. Ein DNS-Debug-Log beginnt mit einer Header-Zeile wie
Message logging started at …und enthält danach mit Zeitstempel versehene Abfrageeinträge.Bestätige, dass das DNS-Debug-Logging tatsächlich aktiviert ist und in den erwarteten Pfad schreibt:
Get-DnsServerDiagnostics | Select-Object Enable, LogFilePath, MaxMBFileSizeWenn die Datei tatsächlich ein DNS-Log ist, der Header aber ungewöhnlich ist — handbearbeitet, vorgefiltert, ein benutzerdefinierter Export — kannst du die Prüfung umgehen:
Convert-DNSDebugLogFile -InputFile "C:\Logs\odd.log" -SkipHeaderValidation
Behalte die Validierung überall sonst aktiviert. Beachte, dass -SkipHeaderValidation nicht mit -RemoveSourceFile kombiniert werden kann, sodass eine nicht verifizierte Datei durch die Konvertierung niemals gelöscht wird.
Ausgabedatei ist leer oder enthält viel weniger Zeilen als erwartet
Prüfe in dieser Reihenfolge:
- Enthält das Log überhaupt Abfrageeinträge? Ein frisch rotiertes Log kann außer einem Header noch keine Einträge enthalten, wenn noch keine Abfragen stattgefunden haben.
- Ist ein
-ContextFilteraktiv?-ContextFilter Packetentfernt per DesignEvent- undNote-Einträge. Wenn du aufEventoderNotegefiltert hast, sind die meisten Spalten ebenfalls leer — diese Eintragstypen enthalten nurDateTime,ThreadId,ContextundInformation. - War das Quell-Log aktiv? Eine Datei, in die der DNS-Server noch schreibt, kann sich während der Konvertierung ändern; die neuesten Einträge fehlen möglicherweise und der letzte Datensatz kann abgeschnitten sein. Konvertiere ein rotiertes, geschlossenes Log, wenn du vollständige Ausgabe brauchst.
- Ist die Datei beschädigt oder abgeschnitten? Prüfe das Ende des Logs auf eine halbgeschriebene Zeile.
Daten sind falsch, verschoben oder Tag und Monat vertauscht
Das Log wurde von einem Server mit einer anderen Windows-Lokalisierung geschrieben als die Sitzung, die die Konvertierung durchführt. 20.01.2026 und 01/20/2026 beschreiben denselben Zeitpunkt, aber nur, wenn beide Seiten dasselbe Format verwenden.
# Log stammt von einem deutschen Server
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
Setze -InputCulture explizit in geplanten Aufgaben, anstatt dich auf die Kultur des Kontos zu verlassen, das sie zufällig ausführt. Wenn die Ausgabe maschinenlesbar sein soll, füge -OutputCulture 'sv-SE' hinzu. Details in Parameter und Optionen.
Nach dem Import landet alles in einer Spalte
Trennzeichen stimmt nicht überein. Das Modul schreibt standardmäßig ;; dein Importer erwartete , (oder umgekehrt).
Entweder führe die Konvertierung mit dem vom Importer gewünschten Trennzeichen erneut aus:
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter ","
…oder sag dem Importer, welches Trennzeichen die Datei verwendet — in Excel über Daten → Aus Text/CSV, in PowerShell über Import-Csv -Delimiter ';'.
„Zugriff verweigert“
- Das DNS-Log-Verzeichnis erfordert typischerweise Administratorrechte. Starte PowerShell erhöht oder führe die geplante Aufgabe mit einem Konto aus, das Zugriff hat.
- Prüfe auch Schreibrechte für das Ausgabeverzeichnis, nicht nur Leserechte für das Log.
- Bei SMB/UNC-Pfaden: Ein Task, der als
SYSTEMläuft, authentifiziert sich im Netzwerk als Computer-Konto. Gewähre Freigabe- und NTFS-Rechte für dieses Computerkonto (oder für die GruppeDomain Controllers), oder nutze ein dediziertes Dienstkonto. - Wenn
-RemoveSourceFileam Ende eines ansonsten erfolgreichen Laufs fehlschlägt, kann das Konto das Log lesen, aber nicht löschen.
Verarbeitung ist sehr langsam
- Zuerst die Festplatte prüfen — die Konvertierung ist I/O-gebunden. Ein ausgelastetes Volume oder ein langsamer Netzwerkpfad bestimmt die Laufzeit.
- Nutze
-NoDetailsParsing, wenn du die Paket-Detail-JSON nicht brauchst; bei detailreichen Logs spart das 30–50 %. - Nutze
-ContextFilter Packet, um weniger zu schreiben. - Teile riesige Logs mit DNS-Server-Log-Rollover auf, statt eine riesige Datei zu konvertieren.
- Ziehe eine Antivirus-Ausnahme für das Log-Verzeichnis in Betracht.
Mehr dazu in Performance.
Komprimierte Ausgabe ist größer als erwartet
Logs mit sehr vielfältigem Inhalt — viele einzigartige Domains, viele verschiedene Clients — komprimieren sich weniger gut als repetitive. Das ist normal. ZIP erreicht trotzdem meist eine deutliche Reduktion; wenn nicht, prüfe, ob die Spalte Details die Datei aufbläht und ob du sie überhaupt brauchst.
Statistiken stimmen nicht mit den Erwartungen überein
- Vergewissere dich, dass du
-OutputType Bothoder-OutputType Statisticverwendet hast. Bei-OutputType CSVwerden keine Statistikdateien geschrieben. Countist eine Gesamtzahl, keine Anzahl unterschiedlicher Werte. Ein Client, der denselben Namen 500-mal abfragt, trägt 500 bei. Das ist die häufigste Ursache für „diese Zahl kann nicht stimmen“.- Statistiken werden pro Tag gruppiert. Ein Log, das zwei Tage umfasst, erzeugt Zeilen für beide.
- Wenn
ComputerNamein den Statistikdateien leer ist, wurde-ComputerNamewährend der Konvertierung nicht gesetzt.
Die geplante Aufgabe funktioniert interaktiv, aber nicht als Aufgabe
Fast immer eine von drei Ursachen:
- Modul nicht gefunden.
SYSTEMmit-NoProfilesieht nur maschinenweite Modulpfade. Installiere das Modul maschinenweit oder füge der Task-Aktion ein explizitesImport-Module DNSServer.DebugLogParserhinzu. - Falsche Kultur. Die Lokalisierung des Task-Kontos unterscheidet sich von deiner. Setze
-InputCultureund-OutputCultureexplizit. - Ausführungsrichtlinie oder unsigniertes Skript. Passe die
-ExecutionPolicyder Aufgabe an deine Signierrichtlinie an und hebe die Blockierung von Dateien auf, die von anderswo kopiert wurden.
Führe die genaue Befehlszeile der Aufgabe manuell im gleichen Kontext aus (zum Beispiel mit PsExec als SYSTEM), um das Problem zu reproduzieren.
Ein Problem melden
Wenn nichts davon hilft:
Aktualisiere auf die neueste Modulversion und versuche es erneut.
Suche in den GitHub-Issues nach dem gleichen Symptom.
Sammle die Diagnosedaten:
$PSVersionTable Get-Module DNSServer.DebugLogParser -ListAvailable | Select-Object Name, Version, Path Get-Cultureplus den genauen Befehl, den du ausgeführt hast, die vollständige Fehlermeldung inklusive Stacktrace und — wenn du sie teilen kannst — einen kleinen anonymisierten Ausschnitt des Logs, der das Problem reproduziert.
Öffne ein neues Issue mit diesen Informationen.