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

SYNOPSIS

Konvertiert Windows DNS-Server-Debug-Logdateien in das CSV-Format.

SYNTAX

__AllParameterSets

Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
 [[-ComputerName] <string>] [[-OutputType] <string>] [[-InputCulture] <cultureinfo>]
 [[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation] [-RemoveSourceFile] [-CompressOutput]
 [-WhatIf] [-Confirm] [<CommonParameters>]

ALIASES

Dieses Cmdlet hat folgende Aliase,

BESCHREIBUNG

Hochleistungs-Parser für Windows DNS-Server-Debug-Logdateien, der DNS-Serveraktivitäten transparent, analysierbar und auswertbar in Reporting- und Analysewerkzeugen macht.

DNS-Server-Debug-Logs enthalten detaillierte Anfrage-/Antwortinformationen, sind jedoch im Rohtextformat schwer zu analysieren. Dieses Skript wandelt diese Logs in strukturierte CSV-Dateien um, die in Excel, Power BI, SQL-Datenbanken oder andere Datenanalyseplattformen importiert werden können.

WICHTIGE FUNKTIONEN:

  • Parst alle 16 Felder aus DNS-Debug-Logs (Datum, Uhrzeit, Protokoll, Client-IP, Abfragetyp usw.)
  • Erzeugt strukturierte CSV-Ausgaben mit anpassbaren Trennzeichen
  • Erstellt optionale statistische Zusammenfassungen, die Aktivitäten nach Client, Protokoll und Abfragetyp aggregieren
  • Verarbeitet einzelne Dateien oder Stapel über die Pipeline
  • Unterstützt sowohl Standard- als auch detaillierte DNS-Debug-Logformate
  • Optionale automatische Komprimierung der Ausgabedateien zur Einsparung von Speicherplatz
  • Optionale Entfernung der Quelldateien nach erfolgreicher Verarbeitung
  • Validiert Logdatei-Header zur Sicherstellung der Datenintegrität

ANWENDUNGSFÄLLE:

  • Sicherheitsanalyse: Erkennung verdächtiger DNS-Abfragemuster
  • Leistungsüberwachung: Verfolgung von Anfragevolumen und Antwortzeiten
  • Kapazitätsplanung: Analyse der DNS-Serverauslastung und Client-Verteilung
  • Compliance-Berichterstattung: Dokumentation der DNS-Aktivitäten für Audit-Anforderungen
  • Fehlerbehebung: Untersuchung von DNS-Auflösungsproblemen

LEISTUNG: Optimiert für große Dateien (100MB+) durch:

  • String-Operationen statt Regex für das Parsen
  • StreamReader/StreamWriter mit 64KB Puffern
  • Manuelle CSV-Erzeugung zur Vermeidung von Export-Csv-Overhead
  • Effiziente, dictionary-basierte Statistik-Erfassung

KOMPATIBILITÄT:

  • PowerShell 5.1+ unter Windows
  • PowerShell 7+ unter Windows
  • Windows Server 2016 und neuer
  • Unterstützt DNS-Server-Debug-Logformate von 2012 R2 bis 2025

BEISPIELE

BEISPIEL 1

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

Konvertiert das DNS-Debug-Log in CSV-Format mit Standardeinstellungen. Ausgabe: C:\Logs\dns.csv (nur Datendatei, Semikolon als Trennzeichen).

BEISPIEL 2

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both

Konvertiert das DNS-Debug-Log und erzeugt beide Ausgabedateien. Ausgabe: C:\Logs\dns.csv (Daten) und C:\Logs\dns_statistic.csv (aggregierte Statistiken).

BEISPIEL 3

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

Erzeugt nur die Statistikdatei ohne die vollständige CSV-Datendatei. Ausgabe: C:\Logs\dns_statistic.csv (nur Statistik).

BEISPIEL 4

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

Konvertiert das DNS-Debug-Log an einen benutzerdefinierten Speicherort. Ausgabe: C:\Output\parsed.csv.

BEISPIEL 5

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

Konvertiert das Log mit Komma als Trennzeichen und fügt eine ComputerName-Spalte hinzu. Ausgabe: C:\Logs\dns.csv und C:\Logs\dns_statistic.csv, beide mit “DNS01” in der ComputerName-Spalte.

BEISPIEL 6

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

Verarbeitet mehrere DNS-Debug-Logdateien über die Pipeline. Ausgabe: Für jede .log-Datei werden sowohl .csv (Daten) als auch _statistic.csv (Statistiken) erstellt.

BEISPIEL 7

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

Konvertiert das DNS-Debug-Log und komprimiert die Ausgabe in ein ZIP-Archiv. Ausgabe: C:\Logs\dns.zip mit dns.csv. Die unkomprimierte csv-Datei wird nach der Komprimierung entfernt.

BEISPIEL 8

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both -CompressOutput

Konvertiert das Log mit Statistik und komprimiert beide Ausgabedateien. Ausgabe: C:\Logs\dns.zip mit dns.csv und dns_statistic.csv.

BEISPIEL 9

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

Verarbeitet mehrere Logdateien, komprimiert die Ausgabe und entfernt die Quelldateien. Jede .log-Datei wird in eine komprimierte .zip-Datei umgewandelt, danach wird die Quelldatei gelöscht. Ideal für automatisierte Log-Archivierungspipelines.

BEISPIEL 10

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\old_dns.log" -RemoveSourceFile -Verbose

Konvertiert die Logdatei und entfernt die Quelle nach erfolgreicher Verarbeitung. Verbose-Ausgabe bestätigt die Dateientfernung. Vorsicht: Quelldateien werden dauerhaft gelöscht.

BEISPIEL 11

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE'

Konvertiert ein DNS-Debug-Log von einem deutschen Windows-Server. Nützlich, wenn die Logdatei von einem Server mit anderen Ländereinstellungen stammt.

BEISPIEL 12

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo('sv-SE'))

