# Convert-DNSDebugLogFile

LLMS index: [llms.txt](/v1.1.0.0/llms.txt)

---

## YHTEENVETO

Muuttaa Windows DNS -palvelimen debug-lokit rakenteelliseksi CSV-muodoksi analysointia ja raportointia varten.

## SYNTAKSI

### __AllParameterSets

```
Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
 [[-ComputerName] <string>] [[-OutputType] <string>] [[-ContextFilter] <string>]
 [[-InputCulture] <cultureinfo>] [[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation]
 [-RemoveSourceFile] [-CompressOutput] [-WhatIf] [-Confirm] [<CommonParameters>]
```

## ALIASET

Tällä cmdletillä on seuraavat alias-nimet,

## KUVAUS

Muuttaa Windows DNS -palvelimen debug-lokitiedostot rakenteelliseksi CSV-dataksi, jota voidaan analysoida Excelissä, Power BI:ssä, SQL-tietokannoissa tai SIEM-työkaluissa. Suunniteltu turvallisuusanalyysiin, suorituskyvyn valvontaan, vianetsintään ja vaatimustenmukaisuusraportointiin.

Cmdlet jäsentää kaikki 17 kenttää DNS-debug-lokeista, mukaan lukien päivämäärä/aika, protokolla, asiakas-IP, kyselytyyppi, verkkotunnukset, vastauskoodit, liput, tapahtumatiedot ja tietokoneen nimi. Se tuottaa rakenteellisen CSV-tulosteen, johon voi sisältyä valinnainen tilastoyhteenveto, joka kokoaa aktiviteetit asiakkaan, protokollan ja kyselytyypin mukaan.

TÄRKEIMMÄT OMINAISUUDET:
- Suorituskykyinen jäsentäminen, optimoitu suurille tiedostoille (100 Mt+)
- Mukautettava CSV-erotin (oletus: puolipiste)
- Valinnaiset tilastoyhteenvedot koottujen mittareiden kanssa
- Kontekstisuodatus (PACKET, EVENT, Note) keskittymään tiettyihin lokimerkintöihin
- Kulttuuritietoinen päivämäärän jäsentäminen ja muotoilu kansainvälisille palvelimille
- Putkituen avulla eräajona useiden tiedostojen käsittelyyn
- Valinnainen tulostiedostojen pakkaus (ZIP-muoto)
- Valinnainen lähdetiedostojen automaattinen poisto käsittelyn jälkeen
- Otsikkotarkistus tietojen eheyttä varten

TULOSTEEN MUOTO:
Tietokoneen nimi -sarake sisältyy aina jokaisen rivin loppuun. Jos -ComputerName-parametriä ei määritetä, sarake jää tyhjäksi. Tämä varmistaa yhdenmukaisen tulosteen monipalvelinyhdistelmätapauksissa.

SUORITUSKYKY:
Optimoitu käyttämällä StreamReader/StreamWriter 64 kt:n puskureilla, merkkijonotoimintoja regexin sijaan, manuaalista CSV:n generointia ja tehokasta tilastojen keruuta hashtablen avulla.

YHTEENSOPIVUUS:
- PowerShell 5.1+ (Desktop ja Core -versiot)
- Windows Server 2016+
- DNS Server 2012 R2 - 2025 lokimuodot

## ESIMERKIT

### ESIMERKKI 1

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log"
```

Muuttaa DNS-debug-lokin oletusasetuksilla (sekä data- että tilastotiedostot puolipiste-erottimella).  
Tuloste: C:\Logs\dns.csv ja C:\Logs\dns_statistic.csv

### ESIMERKKI 2

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType CSV
```

Tuottaa vain datatiedoston ilman tilastoja.  
Tuloste: C:\Logs\dns.csv

### ESIMERKKI 3

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType Statistic
```

Tuottaa vain tilastotiedoston koottujen mittareiden kanssa.  
Tuloste: C:\Logs\dns_statistic.csv

### ESIMERKKI 4

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"
```

Muuttaa lokin mukautettuun tulostussijaintiin.  
Tuloste: C:\Output\parsed.csv

### ESIMERKKI 5

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both
```

Muuttaa pilkulla erotetuksi ja lisää ComputerName-sarakkeen arvolla "DNS01".  
Tuloste: C:\Logs\dns.csv ja C:\Logs\dns_statistic.csv ComputerName-sarakkeella

### ESIMERKKI 6

```powershell
PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -OutputType Both
```

Käsittelee useita DNS-debug-lokitiedostoja putken kautta eräajona.  
Tuloste: Jokaiselle .log-tiedostolle luodaan .csv ja _statistic.csv tiedostot

### ESIMERKKI 7

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput
```

Muuttaa ja pakkaa tulosteen ZIP-arkistoon.  
Tuloste: C:\Logs\dns.zip (sisältäen dns.csv ja dns_statistic.csv)

### ESIMERKKI 8

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -RemoveSourceFile -Verbose
```

Muuttaa lokin ja poistaa lähdetiedoston onnistuneen käsittelyn jälkeen.  
Verbose-tuloste vahvistaa tiedoston poiston.

### ESIMERKKI 9

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'
```

Jäsentää saksalaisen päivämäärämuodon (PP.KK.VVVV) ja tuottaa US-muodossa (KK/PP/VVVV).  
Käytä, kun käsittelet lokitiedostoja eri alueasetuksilla olevilta palvelimilta.

### ESIMERKKI 10

```powershell
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter 'Packet'
```

Muuttaa vain DNS-kysely/vastauspakettimerkinnät, jättää EVENT- ja Note-merkinnät pois.  
Käytä keskittymään varsinaiseen DNS-liikenteeseen.

### ESIMERKKI 11

```powershell
PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -RemoveSourceFile -CompressOutput
```

Automaattinen lokien arkistointi: käsittelee kaikki lokit, pakkaa tulosteet ja poistaa lähdetiedostot.  
Ihanteellinen ajoitettuihin lokien käsittelyputkiin.

## PARAMETRIT

### -CompressOutput

Pakkaa luodut CSV-tiedostot ZIP-arkistoksi käsittelyn jälkeen.

Luo .zip-tiedoston, joka sisältää luodut CSV-tiedostot, ja poistaa alkuperäiset purkamattomat CSV:t. ZIP-tiedosto luodaan samaan hakemistoon ja samalla nimellä kuin CSV.

Hyödyt:
- Vähentää merkittävästi levytilan käyttöä (CSV-tiedostot pakkaantuvat yleensä yli 90 %)
- Yksinkertaistaa tiedostojen hallintaa ja arkistointia
- Sopii pitkäaikaiseen säilytykseen

Esimerkki: Syöte 'dns.log' tuottaa 'dns.csv', joka pakataan 'dns.zip':ksi, ja 'dns.csv' poistetaan.

```yaml
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -ComputerName

Määrittää arvon ComputerName-sarakkeelle CSV-tulosteessa. ComputerName-sarake on aina mukana tulosteessa – jos tätä parametria ei anneta, sarake jää tyhjäksi.

Käytä tätä, kun yhdistät lokitietoja useilta DNS-palvelimilta ja haluat tunnistaa lähdepalvelimen yhdistetyissä aineistoissa.

Huom: Tämä EI ole etäkäyttöparametri. Cmdlet käsittelee vain paikallisia tiedostoja.

```yaml
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Server
- DNSServer
- HostName
ParameterSets:
- Name: (All)
  Position: 3
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -Confirm

Kysyy vahvistuksen ennen cmdletin suorittamista.

Jos määritetty, kysyy vahvistuksen ennen:
- Jokaisen DNS-debug-lokitiedoston käsittelyä
- Lähdetiedostojen poistamista (kun -RemoveSourceFile on käytössä)
- Olemassa olevien tulostiedostojen korvaamista

Hyödyllinen interaktiiviseen käsittelyyn, kun haluat hallita, mitkä tiedostot käsitellään.

