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

Wróć do zwykłego widoku tej strony.

Historia wydań modułu

Wersjonowane notatki wydań modułu PowerShell DNSServer.DebugLogParser

Ta sekcja zawiera wersjonowane notatki wydań dla różnych wydań modułu PowerShell DNSServer.DebugLogParser.

Notatki o wydaniu v1.2.0.0 (2026-01-25)

Dodano

  • NOWOŚĆ: Obsługa wieloliniowych rekordów dla bloków szczegółów DNS PACKET
    • Wpisy w kontekście PACKET mogą teraz zawierać szczegółowe informacje o połączeniu TCP/UDP oraz strukturze komunikatu DNS
    • Bloki szczegółów są analizowane do ustrukturyzowanego formatu JSON w nowej kolumnie Details
    • Zawiera: informacje o gnieździe, adres/port zdalny, dane czasowe, strukturę komunikatu (XID, Flags, QCOUNT itd.)
    • Sekcje DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) są przechwytywane z pełnymi szczegółami rekordów
    • Zakodowane nazwy domen w blokach szczegółów są automatycznie konwertowane do formatu FQDN
  • NOWOŚĆ: Kolumna Details w wyjściu CSV
    • Zawiera ustrukturyzowane dane JSON dla wpisów PACKET z blokami szczegółów
    • Pusta dla wpisów PACKET bez szczegółów oraz dla wszystkich kontekstów innych niż PACKET
    • Umożliwia głęboką analizę pakietów i dochodzenia kryminalistyczne zapytań/odpowiedzi DNS
  • NOWOŚĆ: Przełącznik NoDetailsParsing dla optymalizacji wydajności
    • Pomija kosztowne parsowanie JSON bloków szczegółów PACKET
    • Może poprawić szybkość przetwarzania o 30-50% dla logów z wieloma blokami szczegółów
    • Używaj przy przetwarzaniu bardzo dużych plików (100MB+) gdy szczegółowa struktura pakietów nie jest potrzebna
    • Bloki szczegółów nadal są zbierane w kolumnie Information, ale kolumna Details pozostaje pusta
  • NOWOŚĆ: Obsługa wieloliniowego kontynuowania dla kontekstów innych niż PACKET
    • Konteksty EVENT, Note, DSPoll i inne mogą teraz rozciągać się na wiele linii
    • Wcięte linie kontynuacji są automatycznie łączone z polem Information głównego rekordu
    • Zachowuje kompletne komunikaty o błędach, aktualizacje stref i dane diagnostyczne
  • NOWOŚĆ: ContextFilter rozpoznaje dodatkowe typy kontekstów: DSPoll, Init, Lookup, Recurse, Remote, Tombstone
    • Efekt: Convert-DNSDebugLogFile może teraz uwzględniać/wykluczać te wpisy diagnostyczne i cyklu życia za pomocą -ContextFilter
  • NOWOŚĆ: Wyjście statystyk zawiera teraz dwa dedykowane pliki
    • _Statistic.csv: Dzienne liczniki rekordów według typu kontekstu (Date, Context, Count, ComputerName)
    • _PacketStatistic.csv: Dzienne liczniki PACKET według klienta/protokołu/kierunku/typu (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
    • Korzyść: Bardziej ukierunkowane raportowanie (wolumen kontekstów operacyjnych vs. rozkład ruchu DNS)
  • Generowanie JSON dla bloków szczegółów PACKET jest zoptymalizowane pod kątem wydajności (ręczne parsowanie zamiast regex)

Zmiany

  • PRZEŁOMOWA: Wyjście CSV zawiera teraz 18 kolumn (dodano kolumnę Details przed ComputerName)
    • Nowy porządek kolumn: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, Details, ComputerName
    • Wpływ: Skrypty opierające się na pozycjach kolumn muszą zostać zaktualizowane
    • Korzyść: Zaawansowane możliwości analizy pakietów bez zmiany dotychczasowego zachowania kolumny Information
  • Przetwarzanie linii danych zostało zrefaktoryzowane do wczytywania wszystkich linii do pamięci dla efektywnego wykrywania wieloliniowych rekordów
    • Wydajność: Minimalny wpływ dzięki zoptymalizowanemu użyciu List
    • Korzyść: Umożliwia dokładne przewidywanie bloków szczegółów i linii kontynuacji
  • Nazwy zapytań, które są brakujące lub zakodowane jako puste, są teraz obsługiwane łagodnie (bez błędów parsowania); wyjście CSV będzie zawierać pustą wartość QuestionName, gdy brak

Ulepszenia

  • Parsowanie Convert-DNSDebugLogFile jest bardziej odporne: surowsza walidacja linii i lepsze wyodrębnianie zmniejszają fałszywe/nieprawidłowe wiersze z uszkodzonych logów, zachowując format wyjścia CSV/statystyk
  • Wykrywanie kontekstu PACKET rozróżnia proste zapytania i zapytania z blokami szczegółów
  • Puste linie po wpisach PACKET bez szczegółów są prawidłowo pomijane
  • Dekodowanie nazw domen w blokach szczegółów korzysta z istniejącej funkcji ConvertTo-Fqdn dla spójności

Wydajność

  • Utrzymano szybkość przetwarzania dla logów bez bloków szczegółów
  • Przełącznik NoDetailsParsing zapewnia 30-50% poprawę szybkości, gdy parsowanie JSON nie jest potrzebne
  • Efektywne zarządzanie stanem podczas przetwarzania wieloliniowych rekordów
  • Zoptymalizowane operacje na łańcuchach (TrimStart, Join) zamiast regex do obsługi linii kontynuacji

Uwagi

  • Te zmiany są zaprojektowane tak, aby były kompatybilne wstecz dla normalnego użytkowania. Jeśli polegasz na dokładnym zestawie nazw kontekstów lub wcześniej ścisłym parsowaniu, prosimy o weryfikację skryptów downstream
  • Nowa kolumna Details jest zawsze obecna w wyjściu CSV; użyj NoDetailsParsing, aby pozostawić ją pustą dla wydajności
  • Istniejące skrypty parsujące CSV według pozycji kolumn muszą uwzględnić nową kolumnę Details (pozycja 17, przed ComputerName)

Notatki o wydaniu v1.1.0 (2026-01-23)

Dodano

  • NOWOŚĆ: Parametr ContextFilter do selektywnego parsowania logów
    • Filtrowanie wpisów logów według typu kontekstu: PACKET (zapytania/odpowiedzi DNS), EVENT (zdarzenia serwera) lub Note (informacje diagnostyczne)
    • Umożliwia skupienie analizy na określonych typach wpisów logów
    • Domyślnie: All (obejmuje wszystkie typy kontekstu)
    • Przykłady zastosowań: Skupienie się tylko na ruchu DNS, monitorowanie zdarzeń serwera, rozwiązywanie problemów diagnostycznych
  • NOWOŚĆ: Pole Information w wyjściu CSV
    • Zawiera szczegółowe informacje dla wpisów kontekstowych EVENT i Note
    • Przykłady: “The DNS server has started.”, “Zone loading completed”, błędy gniazd, komunikaty o stanie wewnętrznym
    • Zwiększa widoczność zdarzeń operacyjnych i diagnostyki serwera DNS
    • Pole jest wypełniane, gdy Context to EVENT lub Note; puste dla wpisów PACKET

Zmiany

  • BREAKING: Kolumna ComputerName jest teraz zawsze dołączana na końcu wszystkich rekordów wyjściowych
    • Wcześniej: ComputerName był warunkowo dołączany na początku, gdy parametr był określony
    • Teraz: ComputerName zawsze obecny jako ostatnia kolumna; pusty, gdy parametr nie jest określony
    • Korzyść: Spójna struktura wyjścia ułatwia konsolidację logów z wielu serwerów i automatyczne przetwarzanie
    • Wpływ: Istniejące skrypty analizujące pozycje kolumn lub oczekujące warunkowej obecności kolumny muszą zostać zaktualizowane

Dodano

  • Filtrowanie kontekstu, aby skupić się na określonych typach wpisów logów (PACKET, EVENT, NOTE) za pomocą parametru ContextFilter

Ulepszenia

  • Przebudowano komentarze pomocy dla Convert-DNSDebugLogFile dla lepszej jasności i zwięzłości
  • Zaktualizowano opisy parametrów, aby były bardziej informacyjne i praktyczne
  • Ulepszono dokumentację przykładów z bardziej skoncentrowanymi i praktycznymi przypadkami użycia
  • Rozbudowano plik pomocy about_DNSServer.DebugLogParser, aby odzwierciedlał aktualną funkcjonalność
  • Wzmocniono szczegółowość logowania verbose, aby dostarczać bardziej szczegółowe informacje o postępie podczas przetwarzania

v1.0.0 (2026-01-23)

Dodano

  • Wersja początkowa
  • Convert-DNSDebugLogFile - Wydajny parser plików dziennika debugowania serwera DNS Windows
  • Parsuje wszystkie 15 standardowych pól z dzienników debugowania DNS do ustrukturyzowanego formatu CSV
  • Obsługuje konfigurowalne delimitery CSV (domyślnie średnik)
  • Opcjonalna kolumna ComputerName do konsolidacji dzienników z wielu serwerów
  • Trzy tryby wyjścia: tylko dane CSV, tylko statystyki lub oba jednocześnie
  • Podsumowania statystyczne agregujące aktywność według IP klienta, protokołu i typu zapytania
  • Obsługa potoków do przetwarzania wsadowego wielu plików dziennika
  • Walidacja nagłówka dla zapewnienia integralności danych (można pominąć w razie potrzeby)
  • Opcjonalna automatyczna kompresja plików wyjściowych (format ZIP)
  • Opcjonalne usuwanie plików źródłowych po pomyślnym przetworzeniu
  • Kulturowo świadome parsowanie i formatowanie dat dla międzynarodowych serwerów DNS
  • Optymalizacja pod kątem dużych plików (powyżej 100 MB) z użyciem strumieniowego I/O i efektywnych operacji na łańcuchach znaków
  • Kompatybilny z PowerShell 5.1+ (edycje Desktop i Core)
  • Obsługuje formaty dzienników Windows Server 2016+ oraz DNS Server 2012 R2 do 2025 roku