Formaty wyjściowe

Kolumny pliku danych CSV, dwa opcjonalne pliki statystyk oraz rzeczywiste przykładowe wyniki, które możesz otworzyć przed uruchomieniem czegokolwiek.

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /pl/docs/02-output-formats/index.md.

Convert-DNSDebugLogFile generuje do trzech plików na każdy plik dziennika wejściowego:

PlikZawieraTworzony gdy
<name>.csvJeden wiersz na wpis w dzienniku-OutputType CSV lub Both
<name>_Statistic.csvDzienne zliczenie rekordów według kontekstu-OutputType Statistic lub Both
<name>_PacketStatistic.csvDzienne zliczenie zapytań według klienta, protokołu, kierunku i typu rekordu-OutputType Statistic lub Both

Both jest ustawieniem domyślnym. Wyniki trafiają obok pliku wejściowego, chyba że ustawisz -OutputFile.

Przykładowe pliki podlinkowane na tej stronie to rzeczywiste wyniki konwersji, a nie makiety. Pobierz jeden i otwórz go w Excelu, zanim zdecydujesz się na projekt potoku.

Plik danych CSV

Przykładowy wynik:

LokalizacjaKolumna SzczegółyPliki
en-USnieuzupełnionaWithComputerName, NoComputerName
de-DEnieuzupełnionaWithComputerName, NoComputerName
de-DEuzupełnionaWithComputerName, NoComputerName

Dwa wiersze z rzeczywistej konwersji — zapytanie DNS i notatka wewnętrzna serwera:

DateTime;ThreadId;Context;PacketId;Protocol;Direction;ClientIP;Xid;Type;Opcode;FlagsHex;FlagsChar;ResponseCode;QuestionType;QuestionName;Information;Details;ComputerName
2026-01-20 23:00:16;0FE0;Packet;000002C53117D990;UDP;Rcv;10.0.0.2;c049;Query;Standard;0001;RecursionDesired;NOERROR;A;"odc.officeapps.live.com";"";"";dc01
2026-01-20 23:00:16;DF0;Note;;;;;;;;;;;;"";"got GQCS failure on a dead socket context status=995, socket=904";"";dc01

Kolumny

Zawsze 18 kolumn, zawsze w tej kolejności:

#KolumnaZnaczenieTypowe zastosowanie
1DateTimeZnacznik czasu wpisuFiltrowanie po czasie, łączenie z innymi dziennikami
2ThreadIdWątek roboczy serwera DNSRzadko potrzebne; przydatne przy korelowaniu problemów wewnętrznych serwera
3ContextRodzaj wpisu: Packet, Event, Note, DSPoll, Init, Lookup, Recurse, Remote, TombstonePierwszy filtr, który zastosujesz — Packet to rzeczywisty ruch DNS
4PacketIdWewnętrzny identyfikator pakietuParowanie zapytania z odpowiedzią
5ProtocolUDP lub TCPSkoki TCP mogą wskazywać na duże odpowiedzi lub transfery stref
6DirectionRcv (zapytanie przyszło) lub Snd (serwer odpowiedział)Oddzielenie wolumenu zapytań od odpowiedzi
7ClientIPAdres hosta zapytującegoAnaliza najaktywniejszych, zakres incydentu
8XidID transakcji DNS (hex)Dopasowanie zapytania i odpowiedzi
9TypeQuery lub Response
10OpcodeStandard, Notify, Update, UnknownOddziela dynamiczne aktualizacje i powiadomienia stref od normalnych zapytań
11FlagsHexSurowe flagi nagłówka (hex)Do głębokiej analizy protokołu
12FlagsCharZdekodowane flagi: Authoritative, Truncated, RecursionDesired, RecursionAvailableCzytelna wersja powyższych
13ResponseCodeNOERROR, NXDOMAIN, SERVFAIL, …Raportowanie błędów, poszukiwanie niepowodzeń rozwiązywania
14QuestionTypeTyp rekordu: A, AAAA, MX, PTR, TXT, …Wolumen TXT to klasyczny wskaźnik tunelowania
15QuestionNameZapytana nazwa jako normalny FQDNDopasowanie wywiadu zagrożeń, raporty top-domen
16InformationWolny tekst dla wpisów Event / Note; dla bloków szczegółów Packet linia nagłówka TCP/UDPOdczyt komunikatów serwera
17DetailsReprezentacja JSON bloku szczegółów Packet; pusta w innych przypadkachPełna inspekcja pakietu bez powrotu do surowego dziennika
18ComputerNameSerwer źródłowy, z -ComputerNameUtrzymanie przypisania zbiorów danych z wielu serwerów

Dwie rzeczy do zaplanowania:

  • Nie każda kolumna jest wypełniona w każdym wierszu. Tylko wpisy Packet mają IP klienta, nazwę zapytania i kod odpowiedzi. Wiersze Note i Event zawierają swój tekst w Information i pozostawiają kolumny protokołu puste. Zaprojektuj schemat bazy danych i filtry w panelu odpowiednio.
  • ComputerName jest zawsze ostatnią kolumną, nawet jeśli nie używasz -ComputerName. Wtedy jest po prostu pusta. To utrzymuje identyczny układ we wszystkich serwerach, więc możesz łączyć pliki z wielu serwerów DNS bez kroku mapowania kolumn.

Kolumna Szczegóły

Bloki szczegółów pojawiają się tylko, jeśli serwer DNS jest skonfigurowany do logowania pełnych szczegółów pakietów. Gdy istnieją, parser konwertuje je do pojedynczej wartości JSON, aby wiersz pozostał jednoliniowy:

{
  "Socket": "848",
  "Remote": "addr 10.10.0.11, port 60580",
  "Buflength": "0x10000 (65536)",
  "Message": {
    "XID": "0x0001",
    "OPCODE": "0 (QUERY)",
    "RCODE": "0 (NOERROR)",
    "QUESTION": [ { "Name": "berlin.de", "QTYPE": "A (1)", "QCLASS": "1" } ],
    "ANSWER": []
  }
}

Parsowanie tych bloków kosztuje czas i znacznie powiększa plik CSV. Jeśli ich nie potrzebujesz, użyj -NoDetailsParsing — kolumna pozostaje obecna, ale pusta, a konwersja jest szybsza. Zobacz Wydajność.

Pliki statystyk

Statystyki to dzienne agregaty. Używaj ich, gdy chcesz trend lub podsumowanie i nie chcesz przenosić pełnego zestawu rekordów — są o rzędy wielkości mniejsze niż plik danych.

Statystyki kontekstu (*_Statistic.csv)

Odpowiadają na pytanie: ile jakiego rodzaju aktywności zdarzyło się danego dnia?

Date;Context;Count;ComputerName
2026-01-20;Event;2;dc01
2026-01-20;Note;2;dc01
2026-01-20;Packet;12;dc01
KolumnaZnaczenie
DateDzień, zawsze yyyy-MM-dd
ContextNazwa kontekstu (Packet, Event, Note, …)
CountLiczba rekordów tego kontekstu w danym dniu
ComputerNameSerwer źródłowy

Przykładowe pliki: en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName

Statystyki pakietów (*_PacketStatistic.csv)

Odpowiadają na pytanie: kto zapytał o co, jak często, danego dnia?

Date;ClientIP;Protocol;Direction;QuestionType;Count;ComputerName
2026-01-20;10.0.0.1;UDP;Rcv;A;3;dc01
2026-01-20;10.0.0.1;UDP;Snd;A;3;dc01
2026-01-20;10.0.0.2;UDP;Rcv;A;3;dc01
KolumnaZnaczenie
DateDzień, zawsze yyyy-MM-dd
ClientIPHost zapytujący
ProtocolUDP lub TCP
DirectionRcv lub Snd
QuestionTypeTyp rekordu DNS
CountLiczba pasujących pakietów tego dnia
ComputerNameSerwer źródłowy

Przykładowe pliki: en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName

Separator i format daty

Oba typy wyjścia respektują -Delimiter (domyślnie ;) i -OutputCulture. Dla wszystkiego, co będzie importowane przez maszynę, używaj znaczników czasu w stylu ISO:

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'

To daje 2026-01-20 23:00:16, które SQL Server, Power BI i pandas odczytują bez wskazówki formatu. Szczegóły w Parametry i opcje.