# Tulostusmuodot

> CSV-tiedoston sarakkeet, kaksi valinnaista tilastotiedostoa ja oikeat esimerkkitulosteet, jotka voit avata ennen kuin ajat mitään.

---

LLMS index: [llms.txt](/llms.txt)

---

`Convert-DNSDebugLogFile` tuottaa enintään kolme tiedostoa syöttölokia kohden:

| Tiedosto | Sisältää | Luodaan kun |
|---|---|---|
| `<name>.csv` | Yksi rivi jäsentynyttä lokimerkintää kohden | `-OutputType CSV` tai `Both` |
| `<name>_Statistic.csv` | Päivittäinen merkintämäärä kontekstin mukaan | `-OutputType Statistic` tai `Both` |
| `<name>_PacketStatistic.csv` | Päivittäinen kyselymäärä asiakkaan, protokollan, suunnan ja merkintätyypin mukaan | `-OutputType Statistic` tai `Both` |

`Both` on oletus. Tuloste sijoittuu syötetiedoston viereen, ellei `-OutputFile` ole asetettu.

Tällä sivulla linkitetyt esimerkkitiedostot ovat oikeita muunnostuloksia, eivät mallinnuksia. Lataa yksi ja avaa se Excelissä ennen kuin sitoudut putkisuunnitteluun.

## CSV-tiedosto

Esimerkkituloste:

| Alue | Details-sarake | Tiedostot |
|---|---|---|
| en-US | ei täytetty | [WithComputerName](../outputformat/en-us.-.dnsdebug-dc01.-.WithComputerName.csv), [NoComputerName](../outputformat/en-us.-.dnsdebug-dc01.-.NoComputerName.csv) |
| de-DE | ei täytetty | [WithComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.WithComputerName.-.NoDetails.csv), [NoComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.NoComputerName.-.NoDetails.csv) |
| de-DE | täytetty | [WithComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.WithComputerName.-.WithDetails.csv), [NoComputerName](../outputformat/de-de.-.dnsdebug-dc01.-.NoComputerName.-.WithDetails.csv) |

Kaksi riviä oikeasta muunnoksesta — DNS-kysely ja palvelimen sisäinen huomautus:

```text
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
```

### Sarakkeet

Aina 18 saraketta, aina tässä järjestyksessä:

| # | Sarake | Merkitys | Tyypillinen käyttö |
|---|---|---|---|
| 1 | `DateTime` | Merkinnän aikaleima | Aikasuodatus, yhdistäminen muihin lokitiedostoihin |
| 2 | `ThreadId` | DNS-palvelimen työsäie | Harvoin tarpeen; hyödyllinen palvelimen sisäisten ongelmien yhdistämisessä |
| 3 | `Context` | Merkinnän tyyppi: `Packet`, `Event`, `Note`, `DSPoll`, `Init`, `Lookup`, `Recurse`, `Remote`, `Tombstone` | Ensimmäinen suodatin — `Packet` on varsinainen DNS-liikenne |
| 4 | `PacketId` | Sisäinen pakettitunniste | Kyselyn ja vastauksen parittaminen |
| 5 | `Protocol` | `UDP` tai `TCP` | TCP-piikit voivat viitata suuriin vastauksiin tai vyöhyke-siirtoihin |
| 6 | `Direction` | `Rcv` (kysely saapui) tai `Snd` (palvelin vastasi) | Erottele pyyntö- ja vastausmäärät |
| 7 | `ClientIP` | Kyselyn tehneen isännän osoite | Suosituimpien käyttäjien analyysi, tapahtuman laajuuden arviointi |
| 8 | `Xid` | DNS-tapahtumatunnus (heksadesimaali) | Pyynnön ja vastauksen yhdistäminen |
| 9 | `Type` | `Query` tai `Response` | |
| 10 | `Opcode` | `Standard`, `Notify`, `Update`, `Unknown` | Erottele dynaamiset päivitykset ja vyöhykeilmoitukset tavallisista hauista |
| 11 | `FlagsHex` | Raakatason otsikkoliput (heksadesimaali) | Syvälliseen protokollan analyysiin |
| 12 | `FlagsChar` | Puretut liput: `Authoritative`, `Truncated`, `RecursionDesired`, `RecursionAvailable` | Luettava versio ylläolevasta |
| 13 | `ResponseCode` | `NOERROR`, `NXDOMAIN`, `SERVFAIL`, … | Virheraportointi, ratkaisun epäonnistumisen etsintä |
| 14 | `QuestionType` | Merkintätyyppi: `A`, `AAAA`, `MX`, `PTR`, `TXT`, … | `TXT`-määrä on klassinen tunneloitumisen indikaattori |
| 15 | `QuestionName` | Kysytty nimi normaalina FQDN:nä | Uhka-analyysi, suosituimmat domain-raportit |
| 16 | `Information` | Vapaa teksti `Event` / `Note` -merkinnöille; `Packet`-yksityiskohtien TCP/UDP-otsikkorivi | Palvelinviestien lukeminen |
| 17 | `Details` | `Packet`-yksityiskohtablokin JSON-esitys; muuten tyhjä | Täydellinen pakettitarkastus ilman paluuta raakalukuihin |
| 18 | `ComputerName` | Lähdepalvelin, `-ComputerName`-parametrin arvo | Monipalvelindatan yhdistämisen helpottamiseksi |

