Käytännön käyttö toimialueympäristössä (GPO-ohjattu kokoelma ja muunnos)

Tämä esimerkki näyttää, miten toteuttaa GPO-ohjattu työnkulku DNS-vianmäärityslokien keräämiseen ja muuntamiseen toimialueen ohjaimilla.

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

  1. Jokainen DC kirjoittaa DNS-vianmäärityslokit levylle rollover-ominaisuus päällä.
  2. Jokainen DC muuntaa kiertävät *.log-tiedostot data-CSV:ksi ja tilastotiedostoiksi, ja pakkaa tulokset *.zip-muotoon ajastetusti (Task Scheduler).
  3. Tulosteet kirjoitetaan lokitiedostojen viereen, jotta putki pysyy yksinkertaisena.
  4. 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.exe on 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\Scripts
  • C:\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-Module tehtä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: SYSTEM kirjautumistyyppi S4U
  • 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: SYSTEM kirjautumistyyppi InteractiveToken
  • 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 1 jä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\*.zip polkuun \\fileserver\share\dns\$env:COMPUTERNAME\... (myönnä jakamisoikeudet ja NTFS-oikeudet DC:n tietokoneen tileille tai Domain Controllers -ryhmälle, jos tehtävä ajetaan SYSTEM-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ö: -CompressOutput auttaa 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:COMPUTERNAME sisältyy, jotta yhdistetyt aineistot pysyvät jäljitettävinä. Huomaa, että -ComputerName vain 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-SE on valittu tarkoituksella, jotta aikaleimat kirjoitetaan muodossa 2026-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ä (S4U vs InteractiveToken) tai yhdenmukaista ne standardiisi
  • Kansioiden luonti: päätä, luodaanko C:\Administration\Scripts ja C:\Administration\Logs\DNSServer etukäteen muualla vai GPP-kohteilla
  • Polut: varmista, että C:\Administration\Scripts ja C:\Administration\Logs\DNSServer vastaavat 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: