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

SYNOPSIS

Konwertuje pliki dziennika debugowania serwera DNS Windows do formatu CSV.

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

Ten cmdlet ma następujące aliasy,

DESCRIPTION

Wysokowydajny parser plików dziennika debugowania serwera DNS Windows, zaprojektowany, aby uczynić aktywność serwera DNS przejrzystą, analizowalną i ocenialną w narzędziach raportowania i analityki.

Dzienniki debugowania serwera DNS zawierają szczegółowe informacje o zapytaniach/odpowiedziach, ale są trudne do analizy w surowym formacie tekstowym.
Ten skrypt przekształca te dzienniki w ustrukturyzowane pliki CSV, które można importować do Excela, Power BI, baz danych SQL lub innych platform analizy danych.

KLUCZOWE MOŻLIWOŚCI:

  • Parsuje wszystkie 16 pól z dzienników debugowania DNS (data, czas, protokół, IP klienta, typ zapytania itd.)
  • Generuje ustrukturyzowany plik CSV z konfigurowalnym separatorem
  • Tworzy opcjonalne podsumowania statystyczne agregujące aktywność według klienta, protokołu i typu zapytania
  • Przetwarza pojedyncze pliki lub partie przez potok
  • Obsługuje zarówno standardowe, jak i szczegółowe formaty dzienników debugowania DNS
  • Opcjonalna automatyczna kompresja plików wyjściowych w celu oszczędności miejsca na dysku
  • Opcjonalne usuwanie plików źródłowych po pomyślnym przetworzeniu
  • Waliduje nagłówki plików dziennika, aby zapewnić integralność danych

ZASTOSOWANIA:

  • Analiza bezpieczeństwa: identyfikacja podejrzanych wzorców zapytań DNS
  • Monitorowanie wydajności: śledzenie wolumenów zapytań i czasów odpowiedzi
  • Planowanie pojemności: analiza obciążenia serwera DNS i rozkładu klientów
  • Raportowanie zgodności: dokumentowanie aktywności DNS dla wymagań audytu
  • Rozwiązywanie problemów: badanie problemów z rozwiązywaniem DNS

WYDAJNOŚĆ:
Optymalizowany dla dużych plików (100MB+) poprzez:

  • Operacje na łańcuchach zamiast wyrażeń regularnych do parsowania
  • StreamReader/StreamWriter z buforami 64KB
  • Ręczne generowanie CSV, aby uniknąć narzutu Export-Csv
  • Wydajne zbieranie statystyk oparte na słownikach

KOMPATYBILNOŚĆ:

  • PowerShell 5.1+ na Windows
  • PowerShell 7+ na Windows
  • Windows Server 2016 i nowsze
  • Obsługuje formaty dzienników debugowania DNS Server od 2012 R2 do 2025

EXAMPLES

EXAMPLE 1

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

Konwertuje dziennik debugowania DNS do formatu CSV z domyślnymi ustawieniami.
Wynik: C:\Logs\dns.csv (tylko dane, separator średnik).

EXAMPLE 2

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

Konwertuje dziennik debugowania DNS i generuje oba pliki wyjściowe.
Wyniki: C:\Logs\dns.csv (dane) oraz C:\Logs\dns_statistic.csv (statystyki zagregowane).

EXAMPLE 3

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

Generuje tylko plik statystyk bez tworzenia pełnego pliku CSV z danymi.
Wynik: C:\Logs\dns_statistic.csv (tylko statystyki).

EXAMPLE 4

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

Konwertuje dziennik debugowania DNS do niestandardowej lokalizacji wyjściowej.
Wynik: C:\Output\parsed.csv.

EXAMPLE 5

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

Konwertuje dziennik z separatorem przecinka i kolumną ComputerName.
Wyniki: C:\Logs\dns.csv oraz C:\Logs\dns_statistic.csv, oba z wartością “DNS01” w kolumnie ComputerName.

EXAMPLE 6

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

Przetwarza wiele plików dziennika debugowania DNS przez potok.
Wyniki: Dla każdego pliku .log generuje pliki .csv (dane) i _statistic.csv (statystyki).

EXAMPLE 7

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

Konwertuje dziennik debugowania DNS i kompresuje wynik do archiwum ZIP.
Wynik: C:\Logs\dns.zip zawierający dns.csv. Nieskompresowany plik csv jest usuwany po kompresji.

EXAMPLE 8

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

Konwertuje dziennik z generowaniem statystyk i kompresuje oba pliki wyjściowe.
Wynik: C:\Logs\dns.zip zawierający dns.csv oraz dns_statistic.csv.

EXAMPLE 9

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

