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/de/docs/commands/convert-dnsdebuglogfile/index.md.

SYNOPSIS

Wandelt Windows DNS-Server-Debugprotokolle in ein strukturiertes CSV-Format zur Analyse und Berichterstellung um.

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

Dieses Cmdlet hat folgende Aliase,

BESCHREIBUNG

Konvertiert Windows DNS-Server-Debugprotokolldateien in strukturierte CSV-Daten, die in Excel, Power BI, SQL-Datenbanken oder SIEM-Tools analysiert werden können. Entwickelt für Sicherheitsanalysen, Leistungsüberwachung, Fehlerbehebung und Compliance-Berichte.

Das Cmdlet analysiert alle 17 Felder aus DNS-Debugprotokollen, einschließlich Datum/Uhrzeit, Protokoll, Client-IP, Abfragetyp, Domänennamen, Antwortcodes, Flags, Ereignisinformationen und Computername. Es erzeugt strukturierte CSV-Ausgaben mit einer optionalen Statistikübersicht, die Aktivitäten nach Client, Protokoll und Abfragetyp aggregiert.

WICHTIGE FUNKTIONEN:

  • Hochleistungsfähige Analyse, optimiert für große Dateien (100MB+)
  • Anpassbarer CSV-Trennzeichen (Standard: Semikolon)
  • Optionale statistische Zusammenfassungen mit aggregierten Metriken
  • Kontextfilterung (PACKET, EVENT, Note) zur Fokussierung auf bestimmte Protokolleintragstypen
  • Kulturabhängige Datumsanalyse und -formatierung für internationale Server
  • Pipeline-Unterstützung für die Stapelverarbeitung mehrerer Dateien
  • Optionale Komprimierung der Ausgabedateien (ZIP-Format)
  • Optionale automatische Entfernung der Quelldateien nach Verarbeitung
  • Kopfzeilenvalidierung zur Sicherstellung der Datenintegrität

AUSGABEFORMAT: Die Spalte ComputerName ist immer am Ende jedes Datensatzes enthalten. Wenn der Parameter -ComputerName nicht angegeben wird, bleibt die Spalte leer. Dies gewährleistet eine konsistente Ausgabestruktur für Multi-Server-Konsolidierungsszenarien.

LEISTUNG: Optimiert durch Verwendung von StreamReader/StreamWriter mit 64KB-Puffern, String-Operationen statt Regex, manueller CSV-Erstellung und effizienter Hashtable-basierter Statistik-Erfassung.

KOMPATIBILITÄT:

  • PowerShell 5.1+ (Desktop- und Core-Editionen)
  • Windows Server 2016+
  • DNS-Server-Protokollformate von 2012 R2 bis 2025

BEISPIELE

BEISPIEL 1

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

Konvertiert das DNS-Debugprotokoll mit Standardeinstellungen (Daten- und Statistikdateien mit Semikolon als Trennzeichen). Ausgabe: C:\Logs\dns.csv und C:\Logs\dns_statistic.csv

BEISPIEL 2

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType CSV

Erzeugt nur die Datendatei ohne Statistik. Ausgabe: C:\Logs\dns.csv

BEISPIEL 3

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType Statistic

Erzeugt nur die Statistikdatei mit aggregierten Metriken. Ausgabe: C:\Logs\dns_statistic.csv

BEISPIEL 4

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"

Konvertiert das Protokoll an einen benutzerdefinierten Speicherort. Ausgabe: C:\Output\parsed.csv

BEISPIEL 5

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both

Konvertiert mit Komma als Trennzeichen und fügt die Spalte ComputerName mit dem Wert “DNS01” hinzu. Ausgabe: C:\Logs\dns.csv und C:\Logs\dns_statistic.csv mit ComputerName-Spalte

BEISPIEL 6

PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -OutputType Both

Verarbeitet mehrere DNS-Debugprotokolldateien über die Pipeline. Ausgabe: Für jede .log-Datei werden .csv- und _statistic.csv-Dateien erzeugt.

BEISPIEL 7

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

Konvertiert und komprimiert die Ausgabe in ein ZIP-Archiv. Ausgabe: C:\Logs\dns.zip (enthält dns.csv und dns_statistic.csv)

BEISPIEL 8

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -RemoveSourceFile -Verbose

Konvertiert das Protokoll und entfernt die Quelldatei nach erfolgreicher Verarbeitung. Die ausführliche Ausgabe bestätigt die Dateientfernung.

BEISPIEL 9

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'

Parst das deutsche Datumsformat (TT.MM.JJJJ) und gibt im US-Format (MM/TT/JJJJ) aus. Nützlich bei der Verarbeitung von Protokollen von Servern mit unterschiedlichen Regionaleinstellungen.

BEISPIEL 10

PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter 'Packet'

Konvertiert nur DNS-Abfrage-/Antwortpakete und schließt EVENT- und Note-Einträge aus. Nützlich, um die Analyse auf den tatsächlichen DNS-Verkehr zu fokussieren.

BEISPIEL 11

PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -RemoveSourceFile -CompressOutput

Automatisierte Protokollarchivierung: Verarbeitet alle Protokolle, komprimiert die Ausgabe und entfernt die Quelldateien. Ideal für geplante Protokollverarbeitungs-Pipelines.

PARAMETER

-CompressOutput

Komprimiert die erzeugten CSV-Dateien nach der Erstellung in ein ZIP-Archiv.

Erstellt eine .zip-Datei, die die generierten CSV-Dateien enthält, und entfernt anschließend die unkomprimierten CSV-Dateien. Die ZIP-Datei wird im gleichen Verzeichnis wie die Ausgabedatei mit demselben Basisnamen erstellt.

Vorteile:

  • Spart erheblich Speicherplatz (CSV-Dateien komprimieren sich typischerweise um 90%+)
  • Vereinfacht Dateiverwaltung und Archivierung
  • Geeignet für Langzeitspeicherung

Beispiel: Die Eingabedatei ‘dns.log’ erzeugt ‘dns.csv’, die zu ‘dns.zip’ komprimiert wird, danach wird ‘dns.csv’ gelöscht.

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

Legt den Wert für die Spalte ComputerName in der CSV-Ausgabe fest. Die Spalte ComputerName ist immer in der Ausgabe enthalten – wenn dieser Parameter nicht angegeben wird, bleibt die Spalte leer.

Verwende dies bei der Konsolidierung von Protokollen mehrerer DNS-Server, um den Quellserver in kombinierten Datensätzen zu identifizieren.

Hinweis: Dies ist kein Remoting-Parameter. Das Cmdlet verarbeitet nur lokale Dateien.

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

Fordert vor der Ausführung des Cmdlets eine Bestätigung an.

Wenn angegeben, erfolgt eine Bestätigung vor:

  • Verarbeitung jeder DNS-Debugprotokolldatei
  • Entfernen von Quelldateien (wenn -RemoveSourceFile angegeben ist)
  • Überschreiben vorhandener Ausgabedateien

Nützlich für interaktive Verarbeitung, wenn du steuern möchtest, welche Dateien verarbeitet werden.

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

Filtert, welche Protokolleintragstypen in der Ausgabe enthalten sein sollen.

DNS-Debugprotokolle enthalten verschiedene Kontexttypen:

  • PACKET: DNS-Abfrage- und Antwortpaketinformationen (primäre Daten)
  • EVENT: DNS-Serverereignisse (z. B. „Der DNS-Server wurde gestartet.“)
  • Note: Diagnosenotizen und Warnungen (z. B. Socket-Fehler, interne Zustände)

Gültige Werte:

  • ‘All’: Alle Kontexttypen einschließen (Standard)
  • ‘Packet’: Nur PACKET-Einträge einschließen (DNS-Abfragen/-Antworten)
  • ‘Event’: Nur EVENT-Einträge einschließen (Serverereignisse)
  • ‘Note’: Nur Note-Einträge einschließen (Diagnoseinformationen)

Standard: All

Hinweis: Bei Filterung auf ‘Event’ oder ‘Note’ enthalten nur die Spalten DateTime, ThreadId, Context und Information Daten. Andere Spalten (Protokoll, ClientIP usw.) bleiben leer.

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

Legt das Trennzeichen für die CSV-Ausgabe fest.

Standard: Semikolon (;)

