Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

About this documentation

Dies ist die offizielle Dokumentationsseite für DNSServer.DebugLogParser, ein PowerShell-Modul, das Windows DNS Server Debug-Logdateien in strukturierte, analysierbare CSV-Daten umwandelt.

Das Modul wird von Andreas Bellstedt (Andi) entwickelt und gepflegt, einem IT-Experten mit über 20 Jahren Erfahrung in Unternehmensumgebungen. Sein stärkster Fokus liegt auf Identity & Access Management und Automatisierung, mit PowerShell im Zentrum seiner täglichen Arbeit.

Über das Modul

DNSServer.DebugLogParser entstand aus einem realen Bedarf: Windows DNS Server Debug-Logs sind menschenlesbar, aber nicht für Analysen oder Berichte geeignet. Dieses Modul schließt diese Lücke, indem es Roh-Logdateien in strukturiertes CSV-Format konvertiert, das sich in gängige Tools wie Excel, Power BI, SQL-Datenbanken und SIEM-Systeme integriert.

Zentrale Designprinzipien:

  • Performance zuerst — optimiert für 100MB+ Dateien mit Streaming-I/O und String-Operationen
  • Editionsübergreifende Kompatibilität — unterstützt PowerShell Desktop (5.1+) und Core (7.x)
  • Produktionsbereit — mit Header-Validierung, Fehlerbehandlung und optionaler Komprimierung
  • Pipeline-freundlich — integriert sich natürlich in die Pipeline-Architektur von PowerShell

Ressourcen

Mitwirken

Beiträge sind willkommen. Wenn Sie Fehler finden oder Verbesserungsvorschläge haben, öffnen Sie bitte ein Issue oder einen Pull Request auf dem GitHub-Repository.

1 - Übersicht

DNSServer.DebugLogParser ist ein PowerShell-Modul, das Windows DNS-Server-Debugprotokolldateien in strukturierte, analysierbare CSV-Daten für Sicherheitsanalysen, Leistungsüberwachung, Fehlerbehebung und Compliance-Berichte umwandelt.

Was ist ein DNS-Debugprotokoll?

DNS-Debug-Logging ist eine Funktion des Windows DNS-Servers, die detaillierte Informationen über DNS-Vorgänge aufzeichnet. Wenn aktiviert, schreibt der DNS-Server Protokolleinträge in eine Textdatei (typischerweise dns.log) im Verzeichnis des DNS-Servers.

Jeder Protokolleintrag enthält bis zu 16 Felder, darunter:

  • Datum und Uhrzeit der Abfrage
  • Verwendetes Protokoll (UDP oder TCP)
  • Richtung (Senden oder Empfangen)
  • Client-IP-Adresse
  • Abfragetyp (A, AAAA, MX, PTR usw.)
  • Abgefragter Domainname
  • Antwortcode (NOERROR, NXDOMAIN usw.)
  • Abfrageflags und Optionen
  • IP-Adresse in der Antwort (bei erfolgreichen Abfragen)
  • Portnummern und weitere technische Details

Warum DNS-Debugprotokolle parsen?

DNS-Protokolle sind entscheidend für:

Fehlerbehebung

  • Diagnose von Namensauflösungsfehlern
  • Identifikation falsch konfigurierter Clients oder Anwendungen
  • Auffinden der Quelle problematischer Abfragen
  • Überprüfung der korrekten DNS-Konfiguration und Zonentransfers

Leistungsüberwachung

  • Erkennung von Quellen mit hohem Abfragevolumen
  • Analyse von Abfragetypen und -mustern zur Optimierung der DNS-Infrastruktur
  • Erkennung von Konfigurationsproblemen, die zu übermäßigen Abfragen führen
  • Verfolgung von Antwortzeiten und Erfolgsraten
  • Überwachung der DNS-Server-Auslastung und Kapazität

Sicherheitsanalyse

  • Erkennung von DNS-Tunneling und Datenexfiltrationsversuchen
  • Identifikation von Domains, die mit Malware und Command-and-Control-Servern in Verbindung stehen
  • Verfolgung verdächtiger Abfragemuster, die auf kompromittierte Systeme hinweisen können
  • Überwachung von DNS-Amplifikationsangriffen
  • Untersuchung von Sicherheitsvorfällen und Nachverfolgung von Angreiferaktivitäten

Compliance und Auditing

  • Erfüllung regulatorischer Anforderungen an Protokollierung und Aufbewahrung
  • Dokumentation der Netzwerkaktivität für Prüfpfade
  • Erstellung von Berichten für Management und Compliance-Beauftragte
  • Nachweis der Sorgfaltspflicht bei der Sicherheitsüberwachung

Funktionsweise des Moduls (auf hoher Ebene)

Das Modul ist für große Dateien optimiert und verarbeitet DNS-Debugprotokolle zu strukturiertem CSV-Ausgabeformat. Es unterstützt mehrzeilige Einträge (z. B. PACKET-Detailblöcke und eingerückte Fortsetzungszeilen), sodass Ereignis-/Diagnosemeldungen und Paketdetails dem korrekten Eintrag zugeordnet bleiben.