Przetwarza wiele plików dziennika, kompresuje wyjście i usuwa pliki źródłowe.
Każdy plik .log jest konwertowany do skompresowanego .zip, a następnie plik .log jest usuwany.
Idealne do automatycznych procesów archiwizacji dzienników.

EXAMPLE 10

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

Konwertuje plik dziennika i usuwa plik źródłowy po pomyślnym przetworzeniu.
Szczegółowe informacje potwierdzają usunięcie pliku. Używaj ostrożnie, ponieważ pliki źródłowe są trwale usuwane.

EXAMPLE 11

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

Konwertuje dziennik debugowania DNS z niemieckiego serwera Windows.
Używaj, gdy plik dziennika pochodzi z serwera z innymi ustawieniami regionalnymi.

EXAMPLE 12

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

Konwertuje dziennik debugowania DNS ze szwedzkiego serwera Windows używającego formatu daty ISO (RRRR-MM-DD).
Przydatne do przetwarzania dzienników z serwerów o różnych ustawieniach regionalnych.

EXAMPLE 13

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

Konwertuje dziennik debugowania DNS z niemieckiego serwera Windows i formatuje daty wyjściowe dla systemów amerykańskich.
Przydatne do przetwarzania dzienników z serwerów międzynarodowych dla systemów w USA.

EXAMPLE 14

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

Konwertuje dziennik debugowania DNS i formatuje daty wyjściowe w formacie ISO 8601 (RRRR-MM-DD).
Idealne do kompatybilności międzyplatformowej lub wymiany danych.

EXAMPLE 15

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

Pokazuje, co by się stało, gdyby polecenie zostało wykonane, bez faktycznego tworzenia plików.
Przydatne do testowania parametrów przed przetwarzaniem rzeczywistych danych.

EXAMPLE 16

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

Podgląd całego procesu, włącznie z kompresją i usuwaniem plików źródłowych.
Nie tworzy, nie kompresuje ani nie usuwa plików — tylko pokazuje, co by się stało.

PARAMETERS

-CompressOutput

Kompresuje pliki CSV wyjściowe do archiwum ZIP po ich utworzeniu.

Tworzy plik .zip zawierający wygenerowane pliki CSV, a następnie usuwa nieskompresowane pliki CSV.
Plik ZIP jest tworzony w tym samym katalogu co plik CSV i ma tę samą nazwę bazową.
Kompresja następuje natychmiast po przetworzeniu każdego pliku, aby efektywnie zarządzać miejscem na dysku.

Zalety:

  • Znacznie zmniejsza zużycie miejsca na dysku (pliki CSV dobrze się kompresują)
  • Upraszcza zarządzanie i archiwizację plików
  • Nadaje się do długoterminowego przechowywania przetworzonych dzienników

Przykład: Plik wejściowy ‘dns.log’ generuje ‘dns.csv’, który jest kompresowany do ‘dns.zip’, a następnie ‘dns.csv’ jest usuwany.

Kompatybilne z PowerShell 5.1+ i 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

Opcjonalne.
Jeśli określone, dodaje kolumnę ComputerName do pliku CSV z podaną wartością.
Przydatne przy konsolidacji dzienników z wielu serwerów DNS.

Ważne: To NIE jest funkcja zdalnego wykonywania.
Skrypt przetwarza tylko pliki lokalne.

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

Pyta o potwierdzenie przed wykonaniem cmdletu.

Gdy określone, wymaga potwierdzenia przed:

  • Przetwarzaniem każdego pliku dziennika debugowania DNS
  • Usuwaniem plików źródłowych (gdy podano -RemoveSourceFile)
  • Nadpisywaniem istniejących plików wyjściowych

Przydatne do interaktywnego przetwarzania, gdy chcesz kontrolować, które pliki są przetwarzane.

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

Znak separatora dla pliku CSV.

Domyślnie średnik ‘;’

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

-InputCulture

Określa kulturę do parsowania wartości daty/czasu w dzienniku debugowania DNS.

Dzienniki debugowania serwera DNS używają formatu daty zgodnego z lokalizacją Windows na serwerze, na którym dziennik został wygenerowany.
Ten parametr pozwala na parsowanie dzienników z serwerów o różnych ustawieniach regionalnych.

Domyślnie bieżąca kultura ([System.Globalization.CultureInfo]::CurrentCulture).

Popularne wartości kultury:

  • ‘de-DE’ lub ‘de-AT’: format niemiecki (DD.MM.RRRR lub DD/MM/RRRR)
  • ’en-US’: format amerykański (MM/DD/RRRR)
  • ’en-GB’: format brytyjski (DD/MM/RRRR)
  • ‘sv-SE’: format szwedzki/ISO (RRRR-MM-DD)

Przykład: -InputCulture ‘de-DE’ dla dzienników z niemieckiego serwera Windows.
Przykład: -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo(‘sv-SE’)) dla dzienników szwedzkich.

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

Ścieżka do pliku dziennika debugowania DNS do parsowania.
Obsługuje tablice do przetwarzania wielu plików.

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

Określa kulturę do formatowania wartości daty/czasu w plikach CSV wyjściowych.

Parametr kontroluje sposób zapisu wartości DateTime w pliku CSV.
Przydatne, gdy pliki CSV będą używane przez aplikacje lub systemy o określonych ustawieniach regionalnych.

Domyślnie bieżąca kultura ([System.Globalization.CultureInfo]::CurrentCulture).

Popularne wartości kultury:

  • ’en-US’: format amerykański (MM/DD/RRRR)
  • ‘de-DE’: format niemiecki (DD.MM.RRRR)
  • ’en-GB’: format brytyjski (DD/MM/RRRR)
  • ‘sv-SE’: format szwedzki/ISO (RRRR-MM-DD)

Przykład: -OutputCulture ’en-US’ do formatowania dat dla systemów amerykańskich.
Przykład: -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture) dla formatu ISO.

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

Opcjonalne.
Ścieżka do pliku CSV wyjściowego.
Jeśli nie określono, używa nazwy pliku wejściowego z rozszerzeniem .csv.

Musi być to ścieżka do pliku, nie katalogu.
Jeśli chcesz określić tylko katalog wyjściowy, pomiń ten parametr, a skrypt użyje tego samego katalogu co plik wejściowy.

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

Określa typ generowanego wyjścia.

Dopuszczalne wartości:

  • ‘CSV’: generuje tylko plik CSV z parsowanymi danymi (domyślnie)
  • ‘Statistic’: generuje tylko plik statystyk z danymi zagregowanymi
  • ‘Both’: generuje oba pliki: CSV i statystyki

Domyślnie ‘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

Usuwa źródłowy plik dziennika debugowania DNS po pomyślnym przetworzeniu.

Użyj tego przełącznika, aby automatycznie usuwać pliki wejściowe po ich pomyślnym sparsowaniu i utworzeniu plików wyjściowych.
Przydatne do:

  • Automatycznych procesów przetwarzania dzienników
  • Zarządzania miejscem na dysku w scenariuszach zbierania dzienników
  • Zapobiegania ponownemu przetwarzaniu już skonwertowanych plików

Funkcje bezpieczeństwa:

  • Usuwa pliki tylko po pomyślnym przetworzeniu i utworzeniu wyjścia
  • Pomija usuwanie, jeśli przetwarzanie się nie powiedzie lub zostanie przerwane
  • Nie można używać razem z -SkipHeaderValidation ze względów bezpieczeństwa

Ostrzeżenie: Pliki źródłowe są trwale usuwane.
Upewnij się, że pliki wyjściowe są poprawne przed użyciem tej opcji.

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

Pomija sprawdzanie poprawności nagłówka pliku dziennika debugowania DNS.

Domyślnie skrypt weryfikuje, czy pliki wejściowe mają poprawną strukturę nagłówka dziennika debugowania serwera DNS.
Użyj tego przełącznika, aby przetwarzać pliki bez walidacji nagłówka, co może być przydatne do:

  • Przetwarzania zmodyfikowanych lub niestandardowych formatów dzienników
  • Rozwiązywania problemów z walidacją
  • Przetwarzania dzienników z niestandardowymi nagłówkami

Ostrzeżenie: Użycie tego parametru może skutkować błędami przetwarzania, jeśli plik nie jest prawidłowym dziennikiem DNS.

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

Pokazuje, co by się stało, gdyby cmdlet został uruchomiony.
Cmdlet nie jest wykonywany.

Gdy określone, wyświetla szczegółowe informacje o operacjach, które zostałyby wykonane, bez faktycznego ich wykonania.
Przydatne do:

  • Podglądu, które pliki zostałyby przetworzone
  • Weryfikacji ścieżek plików wyjściowych przed przetwarzaniem
  • Testowania skryptów przed uruchomieniem w środowisku produkcyjnym
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

Ten cmdlet obsługuje parametry wspólne: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction oraz -WarningVariable. Więcej informacji znajdziesz w
about_CommonParameters.

INPUTS

System.String[]

NOTES

Wersja: 1.2.0.0
Autor: Andreas Bellstedt, Copilot
Data: 2026-01-23
Słowa kluczowe: Microsoft, Windows Server, DNSServer, DNS, DebugLog, LogParser