# Convert-DNSDebugLogFile

LLMS index: [llms.txt](/v1.0.0.0/llms.txt)

---

## YHTEENVETO

Muuttaa Windows DNS Serverin debug-lokitiedostot CSV-muotoon.

## SYNTAKSI

### __AllParameterSets

```
Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
 [[-ComputerName] <string>] [[-OutputType] <string>] [[-InputCulture] <cultureinfo>]
 [[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation] [-RemoveSourceFile] [-CompressOutput]
 [-WhatIf] [-Confirm] [<CommonParameters>]
```

## ALIASET

Tällä cmdlet-komennolla on seuraavat alias-nimet,

## KUVAUS

Suorituskykyinen jäsentäjä Windows DNS Serverin debug-lokitiedostoille, jonka tarkoituksena on tehdä DNS-palvelimen
toiminnasta läpinäkyvää, analysoitavaa ja arvioitavaa raportointi- ja analytiikkatyökaluissa.

DNS Serverin debug-lokit sisältävät yksityiskohtaista kysely-/vastaustietoa, mutta niiden analysointi
raaka-tekstimuodossa on hankalaa.
Tämä skripti muuntaa lokit rakenteellisiksi CSV-tiedostoiksi, jotka voidaan
tuoda Exceliin, Power BI:hin, SQL-tietokantoihin tai muihin data-analyysialustoihin.

KESKEISET OMINAISUUDET:
- Jäsentää kaikki 16 kenttää DNS-debug-lokeista (päivämäärä, aika, protokolla, asiakas-IP, kyselytyyppi jne.)
- Tuottaa rakenteellisen CSV-tulosteen mukautettavilla erotinmerkeillä
- Luo valinnaisia tilastoyhteenvedot, jotka kokoavat toimintaa asiakkaan, protokollan ja kyselytyypin mukaan
- Käsittelee yksittäisiä tiedostoja tai eräajona putken kautta
- Tukee sekä normaaleja että yksityiskohtaisia DNS-debug-lokiformaatteja
- Valinnainen automaattinen tulostiedostojen pakkaus levytilan säästämiseksi
- Valinnainen lähdetiedostojen poisto onnistuneen käsittelyn jälkeen
- Varmistaa lokitiedostojen otsikot tietojen eheyttä varten

KÄYTTÖTARKOITUKSET:
- Turvallisuusanalyyseihin: epäilyttävien DNS-kyselykuvioiden tunnistaminen
- Suorituskyvyn seuranta: kyselymäärien ja vasteaikojen seuranta
- Kapasiteettisuunnittelu: DNS-palvelimen kuormituksen ja asiakasjakauman analysointi
- Säädöstenmukaisuusraportointi: DNS-toiminnan dokumentointi tarkastusvaatimuksia varten
- Vianmääritys: DNS-resoluutio-ongelmien tutkiminen

SUORITUSKYKY:
Optimoitu suurille tiedostoille (100 Mt+) käyttämällä:
- Merkkijonotoimintoja regexin sijaan jäsentämiseen
- StreamReader/StreamWriter 64 kt:n puskureilla
- Käsin tehtyä CSV:n generointia Export-Csv:n ylikuormituksen välttämiseksi
- Tehokasta sanakirjapohjaista tilastojen keruuta

YHTEENSOPIVUUS:
- PowerShell 5.1+ Windowsilla
- PowerShell 7+ Windowsilla
- Windows Server 2016 ja uudemmat
- Tukee DNS Server 2012 R2 - 2025 debug-lokiformaatteja

## ESIMERKIT

### ESIMERKKI 1

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log"
```

Muuttaa DNS-debug-lokin CSV-muotoon oletusasetuksilla.
Tulostaa: C:\Logs\dns.csv (vain datatiedosto, puolipiste-erotin).

### ESIMERKKI 2

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both
```

Muuttaa DNS-debug-lokin ja luo molemmat tulostiedostot.
Tulostaa: C:\Logs\dns.csv (data) ja C:\Logs\dns_statistic.csv (koottu tilasto).

