To wielostronicowy widok tej sekcji do wydrukowania. Kliknij aby wydrukować.

Wróć do zwykłego widoku tej strony.

O tej dokumentacji

To jest oficjalna strona dokumentacji dla DNSServer.DebugLogParser, modułu PowerShell, który przekształca pliki dziennika debugowania serwera DNS Windows w ustrukturyzowane, analizowalne dane CSV.

O module

DNSServer.DebugLogParser powstał z realnej potrzeby: dzienniki debugowania serwera DNS Windows są czytelne dla człowieka, ale nie nadają się do analiz czy raportowania. Ten moduł wypełnia tę lukę, konwertując surowe pliki dziennika do ustrukturyzowanego formatu CSV, który integruje się z popularnymi narzędziami jak Excel, Power BI, bazy danych SQL czy systemy SIEM.

Kluczowe zasady projektowe:

  • Wydajność przede wszystkim — zoptymalizowany pod kątem plików powyżej 100MB, wykorzystujący strumieniowe operacje I/O i operacje na łańcuchach znaków
  • Kompatybilność między edycjami — wspiera PowerShell Desktop (5.1+) oraz Core (7.x)
  • Gotowy do produkcji — zawiera walidację nagłówków, obsługę błędów oraz opcjonalną kompresję
  • Przyjazny dla potoku — naturalnie integruje się z architekturą potokową PowerShell

Zasoby

Współpraca

Wkłady są mile widziane. Jeśli znajdziesz błędy, problemy lub masz sugestie ulepszeń, prosimy o otwarcie zgłoszenia lub pull requesta w repozytorium GitHub.

1 - Przegląd

DNSServer.DebugLogParser to moduł PowerShell, który przekształca pliki dziennika debugowania serwera DNS Windows w ustrukturyzowane, analizowalne dane CSV do analizy bezpieczeństwa, monitorowania wydajności, rozwiązywania problemów oraz raportowania zgodności.

Co to jest dziennik debugowania DNS?

Logowanie debugowania DNS to funkcja serwera DNS Windows, która rejestruje szczegółowe informacje o operacjach DNS. Po włączeniu serwer DNS zapisuje wpisy dziennika do pliku tekstowego (zwykle dns.log) w katalogu serwera DNS.

Każdy wpis dziennika zawiera do 16 pól, w tym:

  • Datę i godzinę zapytania
  • Używany protokół (UDP lub TCP)
  • Kierunek (Wysyłanie lub Odbieranie)
  • Adres IP klienta
  • Typ zapytania (A, AAAA, MX, PTR itd.)
  • Nazwę domeny zapytanej
  • Kod odpowiedzi (NOERROR, NXDOMAIN itd.)
  • Flagi i opcje zapytania
  • Adres IP w odpowiedzi (dla udanych zapytań)
  • Numery portów i dodatkowe szczegóły techniczne

Dlaczego warto analizować dzienniki debugowania DNS?

Dzienniki DNS są kluczowe dla:

Rozwiązywania problemów

  • Diagnozowania błędów rozwiązywania nazw
  • Identyfikowania źle skonfigurowanych klientów lub aplikacji
  • Śledzenia źródła problematycznych zapytań
  • Weryfikacji poprawnej konfiguracji DNS i transferów stref

Monitorowania wydajności

  • Identyfikowania źródeł zapytań o dużym wolumenie
  • Analizowania typów i wzorców zapytań w celu optymalizacji infrastruktury DNS
  • Wykrywania problemów konfiguracyjnych powodujących nadmierne zapytania
  • Śledzenia czasów odpowiedzi i wskaźników sukcesu
  • Monitorowania obciążenia i pojemności serwera DNS

Analizy bezpieczeństwa

  • Wykrywania tunelowania DNS i prób wycieku danych
  • Identyfikowania domen powiązanych z malware i serwerami dowodzenia i kontroli
  • Śledzenia podejrzanych wzorców zapytań, które mogą wskazywać na zainfekowane systemy
  • Monitorowania ataków amplifikacyjnych DNS
  • Badania incydentów bezpieczeństwa i śledzenia aktywności atakujących

Zgodności i audytu

  • Spełniania wymogów regulacyjnych dotyczących logowania i przechowywania danych
  • Dokumentowania aktywności sieciowej na potrzeby audytów
  • Generowania raportów dla zarządu i osób odpowiedzialnych za zgodność
  • Demonstrowania należytej staranności w monitoringu bezpieczeństwa