```yaml
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -ContextFilter

Suodattaa, mitkä lokimerkintätyypit sisällytetään tulosteeseen.

DNS-debug-lokit sisältävät eri kontekstit:
- PACKET: DNS-kysely- ja vastauspakettitiedot (ensisijainen data)
- EVENT: DNS-palvelimen tapahtumat (esim. "DNS-palvelin on käynnistynyt.")
- Note: Diagnostiikkamuistiinpanot ja varoitukset (esim. socket-virheet, sisäiset tilat)

Sallitut arvot:
- 'All': Sisällytä kaikki kontekstit (oletus)
- 'Packet': Sisällytä vain PACKET-merkinnät (DNS-kyselyt/vastaukset)
- 'Event': Sisällytä vain EVENT-merkinnät (palvelintapahtumat)
- 'Note': Sisällytä vain Note-merkinnät (diagnostiikkatiedot)

Oletus: All

Huom: Kun suodatetaan 'Event' tai 'Note', vain DateTime, ThreadId, Context ja Information -sarakkeet sisältävät tietoja. Muut sarakkeet (Protokolla, ClientIP jne.) ovat tyhjiä.

```yaml
Type: String
DefaultValue: All
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 5
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -Delimiter

Määrittää CSV-tulosteen erotinmerkin.

Oletus: puolipiste (;)