Gängige Alternativen: Komma (,), Tabulator (`t), Pipe (|)

Verwende Semikolon in Regionen, in denen Komma als Dezimaltrennzeichen verwendet wird (Europa). Verwende Komma für Standard-CSV-Tools und Datenbanken, die kommagetrennte Werte erwarten.

Type: String
DefaultValue: ;
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 2
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''

-InputCulture

Legt die Kultur/Region fest, die zum Parsen von Datum/Uhrzeit-Werten im DNS-Debugprotokoll verwendet wird.

DNS-Server-Debugprotokolle verwenden das Datumsformat der Windows-Regionaleinstellung auf dem Server, auf dem das Protokoll erstellt wurde. Verwende diesen Parameter bei der Verarbeitung von Protokollen von Servern mit unterschiedlichen Regionaleinstellungen.

Standard: Aktuelle Kultur

Gängige Beispiele:

  • ‘de-DE’ oder ‘de-AT’: Deutsches Format (TT.MM.JJJJ oder TT/MM/JJJJ)
  • ’en-US’: US-Format (MM/TT/JJJJ mit AM/PM)
  • ’en-GB’: UK-Format (TT/MM/JJJJ mit 24-Stunden-Zeit)
  • ‘sv-SE’: Schwedisch/ISO-Format (JJJJ-MM-TT)
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

Legt den Pfad zur DNS-Debugprotokolldatei fest, die geparst werden soll. Unterstützt Arrays zur Verarbeitung mehrerer Dateien.

Akzeptiert Pipeline-Eingaben von Get-ChildItem oder anderen Cmdlets, die Dateien liefern.

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

Legt die Kultur/Region fest, die zum Formatieren von Datum/Uhrzeit-Werten in den Ausgabedateien verwendet wird.

Steuert, wie DateTime-Werte in die CSV geschrieben werden. Verwende dies, wenn CSV-Dateien von Anwendungen oder Systemen mit bestimmten Regionaleinstellungen genutzt werden.

Standard: Aktuelle Kultur

Gängige Beispiele:

  • ’en-US’: US-Format (MM/TT/JJJJ)
  • ‘de-DE’: Deutsches Format (TT.MM.JJJJ)
  • ‘sv-SE’ oder InvariantCulture: ISO-Format (JJJJ-MM-TT) für maximale Kompatibilität
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

Legt den Pfad für die Ausgabedatei im CSV-Format fest. Wenn nicht angegeben, wird der Eingabedateiname mit der Erweiterung .csv im gleichen Verzeichnis wie die Eingabedatei verwendet.

Wichtig: Muss ein Dateipfad sein, kein Verzeichnis. Wenn du das Verzeichnis der Eingabedatei mit einem benutzerdefinierten Namen verwenden möchtest, gib den vollständigen Pfad inklusive Dateiname an.

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

Legt fest, welche Art von Ausgabe erzeugt werden soll.

Gültige Werte:

  • ‘CSV’: Erzeugt nur die Datendatei mit allen geparsten Protokolleinträgen (Standard)
  • ‘Statistic’: Erzeugt nur die Statistikdatei mit aggregierten Metriken
  • ‘Both’: Erzeugt sowohl Daten- als auch Statistikdateien

Standard: Both

Statistiken liefern aggregierte Zählungen nach Client-IP, Protokoll, Richtung und Abfragetyp sowie den Datumsbereich für jede eindeutige Kombination.

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

Entfernt die Quell-DNS-Debugprotokolldatei nach erfolgreicher Verarbeitung.

Verwende dies für automatisierte Protokollverarbeitungs-Pipelines oder zur Verwaltung des Speicherplatzes. Die Quelldatei wird nur entfernt, wenn die Verarbeitung erfolgreich abgeschlossen ist und alle Ausgabedateien erstellt wurden.

Sicherheit: Kann nicht zusammen mit -SkipHeaderValidation verwendet werden, um versehentliches Löschen ungültiger Dateien zu verhindern.

Warnung: Quelldateien werden dauerhaft gelöscht. Stelle sicher, dass die Ausgabedateien gültig sind, bevor du diese Option verwendest.

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

Umgeht die Validierung der DNS-Debugprotokoll-Kopfzeile.

Standardmäßig prüft das Cmdlet, ob Eingabedateien eine gültige DNS-Server-Debugprotokoll-Kopfzeile besitzen. Verwende diesen Schalter, um Dateien ohne Validierung zu verarbeiten, was nützlich sein kann für:

  • Geänderte oder benutzerdefinierte Protokollformate
  • Fehlerbehebung bei Validierungsproblemen
  • Nicht standardmäßige oder vorverarbeitete Protokolle

Warnung: Kann zu Verarbeitungsfehlern führen, wenn die Datei kein gültiges DNS-Protokoll ist.

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

Zeigt an, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Wenn angegeben, werden detaillierte Informationen über die auszuführenden Operationen angezeigt, ohne diese tatsächlich auszuführen. Nützlich für:

  • Vorschau, welche Dateien verarbeitet würden
  • Überprüfung der Ausgabepfade vor der Verarbeitung
  • Testen von Skripten vor dem Einsatz in der Produktion
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

Dieses Cmdlet unterstützt die Common-Parameter: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

EINGABEN

System.String[]

HINWEISE

Version : 1.3.0.1
Autor : Andi Bellstedt, Copilot
Datum : 2026-01-23
Schlüsselwörter : Microsoft Windows Server, DNSServer, DNS, DebugLog, LogParser