Jak działa moduł (na wysokim poziomie)

Moduł jest zoptymalizowany pod kątem dużych plików i przetwarza dzienniki debugowania DNS do ustrukturyzowanego formatu CSV. Obsługuje rekordy wieloliniowe (np. bloki szczegółów PACKET i wcięte linie kontynuacji), dzięki czemu komunikaty zdarzeń/diagnostyczne oraz szczegóły pakietów pozostają przypisane do właściwego rekordu.

Kluczowe możliwości:

  • Parsuje natywne pola dziennika debugowania DNS i generuje spójny układ CSV
  • Obsługuje wiele wersji serwera DNS (od 2012 R2 do 2025)
  • Wspiera PowerShell Desktop (5.1+) oraz Core (7.x)
  • Przetwarza pliki dowolnej wielkości (testowano na plikach 100MB+)
  • Waliduje nagłówki plików dziennika, aby zapewnić integralność danych
  • Generuje opcjonalne podsumowania statystyczne
  • Obsługuje przetwarzanie wsadowe przez potok PowerShell
  • Opcjonalnie kompresuje pliki wyjściowe, oszczędzając miejsce na dysku
  • Może automatycznie usuwać pliki źródłowe po pomyślnym przetworzeniu
  • Uwzględnia ustawienia kulturowe przy parsowaniu dat dla międzynarodowych dzienników DNS
  • Uwzględnia ustawienia kulturowe przy formatowaniu dat dla międzynarodowych wymagań wyjściowych

Licencjonowanie i wsparcie

Moduł jest udostępniony na licencji MIT. Wsparcie społecznościowe dostępne jest przez GitHub Issues.

2 - Najlepsze praktyki operacyjne

Podczas korzystania z DNSServer.DebugLogParser w środowisku produkcyjnym:

  1. Zaplanuj regularne przetwarzanie

    • Użyj Harmonogramu zadań, aby automatycznie konwertować nowe pliki dziennika codziennie lub co tydzień.
  2. Odpowiednio rotuj dzienniki

    • Dzienniki debugowania DNS mogą szybko rosnąć; skonfiguruj rotację przy rozsądnym rozmiarze (na przykład 100MB).
  3. Waliduj wynik

    • Zweryfikuj kilka pierwszych przekonwertowanych plików przed pełną automatyzacją.
  4. Zaplanuj wymagania dotyczące przechowywania

    • Nawet z kompresją, zaplanuj miejsce na dysku bazując na wolumenie DNS i okresie przechowywania.
  5. Zabezpiecz dane wrażliwe

    • Dzienniki DNS mogą zawierać wrażliwe dane; chroń wyniki odpowiednimi kontrolami dostępu.
  6. Dokumentuj swój proces

    • Dokumentuj harmonogramy przetwarzania, lokalizacje przechowywania i sposób wykorzystania analiz.
  7. Testuj na plikach przykładowych

    • Zweryfikuj parametry i format wyjścia przed przetwarzaniem krytycznych dzienników.
  8. Monitoruj błędy

    • Obserwuj uszkodzone dzienniki, problemy z dostępem lub niewystarczającą ilość miejsca na dysku.

3 - Rozwiązywanie problemów

Najczęstsze problemy i rozwiązania

„Plik nie jest prawidłowym plikiem dziennika debugowania DNS”

  • Upewnij się, że konwertujesz rzeczywisty dziennik debugowania serwera DNS.
  • Plik powinien zaczynać się od Message logging started at lub zawierać wpisy zapytań DNS.
  • Jeśli jesteś pewien, że plik jest prawidłowy, ale nagłówek się różni, użyj -SkipHeaderValidation.

Plik wyjściowy jest pusty lub niekompletny

  • Potwierdź, że plik wejściowy zawiera prawidłowe wpisy dziennika.
  • Niektóre dzienniki mogą zawierać tylko informacje nagłówkowe, jeśli nie wystąpiły zapytania.
  • Sprawdź, czy plik dziennika nie jest uszkodzony i zawiera rzeczywiste dane zapytań.

Przetwarzanie jest bardzo wolne

  • Upewnij się, że masz wystarczającą ilość pamięci i dysk nie jest mocno obciążony.
  • Rozważ przetwarzanie mniejszych plików dziennika.
  • Rozważ użycie -CompressOutput z zaplanowanym przetwarzaniem, aby obsługiwać mniejsze partie.

