Käytännön käyttö toimialueympäristössä (GPO-ohjattu kokoelma ja muunnos)
For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fi/docs/examples/gpo-driven-collection/index.md.
Tässä dokumentissa esitellään käytännön, päästä päähän -esimerkki DNSServer.DebugLogParserin ajamisesta Active Directory -toimialueympäristössä, keskittyen Windows DNS Serverin vianmäärityslokien muuntamiseen toimialueen ohjaimilla.
Tämän esimerkin mukana on ZIP-arkisto, joka sisältää politiikka-artifaktit työnkulun toteuttamiseen.
Merkittävimmät artifaktit ovat varmuuskopion manifesti, GPO-raportti, Files.xml, Set-DNSServerDebugLogging.ps1 ja ScheduledTasks.xml.
Tilannekuvaus
- Useat toimialueen ohjaimet (DC) isännöivät DNS-palvelinroolia.
- DNS-vianmääritysloki on otettu käyttöön ja konfiguroitu johdonmukaisesti jokaisella DC:llä ajastetun tehtävän avulla (lokitiedostot tallennetaan polkuun
C:\Administration\Logs\DNSServer). - Keskitetysti hallittu prosessi muuntaa lokit CSV-muotoon seuraaviin tarkoituksiin:
- tietoturva-analytiikka
- operatiivinen raportointi
- vianetsintä
- vaatimustenmukaisuus ja säilytys
Tavoitteet
- Johdonmukaiset muunnosasetukset kaikilla DC:illä
- Ennustettava tulostuspaikka ja nimeäminen
- Valinnainen pakkaus tallennustilan säästämiseksi
- Valinnaiset tilastotulosteet nopeisiin päivittäisiin yhteenvedonäkymiin
- Minimiriskit isäntäpuolella, selkeät uudelleenkäynnistys- ja siivouskäytännöt
Suositeltu arkkitehtuuri
Keräysmalli: paikallinen muunnos + keskitetty haku
- Jokainen DC kirjoittaa DNS-vianmäärityslokit levylle rollover-ominaisuus päällä.
- Jokainen DC muuntaa kiertävät
*.log-tiedostot data-CSV:ksi ja tilastotiedostoiksi, ja pakkaa tulokset*.zip-muotoon ajastetusti (Task Scheduler). - Tulosteet kirjoitetaan lokitiedostojen viereen, jotta putki pysyy yksinkertaisena.
- Keskitetty palvelin kerää
*.zip-tulosteet esimerkiksi tiedostojakojen kautta, ajastetulla kopioinnilla, SIEM-välityksellä tai agenttipohjaisella kerääjällä.
Tämä malli minimoi suurten raakalukujen verkon lukemisen ja pitää jäsentämisen lähellä dataa.
GPO-työnkulku
Työnkulku toteutetaan ryhmäkäytännön (Group Policy, tietokoneen asetukset) avulla, jotta asetukset ovat yhdenmukaiset kaikilla toimialueen ohjaimilla.
Tämän repositorion mukana tulee viiteimplementaatio (GPO-raportti):
- Arkisto-/raporttinimi:
T0-C-Analytics-DNSDebugLogging - Varmuuskopion tunniste:
{2B6F16BC-0E7C-4787-83D7-2854FED882EE} - GPO-linkin kohde:
corp.company.com/Domain Controllers - Kohdesuodatin (käytetään sekä tiedostojen käyttöönotossa että ajastetuissa tehtävissä): soveltuu vain, jos
C:\Windows\System32\dns.exeon olemassa
1) Esivaatimukset (kansiot + moduuli)
Toimitettu varmuuskopio olettaa, että seuraavat kansiot ovat jo olemassa. Lisää erilliset GPP-kohteet, jos haluat, että käyttöönotto luo ne automaattisesti:
C:\Administration\ScriptsC:\Administration\Logs\DNSServer
Varmuuskopio olettaa myös, että Convert-DNSDebugLogFile on jo saatavilla DC:illä. Muunnostyö käynnistää Windows PowerShell 5.1:n -NoProfile-asetuksella eikä tuo moduulia eksplisiittisesti, joten moduulin on oltava asennettuna konekohtaisessa Windows PowerShell -moduulipolussa, joka on näkyvissä LocalSystem-tilille. Suositellut tavat:
- Asenna DNSServer.DebugLogParser DC:ille, esimerkiksi PowerShell Gallerysta (jos politiikka sallii).
- Ota moduuli käyttöön sisäisen repositorion tai tiedostojakopalvelimen kautta, jotta se löytyy
$env:PSModulePath-polusta. - Lisää eksplisiittinen
Import-Moduletehtävän toimintaan, jos haluat varmistaa latauksen deterministisesti.
2) Ota käyttöön vianmäärityslokin konfigurointiskripti (GPP Files)
GPO ottaa käyttöön skriptin:
- Lähde (SYSVOLin kautta GPP):
%GptPath%\Preferences\Files\Set-DNSServerDebugLogging.ps1 - Kohde (jokaisella DC:llä):
C:\Administration\Scripts\Set-DNSServerDebugLogging.ps1
Tämä on toteutettu GPP Files -asetuskohteena Files.xml-tiedostossa.
3) Ajastettu tehtävä: konfiguroi DNS-vianmääritysloki
GPO luo ajastetun tehtävän nimeltä Set-DNSServerDebugLogging.
- Turvakonteksti toimitetussa varmuuskopiossa:
SYSTEMkirjautumistyyppiS4U - Laukaisin toimitetussa varmuuskopiossa: päivittäin (aloitusraja
2025-03-01T00:00:01) - Toiminto ScheduledTasks.xml-tiedostossa:
powershell.exe -ExecutionPolicy RemoteSigned -command " & { C:\Administration\Scripts\Set-DNSServerDebugLogging.ps1 }"- Työhakemisto:
C:\Administration\Scripts
Linkitetty Set-DNSServerDebugLogging.ps1-skripti konfiguroi DNS-vianmäärityslokin komentoja Get-DnsServerDiagnostics / Set-DnsServerDiagnostics käyttäen ja erityisesti:
- Ottaa käyttöön lokituksen tiedostoon + rolloverin
- Kirjoittaa tiedostoon:
C:\Administration\Logs\DNSServer\DnsDebugLog_<COMPUTERNAME>.<Domain>_.log - Käyttää 10 Mt:n rollover-kokoa per tiedosto
- Tallentaa pääasiassa kyselyihin liittyvää toimintaa (kyselyt + ilmoitukset + päivitykset + kyselytapahtumat) ja sulkee pois täydellisen pakettitason lokituksen
4) Ajastettu tehtävä: muunna kiertävät vianmäärityslokit pakatuiksi CSV-tiedostoiksi
GPO luo ajastetun tehtävän nimeltä Convert-DNSDebugLogs.
- Turvakonteksti toimitetussa varmuuskopiossa:
SYSTEMkirjautumistyyppiInteractiveToken - Laukaisin toimitetussa varmuuskopiossa: päivittäin (aloitusraja
2026-01-01T00:30:00) - Työhakemisto:
C:\Administration\Logs\DNSServer - Toiminto ScheduledTasks.xml-tiedostossa (muotoiltu luettavuuden vuoksi):
Get-ChildItem .\*.log |
Sort-Object lastwritetime, Name -Descending |
Select-Object -Skip 1 |
Convert-DNSDebugLogFile `
-ComputerName $env:COMPUTERNAME `
-Delimiter ';' `
-OutputType Both `
-ContextFilter Packet `
-OutputCulture sv-SE `
-CompressOutput
Suunnittelumuistiinpanot:
Select-Object -Skip 1jättää tietoisesti käsittelemättä uusimman (aktiivisen) lokitiedoston. Convert-DNSDebugLogFile pystyy lukemaan lokin, jonka DNS Server on tällä hetkellä auki, mutta tiedosto muuttuu lukemisen aikana: tuloste voi jäädä puutteelliseksi tai päättyä katkaistuun tietueeseen, ja kaksi ajoa eivät tuota identtisiä tuloksia. Aktiivisen tiedoston ohittaminen pitää ajastetun tulosteen toistettavana.- Tämä tarkoittaa, että nykyiset tiedot viedään vain rolloverin jälkeen; pienemmällä kuormituksella DC:llä aktiivinen loki voi jäädä käsittelemättä yli päivän. Pienennä rollover-kokoa, jos viive on liian pitkä käyttötapaukseesi.
- Koska Convert-DNSDebugLogFile käyttää oletuksena
-OutputFile-asetusta “sama kansio, sama nimi,.csv”, tulosteet sijoittuvat*.log-tiedostojen viereen. -CompressOutput-asetuksella jokainen käsitelty loki tuottaa*.zip-tiedoston ja väliaikaiset CSV:t poistetaan.- Ellet arkistoi tai poista käsiteltyjä
*.log-tiedostoja, myöhemmät ajot käsittelevät kaikki ei-aktiiviset lokit uudelleen. - Tehtävä heittää virheen, jos
$Error.Count -gt 0, merkiksi epäonnistuneesta ajosta.
5) Keskitetty keräys
Vaihtoehdot (valitse yksi):
- Tiedostojakojen keräys: DC kirjoittaa (tai kopioi)
C:\Administration\Logs\DNSServer\*.zippolkuun\\fileserver\share\dns\$env:COMPUTERNAME\...(myönnä jakamisoikeudet ja NTFS-oikeudet DC:n tietokoneen tileille tai Domain Controllers -ryhmälle, jos tehtävä ajetaanSYSTEM-tilillä) - Haku-malli: keskitetty työ lukee
\\dc\C$\Administration\Logs\DNSServer\*.zip(vähiten suositeltu; vaatii hallintajakamiset) - Agentin välitys: SIEM- tai lokiputki, joka lähettää
*.zip-tulosteet
Käyttöön liittyvät huomioitavat asiat
- Vähimmän oikeuden periaate: tehtävät ajetaan
SYSTEM-tilillä; varmista, että paikalliset kansiot ovat kirjoitettavissa ja että UNC-kohteet myöntävät pääsyn tietokoneen tilille, jos niitä käytetään. - Allekirjoituspolitiikka: molemmat tehtävät käyttävät
-ExecutionPolicy RemoteSigned; allekirjoita tai poista estot käyttöön otetusta skriptistä ja moduulista politiikkasi mukaisesti. - Levyn käyttö:
-CompressOutputauttaa merkittävästi, mutta tämä työnkulku ei poista lähdelokeja; suunnittele säilytys ja siivous. - Uudelleenkäsittely: ellet arkistoi tai poista käsiteltyjä lokitiedostoja, muunnostyö käsittelee kaikki ei-aktiiviset
*.log-tiedostot uudelleen myöhemmillä ajoilla. Tämä on yksinkertaista ja luotettavaa, mutta voi ylikirjoittaa tulosteita ja aiheuttaa kaksoiskeräystä, jos kerääjä ei poista duplikaatteja. - Usean DC:n yhdistäminen:
-ComputerName $env:COMPUTERNAMEsisältyy, jotta yhdistetyt aineistot pysyvät jäljitettävinä. Huomaa, että-ComputerNamevain merkitsee tulosteen — se ei tee etäyhteyttä. - Verkkotiedostojako: Convert-DNSDebugLogFile pystyy lukemaan lähdelokit SMB/UNC-poluilta, mutta paikallinen muunnos ja pakattujen tulosten lähetys on parempi malli suurille raakalukuille. Jos käytät UNC-polkuja, muista, että
SYSTEM-tilillä ajettava tehtävä todentaa verkossa tietokoneen tilinä ja tarvitsee jakamis- ja NTFS-oikeudet. - Päivämäärämuoto:
-OutputCulture sv-SEon valittu tarkoituksella, jotta aikaleimat kirjoitetaan muodossa2026-01-20 23:00:16. Tämä muoto tunnistetaan ilman vihjettä SQL Serverissä, Power BI:ssä ja useimmissa tuontityökaluissa, riippumatta DC:n paikallisesta asetuksesta. - Validointi: otsikkotarkistus on päällä, koska tehtävä ei käytä
-SkipHeaderValidation-asetusta (suositeltavaa).
Varmista ja mukauta (ZIP:n avulla)
Käytä ZIP-arkistoa viiteimplementaationa ja sovita seuraavat asiat ympäristöösi:
- Kohdealue: mitkä DC:t / OU:t saavat politiikan
- Suoritusidentiteetti: varmista, että molemmat ajastetut tehtävät käyttävät haluttua kirjautumistyyppiä (
S4UvsInteractiveToken) tai yhdenmukaista ne standardiisi - Kansioiden luonti: päätä, luodaanko
C:\Administration\ScriptsjaC:\Administration\Logs\DNSServeretukäteen muualla vai GPP-kohteilla - Polut: varmista, että
C:\Administration\ScriptsjaC:\Administration\Logs\DNSServervastaavat standardeja - Säilytys: päätä, säilytetäänkö raakalokitus ja kuinka pitkään (erityisesti, jos siivousvaihtoehdot otetaan käyttöön)
- Keräys: varmista, mihin CSV/ZIP-tulosteet kirjoitetaan ja miten ne kerätään keskitetysti
Jos haluat tarkistaa tarkan GPO-konfiguraation ilman tuontia, tämän repositorion auktoritatiiviset lähteet ovat:
- manifest.xml varmuuskopion metatiedot
- gpreport.xml ihmisen luettava täydellinen raportti
- Files.xml tiedostojen käyttöönotto
- Set-DNSServerDebugLogging.ps1 skriptin sisältö
- ScheduledTasks.xml ajastetut tehtävät