Parameter und Optionen

Was jede Option von Convert-DNSDebugLogFile tatsächlich ändert, wann du sie brauchst und welche Fallen leicht passieren können.

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

Diese Seite erklärt die Optionen in einfacher Sprache und in der Reihenfolge, in der du sie typischerweise brauchst. Es ist ein Leitfaden, keine Spezifikation — die autoritative, immer aktuelle Parameterliste findest du in der Befehlsreferenz und in:

Get-Help Convert-DNSDebugLogFile -Full

Die Kurzfassung

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

Diese eine Zeile liefert dir schon ein sinnvolles Verhalten: sowohl Daten- als auch Statistikdateien, Semikolon als Trennzeichen, das Datumsformat deiner Maschine, Header-Validierung an, Quell-Log bleibt unverändert. Alles Weitere ist Feintuning.

OptionStandardÄndere sie, wenn
-InputFile(erforderlich)immer
-OutputFileEingabepfad mit .csvdu die Ausgabe woanders haben willst
-Delimiter;dein Verbraucher Komma, Tab oder Pipe erwartet
-ComputerNameleerdu Logs von mehr als einem Server zusammenführst
-OutputTypeBothdu nur Daten oder nur Rollups möchtest
-ContextFilterAlldu dich nur für den tatsächlichen DNS-Verkehr interessierst
-InputCultureaktuelle Kulturdas Log von einem Server mit anderem Gebietsschema stammt
-OutputCultureaktuelle Kultureine Maschine die CSV liest
-NoDetailsParsingausDurchsatz wichtiger als Paketdetails ist
-CompressOutputausdu die Ergebnisse archivierst oder überträgst
-RemoveSourceFileausgeplante Aufräumaktion und du vertraust der Ausgabe
-SkipHeaderValidationausdie Datei gültig, aber der Header ungewöhnlich ist

Eingabe und Ausgabe

-InputFile

Pfad zum zu konvertierenden Log. Akzeptiert ein Array und Pipeline-Eingaben — deshalb funktioniert das hier:

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

Get-ChildItem gibt Objekte mit einer FullName-Eigenschaft aus, und -InputFile akzeptiert diese per Eigenschaftsname (Aliase sind u.a. FullName, Path, FilePath). Kein ForEach-Object nötig.

Lokale Pfade und SMB/UNC-Pfade funktionieren beide:

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

Der Befehl kann auch ein Log öffnen, das der DNS-Server gerade offen hält. Siehe aktive Logs weiter unten, bevor du dich darauf verlässt.

-OutputFile

Ohne Angabe landet die CSV neben der Eingabedatei, gleicher Basisname, .csv-Erweiterung. Mit Angabe steuerst du das Ziel.

-Delimiter

Standard ist ein Semikolon, weil in Gebieten, wo das Komma Dezimaltrennzeichen ist, Excel das erwartet. Nutze -Delimiter "," für Tools und Datenbanken, die klassische CSV mit Komma erwarten, oder -Delimiter "`t" für Tabulator.

Was auch immer du wählst, benutze denselben Wert beim Import. Eine Abweichung ist die Hauptursache dafür, dass „alles in einer Spalte landet“.

Beschriftung und Filterung

-ComputerName

Füllt die Spalte ComputerName. Die Spalte gibt es so oder so; das hier gibt ihr nur einen Wert.

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

Setze es immer, wenn mehrere Server in einen Datensatz einspeisen — sonst kannst du später nicht mehr sagen, von welchem DC eine Zeile stammt.

-OutputType

  • CSV — nur die Datendatei
  • Statistic — nur die zwei Aggregatdateien, keine Zeilendaten
  • Both — alle drei Dateien (Standard)

Statistic ist die schnelle, kleine Option, wenn du nur tägliche Trends brauchst. CSV ist richtig, wenn ein nachgelagertes System selbst aggregiert.

-ContextFilter

Ein DNS-Debug-Log mischt tatsächlichen Abfrageverkehr mit serverinternem Geplapper. -ContextFilter entscheidet, was in der Ausgabe bleibt.

# nur echter DNS-Verkehr
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet

# Verkehr plus Serverereignisse, aber keine Diagnosehinweise
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet, Event
WertEnthält
Allalles (Standard)
PacketDNS-Anfragen und Antworten — die Daten, die die meisten Analysen brauchen
EventServerereignisse, z.B. „Der DNS-Server wurde gestartet“
NoteDiagnosehinweise und Warnungen, z.B. Socket-Fehler

Weitere Kontexttypen (DSPoll, Init, Lookup, Recurse, Remote, Tombstone) erscheinen unter All.

Filterst du nur auf Event oder Note, werden nur DateTime, ThreadId, Context und Information gefüllt — die Protokollspalten bleiben leer, weil diese Einträge diese Infos nicht enthalten.