Błędy „Access denied”

  • Uruchom PowerShell z odpowiednimi uprawnieniami do odczytu źródłowych plików dziennika i zapisu do katalogu docelowego.
  • Pliki dziennika DNS mogą wymagać uprawnień administratora.

Skompresowany plik wyjściowy jest większy niż oczekiwano

  • Dzienniki z wieloma unikalnymi wartościami kompresują się mniej efektywnie; może to być normalne.
  • Kompresja ZIP zazwyczaj nadal zapewnia znaczne zmniejszenie rozmiaru.

Plik statystyk nie odpowiada oczekiwaniom

  • Sprawdź, czy używasz -OutputType Both lub -OutputType Statistic.
  • Statystyki to zagregowane liczby (grupowanie dzienne), więc wartości reprezentują sumy.

Zgłaszanie problemów

Jeśli napotkasz problemy nieopisane tutaj:

  1. Sprawdź, czy używasz najnowszej wersji modułu.
  2. Przejrzyj Issues na GitHub pod kątem podobnych problemów.
  3. Zbierz informacje diagnostyczne:
    • wersja PowerShell ($PSVersionTable)
    • wersja modułu (Get-Module DNSServer.DebugLogParser)
    • przykładowy plik dziennika (jeśli to możliwe)
    • pełny komunikat o błędzie i ślad stosu
  4. Otwórz nowe zgłoszenie na GitHub z tymi szczegółami.

4 - Referencja poleceń modułu

Tutaj znajdziesz referencję wszystkich poleceń w module. Ta referencja ma pomóc Ci szybko znaleźć potrzebne polecenie i zrozumieć, jak skutecznie z niego korzystać.

Klikając na polecenie, zostaniesz przeniesiony do szczegółowej strony zawierającej kompleksowe informacje o poleceniu, w tym jego składnię, parametry, przykłady oraz dodatkowe uwagi lub wskazówki dotyczące użytkowania.

4.1 - Convert-DNSDebugLogFile

SYNOPSIS

Przekształca dzienniki debugowania serwera DNS Windows do ustrukturyzowanego formatu CSV do analizy i raportowania.

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

Ten cmdlet ma następujące aliasy,

DESCRIPTION

Konwertuje pliki dzienników debugowania serwera DNS Windows na ustrukturyzowane dane CSV, które można analizować w Excelu, Power BI, bazach danych SQL lub narzędziach SIEM.
Przeznaczony do analizy bezpieczeństwa, monitorowania wydajności, rozwiązywania problemów i raportowania zgodności.

Cmdlet analizuje wszystkie 17 pól z dzienników debugowania DNS, w tym datę/czas, protokół, adres IP klienta, typ zapytania, nazwy domen, kody odpowiedzi, flagi, informacje o zdarzeniach oraz nazwę komputera.
Generuje ustrukturyzowany wynik CSV z opcjonalnym podsumowaniem statystycznym agregującym aktywność według klienta, protokołu i typu zapytania.

KLUCZOWE CECHY:

  • Wydajne przetwarzanie zoptymalizowane pod kątem dużych plików (100MB+)
  • Konfigurowalny separator CSV (domyślnie średnik)
  • Opcjonalne podsumowania statystyczne z agregowanymi metrykami
  • Filtrowanie kontekstu (PACKET, EVENT, Note) do skupienia się na określonych typach wpisów
  • Obsługa kultury przy parsowaniu i formatowaniu dat dla serwerów międzynarodowych
  • Obsługa potoków do przetwarzania wsadowego wielu plików
  • Opcjonalna kompresja plików wyjściowych (format ZIP)
  • Opcjonalne automatyczne usuwanie plików źródłowych po przetworzeniu
  • Walidacja nagłówka zapewniająca integralność danych

FORMAT WYJŚCIA:
Kolumna ComputerName jest zawsze dołączona na końcu każdego rekordu.
Jeśli parametr -ComputerName nie jest podany, kolumna pozostanie pusta.
Zapewnia to spójną strukturę wyjścia w scenariuszach konsolidacji wielu serwerów.

WYDAJNOŚĆ:
Zoptymalizowane przy użyciu StreamReader/StreamWriter z buforami 64KB, operacji na łańcuchach zamiast regex, ręcznej generacji CSV oraz efektywnego zbierania statystyk za pomocą hashtable.