Konvertiert ein DNS-Debug-Log von einem schwedischen Windows-Server mit ISO-Datumsformat (YYYY-MM-DD). Hilfreich für Logs von Servern mit unterschiedlichen Gebietsschemas.

BEISPIEL 13

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

Konvertiert ein DNS-Debug-Log von einem deutschen Windows-Server und formatiert Ausgabedaten für US-Systeme. Nützlich für die Verarbeitung internationaler Logs für US-basierte Systeme.

BEISPIEL 14

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)

Konvertiert ein DNS-Debug-Log und formatiert Ausgabedaten im ISO 8601-Format (YYYY-MM-DD). Ideal für plattformübergreifende Kompatibilität oder Datenaustausch-Szenarien.

BEISPIEL 15

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -WhatIf

Zeigt an, was passieren würde, wenn der Befehl ausgeführt wird, ohne Dateien zu erstellen. Nützlich zum Testen von Befehlsparametern vor der Verarbeitung echter Daten.

BEISPIEL 16

PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -RemoveSourceFile -CompressOutput -WhatIf

Zeigt den kompletten Ablauf inklusive Komprimierung und Quellenentfernung an. Es werden keine Dateien erstellt, komprimiert oder gelöscht – nur eine Vorschau.

PARAMETER

-CompressOutput

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

Erstellt eine .zip-Datei mit den generierten CSV-Dateien und entfernt anschließend die unkomprimierten CSV(s). Die ZIP-Datei wird im selben Verzeichnis wie die Ausgabedatei mit demselben Basisnamen erstellt. Die Komprimierung erfolgt unmittelbar nach der Verarbeitung jeder Datei, um Speicherplatz effizient zu verwalten.

Vorteile:

  • Reduziert den Speicherplatzbedarf erheblich (CSV-Dateien lassen sich sehr gut komprimieren)
  • Vereinfacht Dateiverwaltung und Archivierung
  • Geeignet für die langfristige Speicherung verarbeiteter Logs

Beispiel: Eingabe ‘dns.log’ erzeugt ‘dns.csv’, das zu ‘dns.zip’ komprimiert wird, danach wird ‘dns.csv’ entfernt.

Kompatibel mit PowerShell 5.1+ und 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

Optional. Wenn angegeben, wird eine ComputerName-Spalte mit dem angegebenen Wert in die CSV-Ausgabe eingefügt. Nützlich beim Zusammenführen von Logs mehrerer DNS-Server.

Wichtig: Dies ist KEIN Remoting-Feature. Das Skript 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 Ausführung des Cmdlets eine Bestätigung an.

Wenn angegeben, wird vor folgenden Aktionen um Bestätigung gebeten:

  • Verarbeitung jeder DNS-Debug-Logdatei
  • Entfernen von Quelldateien (bei Verwendung von -RemoveSourceFile)
  • Überschreiben vorhandener Ausgabedateien

Nützlich für interaktive Verarbeitung, wenn du kontrollieren 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: ''

-Delimiter

Das Trennzeichen für die CSV-Ausgabe.

Standard ist Semikolon ‘;’

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

-InputCulture

Gibt die Kultur an, die zum Parsen von Datums-/Uhrzeitwerten im DNS-Debug-Log verwendet wird.