### ESIMERKKI 3

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Statistic
```

Luo vain tilastotiedoston ilman koko CSV-datatiedostoa.
Tulostaa: C:\Logs\dns_statistic.csv (vain tilastot).

### ESIMERKKI 4

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputFile "C:\Output\parsed.csv"
```

Muuttaa DNS-debug-lokin mukautettuun tulostussijaintiin.
Tulostaa: C:\Output\parsed.csv.

### ESIMERKKI 5

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both
```

Muuttaa lokin pilkulla erotetuksi ja lisää ComputerName-sarakkeen arvolla "DNS01".
Tulostaa: C:\Logs\dns.csv ja C:\Logs\dns_statistic.csv, molemmat sisältävät "DNS01" ComputerName-sarakkeessa.

### ESIMERKKI 6

```powershell
PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -OutputType Both
```

Käsittelee useita DNS-debug-lokitiedostoja putken kautta.
Tulostaa: Jokaiselle .log-tiedostolle luodaan sekä .csv (data) että _statistic.csv (tilastot) tiedostot.

### ESIMERKKI 7

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -CompressOutput
```

Muuttaa DNS-debug-lokin ja pakkaa tulosteen ZIP-arkistoksi.
Tulostaa: C:\Logs\dns.zip, joka sisältää dns.csv. Puraamaton csv-tiedosto poistetaan pakkaamisen jälkeen.

### ESIMERKKI 8

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputType Both -CompressOutput
```

Muuttaa lokin tilastoineen ja pakkaa molemmat tulostiedostot.
Tulostaa: C:\Logs\dns.zip, joka sisältää dns.csv ja dns_statistic.csv.

### ESIMERKKI 9

```powershell
PS C:\> Get-ChildItem "C:\Logs\*.log" | .\Convert-DnsDebugLogFile.ps1 -RemoveSourceFile -CompressOutput
```

Käsittelee useita lokitiedostoja, pakkaa tulosteen ja poistaa lähdetiedostot.
Jokainen .log-tiedosto muunnetaan pakatuksi .zip-tiedostoksi, jonka jälkeen lähdetiedosto poistetaan.
Sopii automatisoituihin lokien arkistointiputkiin.

### ESIMERKKI 10

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\old_dns.log" -RemoveSourceFile -Verbose
```

Muuttaa lokitiedoston ja poistaa lähdetiedoston onnistuneen käsittelyn jälkeen.
Verbose-tila vahvistaa tiedoston poiston. Käytä varoen, sillä lähdetiedostot poistetaan pysyvästi.

### ESIMERKKI 11

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE'
```

Muuttaa DNS-debug-lokin saksalaiselta Windows-palvelimelta.
Käytä tätä, kun lokitiedosto on peräisin palvelimelta, jolla on eri alueasetukset.

### ESIMERKKI 12

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo('sv-SE'))
```

Muuttaa DNS-debug-lokin ruotsalaiselta Windows-palvelimelta, joka käyttää ISO-päivämäärämuotoa (VVVV-KK-PP).
Hyödyllinen lokien käsittelyssä eri alueasetuksilla toimivilta palvelimilta.

### ESIMERKKI 13

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -InputCulture 'de-DE' -OutputCulture 'en-US'
```

Muuttaa DNS-debug-lokin saksalaiselta Windows-palvelimelta ja muotoilee tulosteen päivämäärät Yhdysvaltojen järjestelmille.
Hyödyllinen kansainvälisten palvelimien lokien käsittelyyn Yhdysvaltojen järjestelmille.

### ESIMERKKI 14

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)
```

Muuttaa DNS-debug-lokin ja muotoilee tulosteen päivämäärät ISO 8601 -muotoon (VVVV-KK-PP).
Ihanteellinen monialustaisiin yhteensopivuustilanteisiin tai tiedonsiirtoon.

### ESIMERKKI 15

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -WhatIf
```

Näyttää, mitä tapahtuisi, jos komento suoritettaisiin, ilman että tiedostoja luodaan.
Hyödyllinen komentoparametrien testaamiseen ennen varsinaista datankäsittelyä.

### ESIMERKKI 16

```powershell
PS C:\> .\Convert-DnsDebugLogFile.ps1 -InputFile "C:\Logs\dns.log" -RemoveSourceFile -CompressOutput -WhatIf
```

Esikatselu koko työnkulusta, mukaan lukien pakkaus ja lähdetiedoston poisto.
Tiedostoja ei luoda, pakata tai poistaa – näytetään vain, mitä tapahtuisi.

## PARAMETRIT

### -CompressOutput

Pakkaa luodut CSV-tiedostot ZIP-arkistoksi.

Luo .zip-tiedoston, joka sisältää luodut CSV-tiedostot, ja poistaa alkuperäiset purkamattomat CSV:t.
ZIP-tiedosto luodaan samaan kansioon kuin CSV-tiedostot ja samalla nimellä.
Pakkaus tapahtuu heti kunkin tiedoston käsittelyn jälkeen levytilan hallinnan tehostamiseksi.

Hyödyt:
- Vähentää merkittävästi levytilan käyttöä (CSV-tiedostot pakkaantuvat hyvin)
- Yksinkertaistaa tiedostojen hallintaa ja arkistointia
- Sopii pitkäaikaiseen käsiteltyjen lokien säilytykseen

Esimerkki: Syöte 'dns.log' tuottaa 'dns.csv', joka pakataan 'dns.zip' -tiedostoksi, minkä jälkeen 'dns.csv' poistetaan.

Yhteensopiva PowerShell 5.1+ ja Windows Server 2016+ kanssa.

```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

Valinnainen.
Jos määritetty, lisää ComputerName-sarakkeen CSV-tulosteeseen annetulla arvolla.
Hyödyllinen, kun yhdistetään lokitietoja useilta DNS-palvelimilta.

Tärkeää: Tämä EI ole etäkäyttöominaisuus.
Skripti 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 cmdlet-komennon suorittamista.

Jos määritetty, kysyy vahvistuksen ennen:
- Jokaisen DNS-debug-lokitiedoston käsittelyä
- Lähdetiedostojen poistoa (kun -RemoveSourceFile on käytössä)
- Olemassa olevien tulostiedostojen korvaamista

Hyödyllinen vuorovaikutteisessa käytössä, 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: ''
```

### -Delimiter

CSV-tulosteen erotinmerkki.

Oletus on puolipiste ';'

```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, jota käytetään päivämäärä- ja aika-arvojen jäsentämiseen DNS-debug-lokissa.

DNS Serverin debug-lokit käyttävät päivämäärämuotoa sen Windows-alueasetuksen mukaan, jossa loki on luotu.
Tämä parametri mahdollistaa lokien jäsentämisen palvelimilta, joilla on eri alueasetukset.

Oletuksena nykyinen kulttuuri ([System.Globalization.CultureInfo]::CurrentCulture).

Yleisiä kulttuuriarvoja:
- 'de-DE' tai 'de-AT': saksalainen muoto (PP.KK.VVVV tai PP/KK/VVVV)
- 'en-US': yhdysvaltalainen muoto (KK/PP/VVVV)
- 'en-GB': brittiläinen muoto (PP/KK/VVVV)
- 'sv-SE': ruotsalainen/ISO-muoto (VVVV-KK-PP)

Esimerkki: -InputCulture 'de-DE' saksalaiselta Windows-palvelimelta tuleville lokeille.
Esimerkki: -InputCulture ([System.Globalization.CultureInfo]::GetCultureInfo('sv-SE')) ruotsalaisille lokeille.

```yaml
Type: CultureInfo
DefaultValue: '[System.Globalization.CultureInfo]::CurrentCulture'
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
  Position: 5
  IsRequired: false
  ValueFromPipeline: false
  ValueFromPipelineByPropertyName: false
  ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -InputFile

Polku jäsennettävään DNS-debug-lokitiedostoon.
Tukee taulukoita useiden tiedostojen käsittelyyn.

```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, jota käytetään päivämäärä- ja aika-arvojen muotoiluun tulostettavissa CSV-tiedostoissa.

Tämä parametri ohjaa, miten DateTime-arvot kirjoitetaan CSV-tulosteeseen.
Hyödyllinen, kun CSV-tiedostoja käytetään sovelluksissa tai järjestelmissä, joilla on tietyt alueasetukset.

Oletuksena nykyinen kulttuuri ([System.Globalization.CultureInfo]::CurrentCulture).

Yleisiä kulttuuriarvoja:
- 'en-US': yhdysvaltalainen muoto (KK/PP/VVVV)
- 'de-DE': saksalainen muoto (PP.KK.VVVV)
- 'en-GB': brittiläinen muoto (PP/KK/VVVV)
- 'sv-SE': ruotsalainen/ISO-muoto (VVVV-KK-PP)

Esimerkki: -OutputCulture 'en-US' päivämäärien muotoiluun Yhdysvaltojen järjestelmiin.
Esimerkki: -OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture) ISO-muotoon.

```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: ''
```

### -OutputFile

Valinnainen.
Polku tulostettavalle CSV-tiedostolle.
Jos ei määritetä, käytetään syötetiedoston nimeä .csv-päätteellä.

Täytyy olla tiedostopolku, ei kansio.
Jos haluat määrittää vain tulostuskansion,
jätä tämä parametri pois, ja skripti käyttää samaa kansiota kuin syötteellä.

```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.

Kelvolliset arvot:
- 'CSV': Luo vain CSV-tiedoston jäsennetyllä lokidatalla (oletus)
- 'Statistic': Luo vain tilastotiedoston koottujen tietojen kanssa
- 'Both': Luo sekä CSV- että tilastotiedostot

Oletuksena 'Both'.

```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ä tätä kytkintä poistaaksesi syötetiedostot automaattisesti, kun ne on onnistuneesti jäsennetty
ja tulostiedostot luotu.
Hyödyllinen:
- Automaattisissa lokien käsittelyputkissa
- Levytilan hallinnassa lokien keruussa
- Estämään jo muunnettujen tiedostojen uudelleenkäsittely

Turvatoimet:
- Poistaa tiedostot vain onnistuneen käsittelyn ja tulostuksen jälkeen
- Ohittaa poiston, jos käsittely epäonnistuu tai keskeytyy
- Ei voi käyttää yhdessä SkipHeaderValidationin kanssa turvallisuuden vuoksi

Varoitus: Lähdetiedostot poistetaan pysyvästi.
Varmista, että tulostiedostot ovat kelvollisia ennen tämän asetuksen 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 skripti varmistaa, että syötetiedostolla on kelvollinen DNS Server debug-lokin otsikkorakenne.
Käytä tätä kytkintä käsitelläksesi tiedostoja ilman otsikkovarmistusta, mikä voi olla hyödyllistä:
- Muokattujen tai mukautettujen lokiformaattien käsittelyssä
- Vianmäärityksessä otsikkovarmistuksen ongelmissa
- Ei-standardeilla otsikoilla varustettujen lokien käsittelyssä

Varoitus: Tämän parametrin käyttö 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.
Cmdlet:iä ei suoriteta.

Jos määritetty, näyttää yksityiskohtaiset tiedot toiminnoista, jotka suoritettaisiin
ilman että niitä todella suoritetaan.
Hyödyllinen:
- Esikatseluun, mitkä tiedostot käsiteltäisiin
- Tulostiedostopolkujen tarkistukseen 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 on kohdassa
[about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).

## SYÖTTEET

### System.String[]

## HUOMAUTUKSET

Versio:    1.2.0.0
Tekijä:     Andreas 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)