KOMPATYBILNOŚĆ:

  • PowerShell 5.1+ (edycje Desktop i Core)
  • Windows Server 2016+
  • Format dzienników serwera DNS od 2012 R2 do 2025

EXAMPLES

PRZYKŁAD 1

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

Konwertuje dziennik debugowania DNS z domyślnymi ustawieniami (zarówno plik danych, jak i statystyk z separatorem średnik).
Wynik: C:\Logs\dns.csv oraz C:\Logs\dns_statistic.csv

PRZYKŁAD 2

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

Generuje tylko plik danych bez statystyk.
Wynik: C:\Logs\dns.csv

PRZYKŁAD 3

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

Generuje tylko plik statystyk z agregowanymi metrykami.
Wynik: C:\Logs\dns_statistic.csv

PRZYKŁAD 4

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

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

PRZYKŁAD 5

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

Konwertuje z separatorem przecinka i dodaje kolumnę ComputerName z wartością “DNS01”.
Wynik: C:\Logs\dns.csv oraz C:\Logs\dns_statistic.csv z kolumną ComputerName

PRZYKŁAD 6

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

Przetwarza wsadowo wiele plików dzienników debugowania DNS przez potok.
Wynik: dla każdego pliku .log generuje pliki .csv i _statistic.csv

PRZYKŁAD 7

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

Konwertuje i kompresuje wynik do archiwum ZIP.
Wynik: C:\Logs\dns.zip (zawierający dns.csv i dns_statistic.csv)

PRZYKŁAD 8

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

Konwertuje dziennik i usuwa plik źródłowy po pomyślnym przetworzeniu.
Szczegółowy output potwierdza usunięcie pliku.

PRZYKŁAD 9

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

Parsuje niemiecki format daty (DD.MM.YYYY) i wyprowadza w formacie amerykańskim (MM/DD/YYYY).
Używaj przy przetwarzaniu dzienników z serwerów o różnych ustawieniach regionalnych.

PRZYKŁAD 10

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

Konwertuje tylko wpisy pakietów zapytań/odpowiedzi DNS, wykluczając wpisy EVENT i Note.
Używaj, aby skupić analizę na rzeczywistym ruchu DNS.

PRZYKŁAD 11

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

Automatyczne archiwizowanie dzienników: przetwarza wszystkie dzienniki, kompresuje wynik i usuwa pliki źródłowe.
Idealne do zaplanowanych potoków przetwarzania dzienników.

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 niekompresowane pliki CSV.
Plik ZIP jest tworzony w tym samym katalogu co plik CSV o tej samej nazwie bazowej.

Korzyści:

  • Znaczne zmniejszenie zajętości dysku (pliki CSV zwykle kompresują się o 90%+)
  • Ułatwia zarządzanie plikami i archiwizację
  • Nadaje się do długoterminowego przechowywania

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

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

Określa wartość dla kolumny ComputerName w wyjściowym pliku CSV.
Kolumna ComputerName jest zawsze obecna w wyjściu – jeśli parametr nie jest podany, kolumna pozostanie pusta.

Używaj tego podczas konsolidacji dzienników z wielu serwerów DNS, aby zidentyfikować serwer źródłowy w zbiorczych danych.

Uwaga: To NIE jest parametr zdalnego wywołania.
Cmdlet 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 uruchomieniem cmdletu.

Po podaniu, pyta o potwierdzenie przed:

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

Przydatne podczas 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: ''

-ContextFilter

Filtruje, które typy wpisów dziennika mają być uwzględnione w wyjściu.

Dzienniki debugowania DNS zawierają różne typy kontekstu:

  • PACKET: informacje o pakietach zapytań i odpowiedzi DNS (dane podstawowe)
  • EVENT: zdarzenia serwera DNS (np. “Serwer DNS został uruchomiony.”)
  • Note: notatki diagnostyczne i ostrzeżenia (np. błędy gniazdek, stany wewnętrzne)

Dopuszczalne wartości:

  • ‘All’: uwzględnij wszystkie typy kontekstu (domyślnie)
  • ‘Packet’: uwzględnij tylko wpisy PACKET (zapytania/odpowiedzi DNS)
  • ‘Event’: uwzględnij tylko wpisy EVENT (zdarzenia serwera)
  • ‘Note’: uwzględnij tylko wpisy Note (informacje diagnostyczne)

Domyślnie: All

