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
- Release notes v1.2.2.0 (2026-07-24)
- Release notes v1.2.1.0 (2026-01-26)
- Notatki o wydaniu v1.2.0.0 (2026-01-25)
- Notatki o wydaniu v1.1.0 (2026-01-23)
- v1.0.0 (2026-01-23)
Release notes v1.2.2.0 (2026-07-24)
Dodano
- NOWOŚĆ: Obsługa odczytu plików dziennika debugowania serwera DNS, które są aktualnie otwarte przez usługę DNS
- Umożliwia przetwarzanie aktywnych plików dziennika bez konieczności ich wcześniejszego zamknięcia
- Poprawia kompatybilność z dziennikami, które są nadal zapisywane lub utrzymywane otwarte przez inny proces
- Uważaj podczas przetwarzania dzienników na żywo, ponieważ rekordy mogą być niekompletne lub w trakcie zmiany
- NOWOŚĆ: Obsługa ścieżek SMB/UNC podczas odczytu źródłowych plików dziennika
- Pozwala parserowi pracować z plikami przechowywanymi na udziałach sieciowych i lokalizacjach zdalnych
- Poprawia niezawodność w środowiskach z centralnym lub współdzielonym magazynem danych
Zmiany
- Metadane modułu: Zaktualizowano ProjectUri i ReleaseNotes, aby wskazywały na oficjalną stronę https://dnsserverdebuglogparser.andibellstedt.com dla lepszej widoczności i dostępu do dokumentacji
- Naprawiono dostęp do plików: Zaktualizowano logikę otwierania plików, aby używać dostępu opartego na strumieniach z wyraźnymi opcjami dla scenariuszy współdzielonego odczytu
- Poprawia obsługę dzienników na żywo oraz alternatywnych typów ścieżek, takich jak udziały UNC
- Utrzymuje spójne zachowanie dla lokalnych i zdalnych źródeł plików
Release notes v1.2.1.0 (2026-01-26)
Zmiany
- Wydajność: Ulepszono przetwarzanie rekordów wieloliniowych, aby uniknąć ładowania dużych plików do pamięci
- Zapobiega błędom braku pamięci przy bardzo dużych plikach dziennika
- Zachowano pełne wsparcie dla bloków szczegółów PACKET oraz wciętych linii kontynuacji
- Zużycie pamięci jest teraz stałe, niezależnie od rozmiaru pliku
- Postęp: Dodano
Write-Progressdla informacji zwrotnej o przetwarzaniu- Pasek postępu aktualizowany co 1000 rekordów, aby minimalnie wpływać na wydajność
- Wyświetla aktualną liczbę rekordów oraz przetwarzany plik
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