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