Uwaga: Przy filtrowaniu na ‘Event’ lub ‘Note’ tylko kolumny DateTime, ThreadId, Context i Information będą zawierać dane.
Pozostałe kolumny (Protocol, ClientIP itp.) pozostaną puste.

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

Określa znak separatora dla wyjścia CSV.

Domyślnie: średnik (;)

Popularne alternatywy: przecinek (,), tabulator (`t), pionowa kreska (|)

Używaj średnika w regionach, gdzie przecinek jest separatorem dziesiętnym (Europa).
Używaj przecinka dla standardowych narzędzi CSV i baz danych oczekujących wartości oddzielonych przecinkiem.

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ę/ustawienia regionalne do parsowania wartości daty/czasu w dzienniku debugowania DNS.

Dzienniki debugowania serwera DNS używają formatu daty ustawionego w lokalizacji Windows na serwerze, gdzie dziennik został wygenerowany.
Użyj tego parametru podczas przetwarzania dzienników z serwerów o różnych ustawieniach regionalnych.

Domyślnie: bieżąca kultura

Popularne przykłady:

  • ‘de-DE’ lub ‘de-AT’: format niemiecki (DD.MM.YYYY lub DD/MM/YYYY)
  • ’en-US’: format amerykański (MM/DD/YYYY z AM/PM)
  • ’en-GB’: format brytyjski (DD/MM/YYYY z czasem 24-godzinnym)
  • ‘sv-SE’: format szwedzki/ISO (YYYY-MM-DD)
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

Określa ścieżkę do pliku dziennika debugowania DNS do parsowania.
Obsługuje tablice do przetwarzania wielu plików.

Akceptuje dane z potoku od Get-ChildItem lub innych cmdletów zwracających pliki.

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ę/ustawienia regionalne do formatowania wartości daty/czasu w plikach CSV wyjściowych.

Kontroluje sposób zapisu wartości DateTime w CSV.
Użyj tego, gdy pliki CSV będą używane przez aplikacje lub systemy z określonymi ustawieniami regionalnymi.

Domyślnie: bieżąca kultura

Popularne przykłady:

  • ’en-US’: format amerykański (MM/DD/YYYY)
  • ‘de-DE’: format niemiecki (DD.MM.YYYY)
  • ‘sv-SE’ lub InvariantCulture: format ISO (YYYY-MM-DD) dla maksymalnej kompatybilności
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

Określa ścieżkę do pliku wyjściowego CSV.
Jeśli nie zostanie podana, używa nazwy pliku wejściowego z rozszerzeniem .csv w tym samym katalogu co plik wejściowy.

Ważne: musi to być ścieżka do pliku, a nie katalogu.
Jeśli chcesz użyć katalogu pliku wejściowego z niestandardową nazwą, podaj pełną ścieżkę wraz z nazwą pliku.

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 danych ze wszystkimi parsowanymi wpisami dziennika (domyślnie)
  • ‘Statistic’: generuje tylko plik statystyk z agregowanymi metrykami
  • ‘Both’: generuje oba pliki: dane i statystyki

Domyślnie: Both

Statystyki dostarczają zagregowane liczby według adresu IP klienta, protokołu, kierunku i typu zapytania oraz zakres dat dla każdej unikalnej kombinacji.

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żywaj tego w automatycznych potokach przetwarzania dzienników lub do zarządzania miejscem na dysku.
Plik źródłowy jest usuwany tylko, jeśli przetwarzanie zakończy się sukcesem i wszystkie pliki wyjściowe zostaną utworzone.

Bezpieczeństwo: nie można używać z -SkipHeaderValidation, aby zapobiec przypadkowemu usunięciu nieprawidłowych plików.

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 dziennika debugowania DNS.

Domyślnie cmdlet weryfikuje, czy pliki wejściowe mają poprawny nagłówek dziennika debugowania serwera DNS.
Użyj tego przełącznika, aby przetwarzać pliki bez walidacji, co może być przydatne dla:

  • zmodyfikowanych lub niestandardowych formatów dzienników
  • rozwiązywania problemów z walidacją
  • niestandardowych lub wstępnie przetworzonych dzienników

Ostrzeżenie: 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.

Po podaniu wyświetla szczegółowe informacje o operacjach, które zostałyby wykonane, bez ich faktycznego uruchamiania.
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 wspólne parametry: -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.3.0.1
Autor : Andi Bellstedt, Copilot
Data : 2026-01-23
Słowa kluczowe : Microsoft Windows Server, DNSServer, DNS, DebugLog, LogParser