Ta sekcja zawiera wersjonowane notatki wydań dla różnych wydań modułu PowerShell DNSServer.DebugLogParser.
To wielostronicowy widok tej sekcji do wydrukowania. Kliknij aby wydrukować.
Historia wydań modułu
Wersjonowane notatki 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
Detailsw 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
NoDetailsParsingdla 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ŚĆ:
ContextFilterrozpoznaje dodatkowe typy kontekstów:DSPoll,Init,Lookup,Recurse,Remote,Tombstone- Efekt:
Convert-DNSDebugLogFilemoże teraz uwzględniać/wykluczać te wpisy diagnostyczne i cyklu życia za pomocą-ContextFilter
- Efekt:
- 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ę
DetailsprzedComputerName)- 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
- Wydajność: Minimalny wpływ dzięki zoptymalizowanemu użyciu List
- 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-DNSDebugLogFilejest 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-Fqdndla spójności
Wydajność
- Utrzymano szybkość przetwarzania dla logów bez bloków szczegółów
- Przełącznik
NoDetailsParsingzapewnia 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
Detailsjest zawsze obecna w wyjściu CSV; użyjNoDetailsParsing, 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