DNS-Server-Debug-Logs verwenden das Datumsformat der Windows-Gebietsschemaeinstellung des Servers, auf dem das Log erstellt wurde. Dieser Parameter ermöglicht das Parsen von Logs von Servern mit unterschiedlichen regionalen Einstellungen.

Standard ist die aktuelle Kultur ([System.Globalization.CultureInfo]::CurrentCulture).

Gängige Kulturwerte:

  • ‘de-DE’ oder ‘de-AT’: Deutsches Format (TT.MM.JJJJ oder TT/MM/JJJJ)
  • ’en-US’: US-Format (MM/TT/JJJJ)
  • ’en-GB’: UK-Format (TT/MM/JJJJ)
  • ‘sv-SE’: Schwedisch/ISO-Format (JJJJ-MM-TT)

Beispiel: -InputCulture ‘de-DE’ für Logs von einem deutschen Windows-Server. Beispiel: -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo(‘sv-SE’)) für schwedische Logs.

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

Pfad zur zu parsenden DNS-Debug-Logdatei. Unterstützt Arrays zur Verarbeitung mehrerer Dateien.

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

Gibt die Kultur an, die zum Formatieren von Datums-/Uhrzeitwerten in den Ausgabedateien verwendet wird.

Dieser Parameter steuert, wie DateTime-Werte in der CSV-Ausgabe geschrieben werden. Nützlich, wenn die CSV-Dateien von Anwendungen oder Systemen mit bestimmten regionalen Einstellungen genutzt werden.

Standard ist die aktuelle Kultur ([System.Globalization.CultureInfo]::CurrentCulture).

Gängige Kulturwerte:

  • ’en-US’: US-Format (MM/TT/JJJJ)
  • ‘de-DE’: Deutsches Format (TT.MM.JJJJ)
  • ’en-GB’: UK-Format (TT/MM/JJJJ)
  • ‘sv-SE’: Schwedisch/ISO-Format (JJJJ-MM-TT)

Beispiel: -OutputCulture ’en-US’ zur Formatierung von Daten für US-Systeme. Beispiel: -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture) für ISO-Format.

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

Optional. Pfad für die Ausgabedatei im CSV-Format. Wenn nicht angegeben, wird der Eingabedateiname mit der Endung .csv verwendet.

Muss ein Dateipfad sein, kein Verzeichnis. Wenn nur das Ausgabeverzeichnis angegeben werden soll, lasse diesen Parameter weg und das Skript verwendet dasselbe Verzeichnis wie die Eingabedatei.

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

Gibt den Typ der zu erzeugenden Ausgabe an.

Gültige Werte:

  • ‘CSV’: Erzeugt nur die CSV-Datei mit den geparsten Logdaten (Standard)
  • ‘Statistic’: Erzeugt nur die Statistikdatei mit aggregierten Daten
  • ‘Both’: Erzeugt sowohl CSV- als auch Statistikdateien

Standard ist ‘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

Entfernt die Quell-DNS-Debug-Logdatei nach erfolgreicher Verarbeitung.

Verwende diesen Schalter, um Eingabedateien automatisch zu löschen, nachdem sie erfolgreich geparst und Ausgabedateien erstellt wurden. Nützlich für:

  • Automatisierte Log-Verarbeitungspipelines
  • Speicherplatzverwaltung bei der Log-Sammlung
  • Vermeidung der erneuten Verarbeitung bereits konvertierter Dateien

Sicherheitsfunktionen:

  • Entfernt Dateien nur nach erfolgreicher Verarbeitung und Ausgabenerstellung
  • Überspringt das Entfernen, wenn die Verarbeitung fehlschlägt oder unterbrochen wird
  • Kann aus Sicherheitsgründen nicht mit SkipHeaderValidation verwendet werden

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

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 des DNS-Debug-Log-Headers.

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

  • Verarbeitung modifizierter oder benutzerdefinierter Logformate
  • Fehlerbehebung bei Validierungsproblemen
  • Verarbeitung von Logs mit nicht standardmäßigen Headern

Warnung: Die Verwendung dieses Parameters kann zu Verarbeitungsfehlern führen, wenn die Datei kein gültiges DNS-Log 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 von Ausgabepfaden vor der Verarbeitung
  • Testen von Skripten vor dem produktiven Einsatz
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 Parameters: -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.2.0.0 Autor: Andreas Bellstedt, Copilot Datum: 2026-01-23 Schlüsselwörter: Microsoft, Windows Server, DNSServer, DNS, DebugLog, LogParser