Yleisiä vaihtoehtoja: pilkku (,), sarkain (`t), putki (|)

Käytä puolipistettä alueilla, joissa pilkku on desimaalierotin (Eurooppa). Käytä pilkkua standardeissa CSV-työkaluissa ja tietokannoissa, jotka odottavat pilkulla erotettuja arvoja.

```yaml
Type: String
DefaultValue: ;
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 2
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -InputCulture

Määrittää kulttuurin/alueen, jota käytetään päivämäärä- ja aika-arvojen jäsentämiseen DNS-debug-lokissa.

DNS-palvelimen debug-lokit käyttävät palvelimen Windows-alueasetuksen päivämäärämuotoa. Käytä tätä parametria, kun käsittelet lokitiedostoja eri alueasetuksilla olevilta palvelimilta.

Oletus: Nykyinen kulttuuri

Yleisiä esimerkkejä:
- 'de-DE' tai 'de-AT': saksalainen muoto (PP.KK.VVVV tai PP/KK/VVVV)
- 'en-US': US-muoto (KK/PP/VVVV AM/PM)
- 'en-GB': UK-muoto (PP/KK/VVVV 24h)
- 'sv-SE': ruotsalainen/ISO-muoto (VVVV-KK-PP)

```yaml
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 6
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -InputFile

Määrittää polun DNS-debug-lokitiedostoon, joka jäsennetään. Tukee taulukoita useiden tiedostojen käsittelyyn.

Hyväksyy putkisyötteen Get-ChildItem-komennosta tai muista tiedostoja tuottavista cmdleteistä.

```yaml
Type: String[]
DefaultValue: ''
SupportsWildcards: false
Aliases:
- FullName
- FilePath
- InputPath
- File
- Path
ParameterSets:
- Name: (All)
  Position: 0
  IsRequired: true
  ValueFromPipeline: true
  ValueFromPipelineByPropertyName: true
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -OutputCulture

Määrittää kulttuurin/alueen, jota käytetään päivämäärä- ja aika-arvojen muotoiluun CSV-tulostetiedostoissa.

Ohjaa, miten DateTime-arvot kirjoitetaan CSV:hen. Käytä tätä, kun CSV-tiedostoja käyttää sovellus tai järjestelmä, jolla on tietyt alueasetukset.

Oletus: Nykyinen kulttuuri

Yleisiä esimerkkejä:
- 'en-US': US-muoto (KK/PP/VVVV)
- 'de-DE': saksalainen muoto (PP.KK.VVVV)
- 'sv-SE' tai InvariantCulture: ISO-muoto (VVVV-KK-PP) maksimaaliseen yhteensopivuuteen

```yaml
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 7
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -OutputFile

Määrittää polun tulostettavalle CSV-tiedostolle. Jos ei määritetä, käytetään syötetiedoston nimeä .csv-päätteellä samassa hakemistossa kuin syöte.

Tärkeää: Täytyy olla tiedostopolku, ei hakemisto. Jos haluat käyttää syötetiedoston hakemistoa ja mukautettua nimeä, määritä koko polku tiedostonimen kanssa.

```yaml
Type: String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- Output
- Destination
- OutFile
- OutputPath
ParameterSets:
- Name: (All)
  Position: 1
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -OutputType

Määrittää tuotettavan tulosteen tyypin.

Sallitut arvot:
- 'CSV': Tuottaa vain datatiedoston kaikilla jäsennetyillä lokimerkinnöillä (oletus)
- 'Statistic': Tuottaa vain tilastotiedoston koottujen mittareiden kanssa
- 'Both': Tuottaa sekä data- että tilastotiedostot

Oletus: Both

Tilastot tarjoavat koottuja määriä asiakas-IP:n, protokollan, suunnan ja kyselytyypin mukaan sekä päivämääräalueen jokaiselle uniikille yhdistelmälle.

```yaml
Type: String
DefaultValue: Both
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 4
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -RemoveSourceFile

Poistaa lähde-DNS-debug-lokitiedoston onnistuneen käsittelyn jälkeen.

Käytä automaattisissa lokien käsittelyputkissa tai levytilan hallinnassa. Lähdetiedosto poistetaan vain, jos käsittely onnistuu ja kaikki tulostiedostot on luotu.

Turvallisuus: Ei voi käyttää yhdessä -SkipHeaderValidation-parametrin kanssa estämään virheellisten tiedostojen vahingossa tapahtuvaa poistoa.

Varoitus: Lähdetiedostot poistetaan pysyvästi. Varmista, että tulostiedostot ovat kelvollisia ennen tämän vaihtoehdon käyttöä.

```yaml
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -SkipHeaderValidation

Ohittaa DNS-debug-lokin otsikkotarkistuksen.

Oletuksena cmdlet varmistaa, että syötetiedostossa on kelvollinen DNS-palvelimen debug-lokin otsikko. Käytä tätä kytkintä käsittelemään tiedostoja ilman tarkistusta, mikä voi olla hyödyllistä:
- Muokatuissa tai mukautetuissa lokimuodoissa
- Vianmäärityksessä tarkistusongelmissa
- Ei-standardeissa tai esikäsitellyissä lokeissa

Varoitus: Voi aiheuttaa käsittelyvirheitä, jos tiedosto ei ole kelvollinen DNS-loki.

```yaml
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -WhatIf

Näyttää, mitä tapahtuisi, jos cmdlet suoritettaisiin. Cmdletiä ei suoriteta.

Jos määritetty, näyttää yksityiskohtaiset tiedot toiminnoista, jotka suoritettaisiin ilman, että niitä oikeasti ajetaan. Hyödyllinen:
- Ennakkotarkasteluun, mitkä tiedostot käsiteltäisiin
- Tulostiedostopolkujen tarkistamiseen ennen käsittelyä
- Skriptien testaamiseen ennen tuotantokäyttöä

```yaml
Type: SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
  Position: Named
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### CommonParameters

Tämä cmdlet tukee yleisiä parametreja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ja -WarningVariable. Lisätietoja: [about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).

## SYÖTTEET

### System.String[]

## HUOMAUTUKSET

Versio  : 1.3.0.1  
Tekijä  : Andi Bellstedt, Copilot  
Päivämäärä: 2026-01-23  
Avainsanat: Microsoft Windows Server, DNSServer, DNS, DebugLog, LogParser

## LIITTYVÄT LINKIT

- [github.com/AndiBellstedt/DNSServer.DebugLogParser](https://github.com/AndiBellstedt/DNSServer.DebugLogParser)