-ContextFilter Packet ist die übliche Wahl für Sicherheits- und Reporting-Pipelines: es entfernt den Lärm und verkleinert die Ausgabe spürbar.

Internationale Logs

Der DNS-Server schreibt Zeitstempel im Windows-Gebietsschema der Maschine, auf der er läuft. Ein deutscher DC schreibt 20.01.2026 23:00:16; ein US-Server schreibt 1/20/2026 11:00:16 PM. Wenn das Gebietsschema deines Arbeitsplatzrechners vom Server abweicht, klappt das Parsen nicht — oder schlimmer, Tag und Monat werden still vertauscht.

-InputCulture

Sag dem Parser, welches Gebietsschema das Quell-Log verwendet:

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
KulturLog-Zeitstempelformat
de-DETT.MM.JJJJ HH:MM:SS
en-USM/T/JJJJ H:MM:SS AM/PM
en-GBTT/MM/JJJJ HH:MM:SS
sv-SEJJJJ-MM-TT HH:MM:SS

Standard ist die Kultur der Sitzung, die den Befehl ausführt. In einer Umgebung mit gemischten Gebietsschemata solltest du sie explizit setzen, statt dich auf den Standard zu verlassen — und denk daran, dass ein geplanter Task, der als SYSTEM läuft, vielleicht nicht die Kultur hat, mit der du interaktiv getestet hast.

-OutputCulture

Steuert, wie Zeitstempel in die CSV geschrieben werden:

# ISO-ähnliche Ausgabe, die SQL Server, Power BI und pandas alle verstehen
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'

# gleicher Effekt, explizite Invariant-Kultur
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" `
    -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)

Faustregel: Wenn ein Mensch die Datei in Excel öffnet, nutze die lokale Kultur. Wenn eine Maschine sie liest, verwende sv-SE oder die Invariant-Kultur und mach dir keine Sorgen um regionale Einstellungen beim Import.

Die beiden Parameter sind unabhängig — du kannst ein schwedisches Log lesen und US-formatierten Output schreiben.

Geschwindigkeit und Speicher

-NoDetailsParsing

Wenn der DNS-Server volle Paketdetails protokolliert, wandelt der Parser jeden Detailblock in JSON in der Spalte Details um. Das ist nützlich, aber auch der teuerste Teil des Laufs und bläht die CSV auf.

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

Die Spalte bleibt vorhanden, aber leer; die TCP/UDP-Detail-Headerzeile ist weiterhin in Information verfügbar. Bei Logs mit vielen Detailblöcken kann das die Verarbeitungszeit um 30–50 % reduzieren. Nutze es, wenn Informationen auf Abfrageebene ausreichen.

-CompressOutput

Komprimiert die erzeugten CSV-Dateien und löscht die unkomprimierten. dns.log erzeugt dns.zip statt dns.csv.

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

CSV dieser Art komprimiert typischerweise um 90 % oder mehr, das spart also quasi kostenlosen Speicherplatz für Archive und beim Versand über das Netzwerk.

-RemoveSourceFile

Löscht die Quell-.log nach erfolgreicher Konvertierung — die Logdatei wird nur gelöscht, wenn alle Ausgabedateien erstellt wurden.

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

Sicherheitsnetze

-SkipHeaderValidation

Standardmäßig prüft der Befehl, ob die Datei wirklich ein DNS-Server-Debug-Log ist, bevor er es parst. Das fängt den klassischen Fehler ab, den Job auf den falschen Ordner zu zeigen.

Schalte es nur bei wirklich ungewöhnlichen Fällen aus: handbearbeitete Logs, vorgefilterte Ausschnitte, benutzerdefinierte Formate. Lass es sonst an — es kostet kaum Leistung und verhindert, dass ein Tippfehler in einem Haufen Müll endet.

-WhatIf und -Confirm

Der Befehl unterstützt beides. -WhatIf ist der richtige Weg, um zu sehen, was ein neuer Batch-Job anfasst:

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

-Confirm fragt vor der Verarbeitung jeder Datei, vor dem Löschen einer Quelldatei und vor dem Überschreiben vorhandener Ausgaben nach.

Aktive Logs

Convert-DNSDebugLogFile kann eine Datei lesen, die der DNS-Server gerade offen hat. Praktisch für einen Ad-hoc-Blick auf das, was gerade passiert.

Zusammengesetzt

Ein typischer Produktionsaufruf auf einem Domänencontroller:

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

Gelesen heißt das: Nimm jedes rotierte Log außer dem aktiven, behalte nur DNS-Verkehr, versehe jede Zeile mit dem Servernamen, schreibe maschinenlesbare Zeitstempel und hinterlasse komprimierte Archive. Die vollständige Version für geplante Tasks und Gruppenrichtlinien findest du im GPO-gesteuerten Sammelbeispiel.