1 - Convert-DNSDebugLogFile
YHTEENVETO
Muuttaa Windows DNS Serverin debug-lokit jäsenneltyyn CSV-muotoon analyysiä ja raportointia varten.
SYNTAX
__AllParameterSets
Convert-DNSDebugLogFile [-InputFile] <string[]> [[-OutputFile] <string>] [[-Delimiter] <string>]
[[-ComputerName] <string>] [[-OutputType] <string>] [[-ContextFilter] <string[]>]
[[-InputCulture] <cultureinfo>] [[-OutputCulture] <cultureinfo>] [-SkipHeaderValidation]
[-RemoveSourceFile] [-CompressOutput] [-NoDetailsParsing] [-WhatIf] [-Confirm]
ALIASET
Tällä cmdletillä on seuraavat alias-nimet,
KUVAUS
Muuttaa Windows DNS Serverin debug-lokitiedostot jäsennellyksi CSV-dataksi, jota voidaan analysoida Excelissä, Power BI:ssä, SQL-tietokannoissa tai SIEM-työkaluissa. Suunniteltu tietoturva-analyysiin, suorituskyvyn seurantaan, vianmääritykseen ja vaatimustenmukaisuusraportointiin.
Cmdlet jäsentää DNS-debug-lokit ja kirjoittaa yhdenmukaisen CSV-tulosteen analyysiä varten. CSV-tuloste sisältää 18 saraketta, mukaan lukien Information-sarake tapahtuma-/diagnostiikkatekstille, valinnaisen Details JSON-sarakkeen pakettien yksityiskohtaisille lohkoille sekä aina mukana olevan ComputerName-sarakkeen (tyhjä, ellei määritetty).
TÄRKEIMMÄT OMINAISUUDET:
- Virtauskäsittely estää koko tiedoston lataamisen muistiin (sopii erittäin suurille lokeille)
- Suorituskykyinen jäsentäminen optimoitu suurille tiedostoille (100 Mt+)
- Mukautettava CSV-erotin (oletus: puolipiste)
- Valinnaiset tilastoyhteenvedot koottujen mittareiden kanssa
- Kontekstisuodatus (Packet, Event, Note ja muut kontekstit) keskittyäksesi tiettyihin lokimerkintöihin
- Kulttuuritietoinen päivämäärän jäsentäminen ja muotoilu kansainvälisille palvelimille
- Putkituen avulla useiden tiedostojen eräkäsittely
- Valinnainen tulostiedostojen pakkaus (ZIP-muoto)
- Valinnainen lähdetiedostojen automaattinen poisto käsittelyn jälkeen
- Otsikkotarkistus tietojen eheyden varmistamiseksi
TULOSTEEN MUOTO:
ComputerName-sarake sisältyy aina jokaisen tietueen loppuun. Jos -ComputerName-parametriä ei määritetä, sarake on tyhjä. Tämä varmistaa yhdenmukaisen tulosteen rakenteen monipalvelinyhdistelmätapauksissa.
SUORITUSKYKY:
Optimoitu käyttämällä StreamReader/StreamWriter 64 kt:n puskureilla, virtauskäsittely muistiystävälliseen suurten tiedostojen käsittelyyn, merkkijonotoiminnot regexin sijaan, manuaalinen CSV:n generointi ja tehokas hajautustaulupohjainen tilastojen keruu.
YHTEENSOPIVUUS:
- PowerShell 5.1+ (Desktop ja Core-versiot)
- Windows Server 2016+
- DNS Server 2012 R2 - 2025 lokimuodot
ESIMERKIT
ESIMERKKI 1
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log"
Muuttaa DNS-debug-lokin oletusasetuksilla (sekä data- että tilastotiedostot puolipiste-erottimella).
Tulosteet:
- C:\Logs\dns.csv
- C:\Logs\dns_Statistic.csv
- C:\Logs\dns_PacketStatistic.csv
ESIMERKKI 2
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType CSV
Tuottaa vain datatiedoston ilman tilastoja.
Tuloste: C:\Logs\dns.csv
ESIMERKKI 3
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputType Statistic
Tuottaa vain tilastotiedostot koottujen mittareiden kanssa.
Tulosteet:
- C:\Logs\dns_Statistic.csv
- C:\Logs\dns_PacketStatistic.csv
ESIMERKKI 4
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
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -Delimiter "," -ComputerName "DNS01" -OutputType Both
Muuttaa pilkulla erotettuna ja lisää ComputerName-sarakkeen arvolla “DNS01”.
Tulosteet:
- C:\Logs\dns.csv
- C:\Logs\dns_Statistic.csv
- C:\Logs\dns_PacketStatistic.csv
ESIMERKKI 6
PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -OutputType Both
Käsittelee useita DNS-debug-lokitiedostoja putken kautta erissä.
Tuloste: Jokaiselle .log-tiedostolle luodaan .csv ja _statistic.csv tiedostot
ESIMERKKI 7
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 + tilastotiedostot)
ESIMERKKI 8
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
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 lokeja eri alueasetuksilla olevilta palvelimilta.
ESIMERKKI 10
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter 'Packet'
Muuttaa vain DNS-kysely/vastauspakettien merkinnät, poissulkee EVENT- ja Note-merkinnät.
Käytä keskittyäksesi varsinaiseen DNS-liikenteeseen.
ESIMERKKI 11
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter 'Packet','Event'
Muuttaa sekä DNS-kysely/vastauspaketit että palvelintapahtumat, poissulkee Note- ja muut merkinnät.
Käytä analysoidaksesi DNS-liikennettä yhdessä palvelintapahtumien kanssa.
ESIMERKKI 12
PS C:\> Get-ChildItem "C:\Logs\*.log" | Convert-DNSDebugLogFile -RemoveSourceFile -CompressOutput
Automaattinen lokien arkistointi: käsittelee kaikki lokit, pakkaa tulosteen ja poistaa lähdetiedostot.
Ihanteellinen ajoitettuihin lokikäsittelyputkiin.
ESIMERKKI 13
PS C:\> Convert-DNSDebugLogFile -InputFile "C:\Logs\large-dns.log" -NoDetailsParsing
Käsittelee suuren lokitiedoston ilman yksityiskohtien jäsentämistä maksimaalisen suorituskyvyn saavuttamiseksi.
PACKET-yksityiskohtalohkot ohitetaan, Details-sarake pysyy tyhjänä.
Käytä, kun käsittelet erittäin suuria tiedostoja eikä yksityiskohtaista pakettirakenteen analyysiä tarvita.
PARAMETRIT
-CompressOutput
Pakkaa luodut CSV-tiedostot ZIP-arkistoksi käsittelyn jälkeen.
Luo .zip-tiedoston, joka sisältää luodut CSV-tiedostot, ja poistaa purkamattomat CSV:t.
ZIP-tiedosto luodaan samaan hakemistoon kuin tulostettava CSV ja sillä on sama perusnimi.
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’ ja ‘dns.csv’ poistetaan.
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 määritetä, sarake on tyhjä.
Käytä tätä, kun yhdistät lokeja useilta DNS-palvelimilta lähdepalvelimen tunnistamiseksi yhdistetyissä aineistoissa.
Huom: Tämä EI ole etäkäyttöparametri. Se vain merkitsee tulosteen. Jos -InputFile osoittaa UNC-polkuun, tiedosto luetaan suoraan siitä polusta (ei suoriteta WinRM-etäkäyttöä).
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, pyytää vahvistusta ennen:
- Jokaisen DNS-debug-lokitiedoston käsittelyä
- Lähdetiedostojen poistamista (kun -RemoveSourceFile on määritetty)
- Olemassa olevien tulostiedostojen ylikirjoittamista
Hyödyllinen vuorovaikutteisessa käsittelyssä, kun haluat hallita, mitkä tiedostot käsitellään.
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. Hyväksyy yhden tai useamman arvon.
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: Diagnostiikka- ja varoitusmerkinnät (esim. soketti-virheet, sisäiset tilat)
- DSPoll, Init, Lookup, Recurse, Remote, Tombstone: Lisäkontekstit
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)
- Mikä tahansa yhdistelmä: Määritä useita arvoja sisällyttääksesi tietyt kontekstit
Oletus: All
Esimerkit:
- ‘Packet’ suodattaa vain DNS-liikenteen
- ‘Packet’,‘Event’ sisältää sekä DNS-liikenteen että palvelintapahtumat
- ‘Note’,‘Event’ sisältää diagnostiikkamuistiinpanot ja palvelintapahtumat
Huom: Kun suodatetaan ‘Event’ tai ‘Note’, vain DateTime, ThreadId, Context ja Information -sarakkeet sisältävät tietoa. Muut sarakkeet (Protocol, ClientIP jne.) ovat tyhjiä.
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 erottimen merkin.
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 pilkuilla erotettuja arvoja.
Type: String
DefaultValue: ;
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 2
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
Määrittää kulttuurin/alueen, jota käytetään päivämäärä-/aikamuotojen jäsentämiseen DNS-debug-lokissa.
DNS Serverin debug-lokit käyttävät Windowsin palvelimen paikallisen asetuksen päivämäärämuotoa, jossa loki on luotu. Käytä tätä parametria, kun käsittelet lokeja eri alueasetuksilla olevilta palvelimilta.
Oletus: Nykyinen kulttuuri
Yleisiä esimerkkejä:
- ‘de-DE’ tai ‘de-AT’: Saksan muoto (PP.KK.VVVV tai PP/KK/VVVV)
- ’en-US’: Yhdysvaltain muoto (KK/PP/VVVV AM/PM)
- ’en-GB’: Britannian muoto (PP/KK/VVVV 24h)
- ‘sv-SE’: Ruotsalainen/ISO-muoto (VVVV-KK-PP)
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: ''
Määrittää polun jäsennettävään DNS-debug-lokitiedostoon. Tukee taulukoita useiden tiedostojen käsittelyyn.
Hyväksyy putkisyötteen Get-ChildItemiltä tai muilta tiedostoa tuottavilta cmdleteiltä.
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: ''
-NoDetailsParsing
Ohittaa PACKET-yksityiskohtalohkojen jäsentämisen jäsennellyksi JSON-muodoksi.
Jos määritetty, PACKET-tietueet, joissa on yksityiskohtalohkoja, sisältävät TCP/UDP-tietorivin Information-sarakkeessa, mutta Details-sarake pysyy tyhjänä. Tämä parantaa merkittävästi suorituskykyä suurten lokitiedostojen käsittelyssä, kun yksityiskohtainen pakettirakenteen analyysi ei ole tarpeen.
Käytä tätä, kun:
- Käsittelet erittäin suuria lokitiedostoja (100 Mt+) ja tarvitset vain peruskyselytiedot
- Yksityiskohtainen rakenne (viestilippuja, DNS-osioita) ei ole tarpeen analyysissä
- Suorituskyvyn maksimointi on tärkeämpää kuin täydellisyys
Suorituskykyvaikutus: voi parantaa käsittelynopeutta 30-50 % lokeissa, joissa on paljon PACKET-yksityiskohtalohkoja.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
-OutputCulture
Määrittää kulttuurin/alueen, jota käytetään päivämäärä-/aikamuotojen muotoiluun tulostettavissa CSV-tiedostoissa.
Ohjaa, miten DateTime-arvot kirjoitetaan CSV:hen. Käytä tätä, kun CSV-tiedostot kulutetaan sovelluksissa tai järjestelmissä, joilla on tietyt alueasetukset.
Oletus: Nykyinen kulttuuri
Yleisiä esimerkkejä:
- ’en-US’: Yhdysvaltain muoto (KK/PP/VVVV)
- ‘de-DE’: Saksan muoto (PP.KK.VVVV)
- ‘sv-SE’ tai InvariantCulture: ISO-muoto (VVVV-KK-PP) maksimaaliseen yhteensopivuuteen
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ötteellä.
Tärkeää: Täytyy olla tiedostopolku, ei hakemisto. Jos haluat käyttää syötetiedoston hakemistoa mukautetulla nimellä, määritä koko polku tiedostonimen kanssa.
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ä
- ‘Statistic’: Tuottaa vain tilastotiedostot koottujen mittareiden kanssa
- ‘Both’: Tuottaa sekä data- että tilastotiedostot (oletus)
Oletus: Both
Kun tilastot tuotetaan, luodaan kaksi erillistä tiedostoa:
- ‘_Statistic.csv’: Yhteenvedot kontekstityypeittäin päivittäin (Päivämäärä, Konteksti, Määrä, ComputerName)
- ‘_PacketStatistic.csv’: Yksityiskohtaiset PACKET-laskelmat päivittäin asiakas-IP:n, protokollan, suunnan ja kyselytyypin mukaan (Päivämäärä, ClientIP, Protokolla, Suunta, Kyselytyyppi, Määrä, ComputerName)
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ä automatisoiduissa lokikäsittelyputkissa tai levytilan hallinnassa. Lähdetiedosto poistetaan vain, jos käsittely onnistuu ja kaikki tulostiedostot luodaan.
Turvallisuus: Ei voi käyttää yhdessä -SkipHeaderValidation-parametrin kanssa estääkseen virheellisten tiedostojen vahingossa tapahtuvan poistamisen.
Varoitus: Lähdetiedostot poistetaan pysyvästi. Varmista, että tulostiedostot ovat kelvollisia ennen tämän vaihtoehdon käyttöä.
Type: SwitchParameter
DefaultValue: False
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
Ohittaa DNS-debug-lokin otsikkotarkistuksen.
Oletuksena cmdlet tarkistaa, että syötetiedostossa on kelvollinen DNS Server debug -lokin otsikko. Käytä tätä kytkintä käsitelläksesi tiedostoja ilman tarkistusta, mikä voi olla hyödyllistä:
- Muokatuissa tai mukautetuissa lokimuodoissa
- Vianmäärityksessä tarkistusongelmissa
- Ei-standardeissa tai esikäsitellyissä lokeissa
Varoitus: Voi johtaa käsittelyvirheisiin, jos tiedosto ei ole kelvollinen DNS-loki.
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 suoritetaan. Hyödyllinen:
- Ennakkotarkastukseen, mitkä tiedostot käsiteltäisiin
- Tulostiedostopolkujen tarkistamiseen ennen käsittelyä
- Skriptien testaamiseen ennen tuotantokäyttöä
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.
SYÖTTEET
System.String[]
HUOMAUTUKSET
Versio : 1.7.2.1
Tekijä : Andi Bellstedt, Copilot, Patrick Charbonnier (Silent Waters IT Consulting S.L.)
Päiväys : 2026-07-24
Avainsanat : Microsoft Windows Server, DNSServer, DNS, DebugLog, LogParser
LIITTYVÄT LINKIT