Formati di Output

Le colonne del file dati CSV, i due file opzionali di statistiche e esempi reali di output che puoi aprire prima di eseguire qualsiasi operazione.

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

Convert-DNSDebugLogFile produce fino a tre file per ogni log di input:

FileContenutoCreato quando
<name>.csvUna riga per ogni voce di log analizzata-OutputType CSV o Both
<name>_Statistic.csvConteggio giornaliero dei record per contesto-OutputType Statistic o Both
<name>_PacketStatistic.csvConteggio giornaliero delle query per client, protocollo, direzione e tipo di record-OutputType Statistic o Both

Both è il valore predefinito. L’output viene salvato accanto al file di input a meno che non imposti -OutputFile.

I file di esempio collegati in questa pagina sono risultati di conversioni reali, non simulazioni. Scaricane uno e aprilo in Excel prima di decidere come progettare la pipeline.

Il file dati CSV

Esempio di output:

LocaleColonna DettagliFile
en-USnon popolataWithComputerName, NoComputerName
de-DEnon popolataWithComputerName, NoComputerName
de-DEpopolataWithComputerName, NoComputerName

Due righe da una conversione reale — una query DNS e una nota interna al server:

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

Colonne

Sempre 18 colonne, sempre in questo ordine:

#ColonnaSignificatoUso tipico
1DateTimeTimestamp della voceFiltraggio temporale, unione con altri log
2ThreadIdThread di lavoro del server DNSRaramente necessario; utile per correlare problemi interni al server
3ContextTipo di voce: Packet, Event, Note, DSPoll, Init, Lookup, Recurse, Remote, TombstonePrimo filtro da applicare — Packet è il traffico DNS vero e proprio
4PacketIdIdentificatore interno del pacchettoAbbinare una query alla sua risposta
5ProtocolUDP o TCPPicchi TCP possono indicare risposte grandi o trasferimenti di zona
6DirectionRcv (query ricevuta) o Snd (server ha risposto)Separare volume richieste da volume risposte
7ClientIPIndirizzo dell’host che ha fatto la queryAnalisi dei top talker, definizione dell’incidente
8XidID transazione DNS (esadecimale)Abbinare richiesta e risposta
9TypeQuery o Response
10OpcodeStandard, Notify, Update, UnknownSeparare aggiornamenti dinamici e notifiche di zona dalle normali ricerche
11FlagsHexFlag header grezzi (esadecimale)Per analisi approfondite del protocollo
12FlagsCharFlag decodificati: Authoritative, Truncated, RecursionDesired, RecursionAvailableVersione leggibile dei flag sopra
13ResponseCodeNOERROR, NXDOMAIN, SERVFAIL, …Report errori, ricerca di fallimenti di risoluzione
14QuestionTypeTipo di record: A, AAAA, MX, PTR, TXT, …Il volume di TXT è un classico indicatore di tunneling
15QuestionNameNome interrogato come FQDN normaleMatching threat-intel, report top-domain
16InformationTesto libero per voci Event / Note; per Packet la riga header dettagli TCP/UDPLettura messaggi server
17DetailsRappresentazione JSON di un blocco dettaglio Packet; vuoto altrimentiIspezione completa del pacchetto senza tornare al log grezzo
18ComputerNameServer sorgente, da -ComputerNamePermette di attribuire dataset multi-server

Due cose da tenere a mente:

  • Non tutte le colonne sono compilate per ogni riga. Solo le voci Packet hanno IP client, nome della query e codice di risposta. Le righe Note e Event contengono il testo in Information e lasciano vuote le colonne del protocollo. Progetta di conseguenza lo schema del database e i filtri della dashboard.
  • ComputerName è sempre l’ultima colonna, anche se non usi -ComputerName. In quel caso è semplicemente vuota. Questo mantiene l’impaginazione identica su tutti i server così puoi concatenare file da molti server DNS senza dover rimappare colonne.

La colonna Dettagli

I blocchi dettaglio appaiono solo se il server DNS è configurato per registrare i dettagli completi dei pacchetti. Quando esistono, il parser li converte in un singolo valore JSON così la riga resta una sola:

{
  "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": []
  }
}

Analizzare questi blocchi richiede tempo e rende il CSV molto più grande. Se non ti servono, usa -NoDetailsParsing — la colonna resta presente ma vuota, e la conversione è più veloce. Vedi Performance.

I file di statistiche

Le statistiche sono aggregati giornalieri. Usale quando vuoi una tendenza o un riepilogo e non vuoi spostare l’intero set di record — sono di gran lunga più piccoli del file dati.

Statistiche per contesto (*_Statistic.csv)

Risponde a: quanta attività di che tipo è avvenuta ogni giorno?

Date;Context;Count;ComputerName
2026-01-20;Event;2;dc01
2026-01-20;Note;2;dc01
2026-01-20;Packet;12;dc01
ColonnaSignificato
DateGiorno, sempre yyyy-MM-dd
ContextNome del contesto (Packet, Event, Note, …)
CountNumero di record di quel contesto in quel giorno
ComputerNameServer sorgente

File di esempio: en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName

Statistiche pacchetti (*_PacketStatistic.csv)

Risponde a: chi ha interrogato cosa, quanto spesso, ogni giorno?

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
ColonnaSignificato
DateGiorno, sempre yyyy-MM-dd
ClientIPHost che ha fatto la query
ProtocolUDP o TCP
DirectionRcv o Snd
QuestionTypeTipo di record DNS
CountNumero di pacchetti corrispondenti in quel giorno
ComputerNameServer sorgente

File di esempio: en-US WithComputerName, en-US NoComputerName, de-DE WithComputerName, de-DE NoComputerName

Delimitatore e formato data

Entrambi i tipi di output rispettano -Delimiter (default ;) e -OutputCulture. Per tutto ciò che sarà importato da una macchina, scrivi timestamp in formato ISO-like:

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

Questo produce 2026-01-20 23:00:16, che SQL Server, Power BI e pandas leggono senza bisogno di indicazioni sul formato. Dettagli in Parametri e Opzioni.