Wichtige Funktionen:

  • Parst die nativen DNS-Debugprotokollfelder und erzeugt ein konsistentes CSV-Layout
  • Unterstützt mehrere DNS-Server-Versionen (2012 R2 bis 2025)
  • Funktioniert mit PowerShell Desktop (5.1+) und Core (7.x)
  • Verarbeitet Dateien beliebiger Größe (getestet mit über 100 MB großen Dateien)
  • Validiert Protokolldateikopfzeilen zur Sicherstellung der Datenintegrität
  • Erzeugt optionale statistische Zusammenfassungen
  • Unterstützt Batch-Verarbeitung über die PowerShell-Pipeline
  • Komprimiert Ausgabedateien optional zur Einsparung von Speicherplatz
  • Kann Quell-Dateien nach erfolgreicher Verarbeitung automatisch löschen
  • Kulturabhängige Datumsparsing für internationale DNS-Server-Protokolle
  • Kulturabhängige Datumsformatierung für internationale Ausgabeanforderungen

Lizenzierung und Support

Das Modul wird unter der MIT-Lizenz veröffentlicht. Community-Support ist über GitHub Issues verfügbar.

2 - Operative Best Practices

Bei der Verwendung von DNSServer.DebugLogParser in der Produktion:

  1. Regelmäßige Verarbeitung planen

    • Nutze den Taskplaner, um neue Protokolldateien täglich oder wöchentlich automatisch zu konvertieren.
  2. Protokolle angemessen rotieren

    • DNS-Debug-Protokolle können schnell wachsen; konfiguriere die Rotation bei einer handhabbaren Größe (z. B. 100 MB).
  3. Ausgabe validieren

    • Überprüfe die ersten konvertierten Dateien, bevor du die Automatisierung vollständig einsetzt.
  4. Speicherbedarf planen

    • Selbst mit Kompression solltest du den Speicherbedarf basierend auf DNS-Volumen und Aufbewahrungszeit planen.
  5. Sensible Daten sichern

    • DNS-Protokolle können sensible Informationen enthalten; schütze die Ausgaben mit geeigneten Zugriffskontrollen.
  6. Deinen Workflow dokumentieren

    • Dokumentiere Verarbeitungspläne, Speicherorte und die Nutzung der Analyse.
  7. Mit Beispieldateien testen

    • Validere Parameter und Ausgabeformat, bevor du kritische Protokolle verarbeitest.
  8. Auf Fehler überwachen

    • Achte auf beschädigte Protokolle, Zugriffsprobleme oder unzureichenden Speicherplatz.

3 - Fehlerbehebung

Häufige Probleme und Lösungen

„Die Datei ist keine gültige DNS-Debug-Logdatei“

  • Stelle sicher, dass du eine tatsächliche Debug-Logdatei des DNS-Servers konvertierst.
  • Die Datei sollte mit Message logging started at beginnen oder DNS-Abfrageeinträge enthalten.
  • Wenn du sicher bist, dass die Datei gültig ist, der Header aber abweicht, verwende -SkipHeaderValidation.

Ausgabedatei ist leer oder unvollständig

  • Überprüfe, ob die Eingabedatei gültige Logeinträge enthält.
  • Manche Logs enthalten nur Header-Informationen, wenn keine Abfragen stattgefunden haben.
  • Vergewissere dich, dass die Logdatei nicht beschädigt ist und tatsächliche Abfragedaten enthält.

Verarbeitung ist sehr langsam

  • Stelle sicher, dass genügend Arbeitsspeicher vorhanden ist und die Festplatte nicht stark ausgelastet ist.
  • Ziehe in Betracht, kleinere Logdateien zu verarbeiten.
  • Nutze -CompressOutput mit geplanter Verarbeitung, um kleinere Chargen zu verarbeiten.

„Zugriff verweigert“-Fehler

  • Starte PowerShell mit den erforderlichen Berechtigungen, um die Quell-Logdateien zu lesen und in das Zielverzeichnis zu schreiben.
  • DNS-Logdateien erfordern möglicherweise Administratorrechte.

Komprimierte Ausgabe ist größer als erwartet

  • Logs mit vielen einzigartigen Werten komprimieren sich weniger effizient; das kann normal sein.
  • ZIP-Kompression erzielt dennoch meist eine deutliche Reduzierung.

Statistikdatei entspricht nicht den Erwartungen

  • Überprüfe, ob du -OutputType Both oder -OutputType Statistic verwendest.
  • Statistiken sind aggregierte Zählwerte (tägliche Gruppierungen), daher stellen die Werte Gesamtsummen dar.

Probleme melden

Wenn du auf Probleme stößt, die hier nicht behandelt werden:

  1. Vergewissere dich, dass du die neueste Version des Moduls verwendest.
  2. Prüfe die GitHub Issues auf ähnliche Probleme.
  3. Sammle Diagnosedaten:
    • PowerShell-Version ($PSVersionTable)
    • Modulversion (Get-Module DNSServer.DebugLogParser)
    • Beispiel-Logdatei (wenn möglich)
    • Vollständige Fehlermeldung und Stacktrace
  4. Erstelle ein neues GitHub Issue mit den Details.

4 - Modulbefehle Referenz

Hier findest du eine Referenz für alle Befehle im Modul. Diese Referenz soll dir helfen, schnell den benötigten Befehl zu finden und zu verstehen, wie du ihn effektiv einsetzt.

Wenn du auf einen Befehl klickst, gelangst du zu einer Detailseite, die umfassende Informationen zum Befehl bietet, einschließlich Syntax, Parameter, Beispiele sowie zusätzliche Hinweise oder Tipps zur Verwendung.

4.1 - Convert-DNSDebugLogFile

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