Kaksi asiaa, jotka kannattaa huomioida:

- **Kaikki sarakkeet eivät ole täytettyjä kaikilla riveillä.** Vain `Packet`-merkinnöillä on asiakas-IP, kyselynimi ja vastauskoodi. `Note` ja `Event` -rivit sisältävät tekstinsä `Information`-sarakkeessa ja jättävät protokollasarakkeet tyhjiksi. Suunnittele tietokantakaavio ja kojelaudan suodattimet tämän mukaan.
- **`ComputerName` on aina viimeinen sarake, vaikka et käyttäisi `-ComputerName`-parametria.** Se on silloin vain tyhjä. Tämä pitää tiedostojen rakenteen identtisen kaikilla palvelimilla, jolloin voit yhdistää monen DNS-palvelimen tiedostot ilman sarakemäärityksiä.

### Details-sarake

Yksityiskohtablokit näkyvät vain, jos DNS-palvelin on konfiguroitu tallentamaan täydelliset pakettitiedot. Kun ne ovat olemassa, jäsentäjä muuntaa ne yhdeksi JSON-arvoksi, jotta rivi pysyy yhtenä:

```json
{
  "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": []
  }
}
```

Näiden blokien jäsentäminen vie aikaa ja kasvattaa CSV-tiedostoa merkittävästi. Jos et tarvitse niitä, käytä `-NoDetailsParsing` — sarake pysyy mukana mutta tyhjänä, ja muunnos nopeutuu. Katso [Suorituskyky](../04-performance/).

## Tilastotiedostot

Tilastot ovat päivittäisiä yhteenlaskettuja arvoja. Käytä niitä, kun haluat trendin tai yhteenvedon etkä halua siirtää koko tietueryhmää — ne ovat tietotiedostoa huomattavasti pienempiä.

### Kontekstin tilastot (`*_Statistic.csv`)

Vastaus: *kuinka paljon mitäkin toimintaa tapahtui päivässä?*

```text
Date;Context;Count;ComputerName
2026-01-20;Event;2;dc01
2026-01-20;Note;2;dc01
2026-01-20;Packet;12;dc01
```

| Sarake | Merkitys |
|---|---|
| `Date` | Päivä, aina muodossa `yyyy-MM-dd` |
| `Context` | Kontekstin nimi (`Packet`, `Event`, `Note`, …) |
| `Count` | Kyseisen kontekstin merkintöjen määrä kyseisenä päivänä |
| `ComputerName` | Lähdepalvelin |

Esimerkkitiedostot: [en-US WithComputerName](../outputformat/en-us.-.dnsdebug-dc01_Statistic.-.WithComputerName.csv), [en-US NoComputerName](../outputformat/en-us.-.dnsdebug-dc01_Statistic.-.NoComputerName.csv), [de-DE WithComputerName](../outputformat/de-de.-.dnsdebug-dc01_Statistic.-.WithComputerName.csv), [de-DE NoComputerName](../outputformat/de-de.-.dnsdebug-dc01_Statistic.-.NoComputerName.csv)

### Pakettitilastot (`*_PacketStatistic.csv`)

Vastaus: *kuka kysyi mitä, kuinka usein, päivässä?*

```text
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
```

| Sarake | Merkitys |
|---|---|
| `Date` | Päivä, aina muodossa `yyyy-MM-dd` |
| `ClientIP` | Kyselyn tehnyt isäntä |
| `Protocol` | `UDP` tai `TCP` |
| `Direction` | `Rcv` tai `Snd` |
| `QuestionType` | DNS-merkintätyyppi |
| `Count` | Kyseisen päivän vastaavien pakettien määrä |
| `ComputerName` | Lähdepalvelin |

Esimerkkitiedostot: [en-US WithComputerName](../outputformat/en-us.-.dnsdebug-dc01_PacketStatistic.-.WithComputerName.csv), [en-US NoComputerName](../outputformat/en-us.-.dnsdebug-dc01_PacketStatistic.-.NoComputerName.csv), [de-DE WithComputerName](../outputformat/de-de.-.dnsdebug-dc01_PacketStatistic.-.WithComputerName.csv), [de-DE NoComputerName](../outputformat/de-de.-.dnsdebug-dc01_PacketStatistic.-.NoComputerName.csv)

<div class="alert alert-info" role="alert"><div class="h4 alert-heading" role="heading">Määrät ovat kokonaislukuja, eivät uniikkeja arvoja</div>


`Count` on kyseisen päivittäisen ryhmän merkintöjen kokonaismäärä. Asiakas, joka kysyi samaa nimeä 500 kertaa, lisää määrää 500:lla, ei yhdellä. Jos luku näyttää liian suurelta, tämä on yleensä syy.
</div>


## Erotin- ja päivämäärämuoto

Molemmat tulostyypit noudattavat `-Delimiter` (oletus `;`) ja `-OutputCulture` asetuksia. Kaikessa koneellisesti tuotavassa tiedossa käytä ISO-tyyppisiä aikaleimoja:

```powershell
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
```

Tämä tuottaa `2026-01-20 23:00:16`, jonka SQL Server, Power BI ja pandas lukevat ilman erillistä muotoiluvihjettä. Lisätietoja [Parametrit ja asetukset](../03-parameters-and-options/).
