Version 1.2.0.0 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot.

Käytännön käyttö Domain-ympäristössä (GPO-ohjattu keräys ja muunnos)

Tämä esimerkki havainnollistaa, miten toteuttaa GPO-ohjattu työnkulku DNS-debug-lokien keräämiseksi ja muuntamiseksi toimialueen ohjaimilla.

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /v1.2.0.0/fi/docs/examples/gpo-driven-collection/index.md.

Tässä dokumentissa esitellään käytännön, kokonaisvaltainen esimerkki DNSServer.DebugLogParserin suorittamisesta Active Directory -toimialueympäristössä, keskittyen Windows DNS Serverin debug-lokien muuntamiseen toimialueen ohjaimilla.

Tämän esimerkin mukana tulee ZIP-arkisto, joka sisältää politiikan artefaktit työnkulun toteuttamiseksi.
Merkittävimmät artefaktit ovat varmuuskopion manifesti, GPO-raportti, Files.xml, Set-DNSServerDebugLogging.ps1 ja ScheduledTasks.xml.

Tilannekuvaus

  • Useat toimialueen ohjaimet (DC:t) isännöivät DNS Server -roolia.
  • DNS-debug-lokitus 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 käyttötarkoituksiin:
    • tietoturva-analytiikka
    • operatiivinen raportointi
    • vianmääritys
    • vaatimustenmukaisuus ja säilytys

Tavoitellut tulokset

  • Johdonmukaiset muunnosasetukset kaikilla DC:illä
  • Ennustettava tulostiedostojen sijainti ja nimeäminen
  • Valinnainen pakkaus tallennustilan säästämiseksi
  • Valinnaiset tilastotulosteet nopeisiin päivittäisiin yhteenvedonäkymiin
  • Minimissään isäntäkoneen riski, selkeät uudelleensuoritus- ja siivouskäytännöt

Ehdotettu arkkitehtuuri

Keräysmalli: paikallinen muunnos + keskitetty haku

  1. Jokainen DC kirjoittaa DNS-debug-lokit levyelle rollover-ominaisuus päällä.
  2. Jokainen DC muuntaa kiertävät *.log-tiedostot data-CSV:ksi ja tilastojen CSV:ksi, minkä jälkeen pakkaa tulokset *.zip-muotoon ajastetusti (Task Scheduler).
  3. Tulosteet kirjoitetaan samalle kansiolle lokien 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 lukemisen verkon yli ja pitää jäsentämisen lähellä dataa.

GPO-työnkulku

Työnkulku toteutetaan Group Policyllä (tietokoneen konfiguraatio) varmistaakseen johdonmukaiset asetukset kaikilla toimialueen ohjaimilla.

Tämän repositorion mukana tuleva viiteimplementaatio (GPO-raportti):

  • Arkisto/raportin nimi: 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 jakeluun että ajastettuihin tehtäviin): 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ä. Muunnostehtävä 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 Gallerystä (jos politiikka sallii).
  • Ota moduuli käyttöön sisäisen repositorion tai tiedostojakopalvelun kautta, jotta se löytyy $env:PSModulePath-polusta.
  • Lisää eksplisiittinen Import-Module tehtävän toimintaan, jos haluat varman latauskäytöksen.

2) Debug-lokituksen konfigurointiskriptin käyttöönotto (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ä: DNS-debug-lokituksen konfigurointi

GPO luo ajastetun tehtävän nimeltä Set-DNSServerDebugLogging.

  • Käyttöoikeus kontekstissa 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-debug-lokituksen Get-DnsServerDiagnostics / Set-DnsServerDiagnostics -komentojen avulla ja erityisesti:

  • Ottaa käyttöön tiedostoon lokituksen + 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 koko pakettien lokituksen

4) Ajastettu tehtävä: kiertävien debug-lokien muuntaminen pakatuiksi CSV-tiedostoiksi

GPO luo ajastetun tehtävän nimeltä Convert-DNSDebugLogs.

  • Käyttöoikeus kontekstissa 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ää tarkoituksella käsittelemättä uusimman (aktiivisen) lokitiedoston.
  • Tämä tarkoittaa, että nykyiset tiedot viedään vain rolloverin jälkeen; matalan volyymin DC:illä aktiivinen loki voi jäädä käsittelemättä yli päivän.
  • Koska Convert-DNSDebugLogFile oletuksena asettaa -OutputFile arvoksi ”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 suorituksesta.

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 / lokiputki, joka lähettää *.zip-tulosteet

Käyttöönottokäytännöt

  • 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äsittelykäytös: ellet arkistoi tai poista käsiteltyjä lokitiedostoja, muunnostehtävä käsittelee jokaisen ei-aktiivisen *.log-tiedoston uudelleen myöhemmillä ajoilla. Tämä on yksinkertaista ja luotettavaa, mutta voi ylikirjoittaa tulosteita ja aiheuttaa kaksoiskirjauksia, jos kerääjä ei poista duplikaatteja.
  • Usean DC:n yhdistäminen: -ComputerName $env:COMPUTERNAME sisältyy, jotta yhdistetyistä aineistoista säilyy jäljitettävyys.
  • Validointi: otsikkotarkistus on edelleen käytössä, koska tehtävä ei käytä -SkipHeaderValidation (suositeltavaa).

Vahvista ja mukauta (ZIP-arkiston 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 tarkoitettua kirjautumistyyppiä (S4U vs InteractiveToken) tai yhdenmukaista ne standardiisi
  • Kansioiden luonti: päätä, luodaanko C:\Administration\Scripts ja C:\Administration\Logs\DNSServer muualla valmiiksi vai luodaanko ne lisä-GPP-kohteilla
  • Polut: varmista, että C:\Administration\Scripts ja C:\Administration\Logs\DNSServer vastaavat käytäntöjäsi
  • Säilytys: päätä, säilytetäänkö raakalokitus ja kuinka pitkään (erityisesti jos otat käyttöön siivousvaihtoehdot)
  • Keräys: varmista, minne CSV/ZIP-tulosteet kirjoitetaan ja miten ne kerätään keskitetysti

Jos haluat vahvistaa tarkan GPO-konfiguraation ilman tuontia, tämän repositorion auktoritatiiviset lähteet ovat: