Parametrit ja valinnat
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fi/docs/03-parameters-and-options/index.md.
Tällä sivulla selitetään valinnat selkokielellä ja siinä järjestyksessä, jossa niitä yleensä tarvitset. Tämä on opas, ei spesifikaatio — virallinen, aina ajan tasalla oleva parametrilista löytyy komentoviitteestä ja komennolla:
Get-Help Convert-DNSDebugLogFile -Full
Lyhyt versio
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log"
Tuo yksittäinen rivi antaa jo järkevän toiminnan: sekä data- että tilastotiedostot, puolipiste erotinmerkkinä, koneesi päivämäärämuoto, otsikon tarkistus päällä, lähdeloki koskemattomana. Kaikki alla oleva on hienosäätöä.
| Valinta | Oletus | Muuta kun |
|---|---|---|
-InputFile | (pakollinen) | aina |
-OutputFile | syötetiedoston polku .csv-päätteellä | haluat tulosteen muualle |
-Delimiter | ; | kuluttajasi odottaa pilkkua, tabulaattoria tai putkea |
-ComputerName | tyhjä | yhdistät lokeja useammalta palvelimelta |
-OutputType | Both | haluat vain datan tai vain yhteenvedot |
-ContextFilter | All | kiinnostaa vain varsinainen DNS-liikenne |
-InputCulture | nykyinen kulttuuri | loki on peräisin palvelimelta, jolla on eri alueasetus |
-OutputCulture | nykyinen kulttuuri | kone lukee CSV:n |
-NoDetailsParsing | pois päältä | läpimenolla on väliä enemmän kuin pakettien sisällöllä |
-CompressOutput | pois päältä | arkistoit tai siirrät tulokset |
-RemoveSourceFile | pois päältä | ajastettu siivous ja luotat tulokseen |
-SkipHeaderValidation | pois päältä | tiedosto on validi mutta otsikko on epätavallinen |
Syöte ja tuloste
-InputFile
Polku muunnettavaan lokiin. Ottaa taulukon ja putkisyötteen — siksi tämä toimii:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" | Convert-DNSDebugLogFile
Get-ChildItem tuottaa objekteja, joilla on FullName-ominaisuus, ja -InputFile hyväksyy sen ominaisuuden nimellä (alias-nimet ovat mm. FullName, Path, FilePath). Ei tarvita ForEach-Object-komentoa.
Paikalliset polut ja SMB/UNC-polut toimivat molemmat:
Convert-DNSDebugLogFile -InputFile "\\dc01\C$\Administration\Logs\DNSServer\dns.log"
Komento voi myös avata lokin, jonka DNS-palvelin on parhaillaan auki. Katso aktiiviset lokit alta ennen kuin luotat tähän.
-OutputFile
Ilman tätä CSV-tiedosto sijoittuu syötetiedoston viereen, sama perusnimi ja .csv-päätteellä. Tämän kanssa hallitset kohteen.
-OutputFile "D:\Processed\" ei tarkoita “kirjoita tähän kansioon”. Anna koko polku tiedostonimen kanssa: -OutputFile "D:\Processed\dns_data.csv".
Tämä tarkoittaa myös, että -OutputFile ei ole järkevä, kun putkitat monta tiedostoa — jokainen muunnos kirjoittaisi samaan kohteeseen. Eräajoissa jätä se pois ja anna jokaisen lokin tuottaa oma CSV.
-Delimiter
Oletuksena puolipiste, koska maissa, joissa pilkku on desimaalierotin, Excel odottaa sitä. Käytä -Delimiter "," työkaluissa ja tietokannoissa, jotka olettavat perinteisen pilkulla erotetun arvon, tai -Delimiter "`t" tabulaattorille.
Minkä tahansa valitsetkin, käytä samaa arvoa tuonnissa. Virheellinen erotin on yleisin syy siihen, että kaikki päätyy yhteen sarakkeeseen.
Merkintä ja suodatus
-ComputerName
Täyttää ComputerName-sarakkeen. Sarake on olemassa joka tapauksessa; tämä vain antaa sille arvon.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ComputerName $env:COMPUTERNAME
Nimestään (ja alias-nimistä -Server / -DNSServer / -HostName) huolimatta -ComputerName ei muodosta yhteyttä mihinkään. Ei WinRM:ää, ei etäajoa. Se vain kirjoittaa tunnisteen tulosteeseen. Etälokin lukemiseksi osoita -InputFile UNC-polkuun.
Aseta se aina, kun useampi palvelin syöttää samaan aineistoon — muuten et jälkikäteen tiedä, mistä DC:stä rivi on peräisin.
-OutputType
CSV— vain datatiedostoStatistic— vain kaksi yhteenvedotiedostoa, ei rivikohtaista dataaBoth— kaikki kolme tiedostoa (oletus)
Statistic on nopea, pieni vaihtoehto, kun tarvitset vain päivittäiset trendit. CSV on oikea, kun jälkikäsittelyjärjestelmä tekee oman yhteenvedon.
-ContextFilter
DNS-debug-loki sekoittaa varsinaisen kyselyliikenteen palvelimen sisäiseen jutteluun. -ContextFilter päättää, mikä päätyy tulosteeseen.
# vain oikea DNS-liikenne
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet
# liikenne plus palvelintapahtumat, mutta ei diagnostiikkamuistiinpanoja
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -ContextFilter Packet, Event
| Arvo | Sisältää |
|---|---|
All | kaiken (oletus) |
Packet | DNS-kyselyt ja vastaukset — data, jota useimmat analyysit tarvitsevat |
Event | palvelintapahtumat, esim. “DNS-palvelin on käynnistynyt” |
Note | diagnostiikkamuistiinpanot ja varoitukset, esim. socket-virheet |
Lisää kontekstityyppejä (DSPoll, Init, Lookup, Recurse, Remote, Tombstone) näkyy All-valinnassa.
Suodatus Event- tai Note-arvoon täyttää vain DateTime, ThreadId, Context ja Information -sarakkeet — protokollasarake jää tyhjäksi, koska näissä merkinnöissä ei ole sitä tietoa.
-ContextFilter Packet on tavallinen valinta turvallisuus- ja raportointiputkissa: se poistaa kohinan ja pienentää tulostetta merkittävästi.
Kansainväliset lokit
DNS-palvelin kirjoittaa aikaleimat koneen Windowsin alueasetuksen mukaan. Saksalainen DC kirjoittaa 20.01.2026 23:00:16; yhdysvaltalainen palvelin 1/20/2026 11:00:16 PM. Jos työaseman alueasetus poikkeaa palvelimesta, jäsentäminen menee pieleen — tai vielä pahempaa, päivä ja kuukausi vaihtuvat hiljaisesti.
-InputCulture
Kerro jäsentäjälle, mitä alueasetusta lähdeloki käyttää:
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns-berlin.log" -InputCulture 'de-DE'
| Kulttuuri | Lokin aikaleiman muoto |
|---|---|
de-DE | PP.KK.VVVV HH:MM:SS |
en-US | K/P/VVVV H:MM:SS AM/PM |
en-GB | PP/KK/VVVV HH:MM:SS |
sv-SE | VVVV-KK-PP HH:MM:SS |
Oletuksena on komentoa ajavan istunnon kulttuuri. Sekakulttuurisessa ympäristössä aseta se eksplisiittisesti äläkä luota oletukseen — ja muista, että ajastettu tehtävä, joka pyörii SYSTEM-tilassa, ei välttämättä käytä samaa kulttuuria kuin interaktiivinen testi.
-OutputCulture
Ohjaa, miten aikaleimat kirjoitetaan CSV:hen:
# ISO-tyylinen tuloste, jonka SQL Server, Power BI ja pandas ymmärtävät
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
# sama vaikutus, eksplisiittinen invariantti kulttuuri
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" `
-OutputCulture ([System.Globalization.CultureInfo]::InvariantCulture)
Nyrkkisääntö: jos ihminen avaa tiedoston Excelissä, käytä paikallista kulttuuria. Jos kone lukee sen, käytä sv-SE tai invarianttia kulttuuria ja älä murehdi alueasetuksista tuonnissa.
Nämä kaksi parametria ovat toisistaan riippumattomia — voit lukea ruotsalaisen lokin ja kirjoittaa yhdysvaltalaismuotoisen tulosteen.
Nopeus ja tallennus
-NoDetailsParsing
Jos DNS-palvelin kirjaa täydelliset pakettitiedot, jäsentäjä muuntaa jokaisen yksityiskohtablokin JSON-muotoon Details-sarakkeessa. Se on hyödyllistä, mutta myös kallein osa suoritusta ja kasvattaa CSV:tä.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -NoDetailsParsing
Sarake pysyy paikallaan mutta on tyhjä; TCP/UDP-yksityiskohtien otsikkorivi on edelleen Information-sarakkeessa. Yksityiskohtia sisältävissä lokeissa tämä voi lyhentää käsittelyaikaa 30–50 %. Käytä aina kun riittää kyselytason tiedot.
-CompressOutput
Pakkaa luodut CSV-tiedostot zip-muotoon ja poistaa purkamattomat tiedostot. dns.log tuottaa dns.zip-tiedoston dns.csv sijaan.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput
Tämän muotoiset CSV:t pakkaantuvat tyypillisesti yli 90 %, joten tämä on lähes ilmaista tallennustilansäästöä arkistoihin ja tiedostojen siirtoon verkon yli.
-RemoveSourceFile
Poistaa lähdetiedoston .log onnistuneen muunnoksen jälkeen — loki poistetaan vain, jos kaikki tulostiedostot luotiin.
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -CompressOutput -RemoveSourceFile
Roska-astia puuttuu. Varmista tulos oikeilla lokeilla ennen kuin otat tämän käyttöön ajastetussa tehtävässä, äläkä koskaan osoita sitä aktiiviseen lokitiedostoon.
Komento kieltäytyy tarkoituksella yhdistämästä -RemoveSourceFile- ja -SkipHeaderValidation-valintoja, joten et voi poistaa tiedostoa, jota ei ole vahvistettu DNS-lokiksi.
Turvaverkot
-SkipHeaderValidation
Oletuksena komento tarkistaa, että tiedosto on todella DNS-palvelimen debug-loki ennen jäsentämistä. Tämä estää klassisen virheen, jossa työ ajoitetaan väärään kansioon.
Kytke pois päältä vain aidosti epätavallisissa tapauksissa: käsin muokatut lokit, esisuodatetut otteet, mukautetut muodot. Pidä päällä muualla — se on halpa tarkistus ja erottaa kirjoitusvirheen ja roskarivit.
-WhatIf ja -Confirm
Komento tukee molempia. -WhatIf on oikea tapa nähdä, mihin uusi eräajo koskisi:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Convert-DNSDebugLogFile -RemoveSourceFile -WhatIf
-Confirm kysyy vahvistuksen ennen jokaisen tiedoston käsittelyä, lähdetiedoston poistoa ja olemassa olevan tulosteen ylikirjoitusta.
Aktiiviset lokit
Convert-DNSDebugLogFile voi lukea tiedoston, jonka DNS-palvelin on auki. Kätevä satunnaiseen katsaukseen siitä, mitä juuri nyt tapahtuu.
Aktiivinen loki muuttuu sitä luettaessa. Tuloste voi jäädä vaille muunnoksen aikana kirjoitettuja merkintöjä ja sen viimeinen rivi voi olla katkennut. Toistuva ajo antaa eri tuloksen.
Toistettavan tuloksen saamiseksi ota DNS-palvelimella käyttöön lokin kierto ja muunna vain suljetut, kiertoon siirretyt tiedostot — esimerkiksi ohittamalla uusin:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME
Yhdistämällä kaikki
Tyypillinen tuotantokutsu toimialueen ohjaimella:
Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile `
-ComputerName $env:COMPUTERNAME `
-Delimiter ';' `
-OutputType Both `
-ContextFilter Packet `
-OutputCulture 'sv-SE' `
-CompressOutput
Tulkinta: ota jokainen kiertoon siirretty loki paitsi aktiivinen, pidä vain DNS-liikenne, merkitse jokainen rivi palvelimen nimellä, kirjoita koneen luettavat aikaleimat ja jätä pakatut arkistot jäljelle. Täydellinen ajastetun tehtävän ja ryhmäkäytännön versio tästä löytyy GPO-ohjatusta keräysesimerkistä.