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

Utilisation pratique dans un environnement de domaine (collecte et conversion pilotées par GPO)

Cet exemple montre comment mettre en œuvre un flux de travail piloté par GPO pour collecter et convertir les journaux de débogage DNS sur les contrôleurs de domaine.

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

Ce document présente un exemple pratique et complet d’exécution de DNSServer.DebugLogParser dans un environnement de domaine Active Directory, axé sur la conversion des journaux de débogage du serveur DNS Windows sur les contrôleurs de domaine.

Cet exemple est accompagné d’une archive ZIP, qui fournit les artefacts de stratégie utilisés pour mettre en œuvre le flux de travail décrit ici.
Les artefacts les plus pertinents sont le manifest de sauvegarde, le rapport GPO, le Files.xml, le Set-DNSServerDebugLogging.ps1, et le ScheduledTasks.xml.

Scénario

  • Plusieurs contrôleurs de domaine (DC) hébergent le rôle de serveur DNS.
  • La journalisation de débogage DNS est activée et configurée de manière cohérente sur chaque DC via une tâche planifiée (écriture des fichiers journaux dans C:\Administration\Logs\DNSServer).
  • Un processus centralisé convertit les journaux en CSV pour :
    • l’analyse de sécurité
    • les rapports opérationnels
    • le dépannage
    • la conformité/la rétention

Résultats visés

  • Paramètres de conversion cohérents sur tous les DC
  • Emplacement et nommage de sortie prévisibles
  • Compression optionnelle pour réduire l’espace de stockage
  • Sorties statistiques optionnelles pour des synthèses quotidiennes rapides
  • Risque minimal côté hôte, avec des considérations explicites de relance et de nettoyage

Architecture suggérée

Modèle de collecte : conversion locale + extraction centrale

  1. Chaque DC écrit les journaux de débogage DNS sur disque avec rotation activée.
  2. Chaque DC convertit les fichiers *.log archivés en CSV de données et CSV statistiques, puis compresse les sorties en *.zip selon un planning (Planificateur de tâches).
  3. Les sorties sont écrites à côté des fichiers journaux pour garder le pipeline simple.
  4. Un serveur central collecte les sorties *.zip, par exemple via ingestion par partage de fichiers, copie planifiée, agent SIEM ou collecteur basé sur agent.

Ce modèle minimise les lectures réseau de gros fichiers journaux bruts et maintient l’analyse proche des données.

Flux de travail GPO

Le flux de travail est mis en œuvre via la stratégie de groupe (configuration ordinateur) pour garantir des paramètres cohérents sur tous les contrôleurs de domaine.

Implémentation de référence incluse dans ce dépôt (rapport GPO) :

  • Nom de l’archive/rapport : T0-C-Analytics-DNSDebugLogging
  • ID de sauvegarde : {2B6F16BC-0E7C-4787-83D7-2854FED882EE}
  • Cible du lien GPO : corp.company.com/Domain Controllers
  • Filtre d’élément (utilisé pour le déploiement de fichiers et les tâches planifiées) : s’applique uniquement si C:\Windows\System32\dns.exe existe

1) Prérequis (dossiers + module)

La sauvegarde fournie suppose que ces dossiers existent déjà. Ajoutez des éléments GPP séparés si vous souhaitez que le déploiement les crée automatiquement :

  • C:\Administration\Scripts
  • C:\Administration\Logs\DNSServer

La sauvegarde fournie suppose également que Convert-DNSDebugLogFile est déjà disponible sur les DC. La tâche de conversion lance Windows PowerShell 5.1 avec -NoProfile et n’importe pas explicitement le module, donc le module doit être installé dans un chemin de module Windows PowerShell machine-wide visible par LocalSystem. Approches recommandées :

  • Installer DNSServer.DebugLogParser sur les DC, par exemple depuis PowerShell Gallery (si la politique le permet).
  • Déployer le module via un dépôt interne / partage de fichiers pour qu’il soit détectable dans $env:PSModulePath
  • Ajouter un Import-Module explicite dans l’action de la tâche si vous souhaitez un chargement déterministe

2) Déployer le script de configuration de la journalisation de débogage (GPP Fichiers)

La GPO déploie le script :

  • Source (dans SYSVOL via GPP) : %GptPath%\Preferences\Files\Set-DNSServerDebugLogging.ps1
  • Cible (sur chaque DC) : C:\Administration\Scripts\Set-DNSServerDebugLogging.ps1

Ceci est implémenté dans l’élément de préférence GPP Fichiers dans Files.xml.

3) Tâche planifiée : configurer la journalisation de débogage DNS

La GPO crée une tâche planifiée nommée Set-DNSServerDebugLogging.

  • Contexte de sécurité dans la sauvegarde fournie : SYSTEM avec type de connexion S4U
  • Déclencheur dans la sauvegarde fournie : quotidien (heure de début 2025-03-01T00:00:01)
  • Action dans ScheduledTasks.xml :
    • powershell.exe -ExecutionPolicy RemoteSigned -command " & { C:\Administration\Scripts\Set-DNSServerDebugLogging.ps1 }"
    • Répertoire de travail : C:\Administration\Scripts

Le script Set-DNSServerDebugLogging.ps1 configure la journalisation de débogage DNS via Get-DnsServerDiagnostics / Set-DnsServerDiagnostics et notamment :

  • Active la journalisation dans un fichier + rotation
  • Écrit dans : C:\Administration\Logs\DNSServer\DnsDebugLog_<COMPUTERNAME>.<Domain>_.log
  • Utilise une taille de rotation de 10 Mo par fichier
  • Capture principalement l’activité liée aux requêtes (requêtes + notifications + mises à jour + transactions de questions) et exclut la journalisation complète des paquets

4) Tâche planifiée : convertir les journaux de débogage archivés en CSV compressé

La GPO crée une tâche planifiée nommée Convert-DNSDebugLogs.

  • Contexte de sécurité dans la sauvegarde fournie : SYSTEM avec type de connexion InteractiveToken
  • Déclencheur dans la sauvegarde fournie : quotidien (heure de début 2026-01-01T00:30:00)
  • Répertoire de travail : C:\Administration\Logs\DNSServer
  • Action dans ScheduledTasks.xml (formaté pour lisibilité) :
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

Notes de conception :

  • Select-Object -Skip 1 évite intentionnellement de traiter le fichier journal le plus récent (actif).
  • Cela signifie que les données actuelles ne sont exportées qu’après rotation ; sur des DC à faible volume, le journal actif peut rester non traité pendant plus d’un jour.
  • Parce que Convert-DNSDebugLogFile utilise par défaut -OutputFile « même dossier, même nom, .csv », les sorties se trouvent à côté des entrées *.log.
  • Avec -CompressOutput, chaque journal traité produit un *.zip et les CSV intermédiaires sont supprimés.
  • À moins d’archiver ou supprimer les fichiers *.log traités, les exécutions ultérieures retraiteront chaque journal non actif.
  • La tâche génère une erreur si $Error.Count -gt 0 pour signaler un échec.

5) Ingestion centrale

Options (choisir une) :

  • Ingestion par partage de fichiers : le DC écrit (ou copie) C:\Administration\Logs\DNSServer\*.zip vers \\fileserver\share\dns\$env:COMPUTERNAME\... (accorder les droits de partage et NTFS aux comptes ordinateurs DC ou au groupe Domain Controllers si la tâche s’exécute en SYSTEM)
  • Modèle pull : un job central lit \\dc\C$\Administration\Logs\DNSServer\*.zip (moins préféré ; nécessite les partages admin)
  • Agent forwarder : SIEM / pipeline de logs qui expédie les sorties *.zip

Considérations opérationnelles

  • Moindre privilège : les tâches s’exécutent en SYSTEM ; assurez-vous que les dossiers locaux sont accessibles en écriture et que toute cible UNC accorde l’accès au compte ordinateur si utilisée.
  • Politique de signature : les deux tâches utilisent -ExecutionPolicy RemoteSigned ; signez ou débloquez le script et le module déployés selon votre politique.
  • Utilisation disque : -CompressOutput aide significativement, mais ce flux de travail ne supprime pas les journaux sources ; planifiez la rétention et le nettoyage.
  • Comportement de retraitement : sauf archivage ou suppression des journaux traités, la tâche de conversion retraitera chaque fichier *.log non actif lors des exécutions ultérieures. C’est simple et robuste, mais cela peut écraser les sorties et créer des doublons en aval si votre collecteur ne déduplique pas.
  • Consolidation multi-DC : -ComputerName $env:COMPUTERNAME est inclus pour que les jeux de données consolidés restent traçables.
  • Validation : la validation des en-têtes reste activée car la tâche n’utilise pas -SkipHeaderValidation (recommandé).

Valider et adapter (avec le ZIP)

Utilisez l’archive ZIP comme implémentation de référence, puis alignez les aspects suivants à votre environnement :

  • Portée cible : quels DC / OU reçoivent la stratégie
  • Identité d’exécution : confirmez que les deux tâches planifiées utilisent le type de connexion prévu (S4U vs InteractiveToken) ou normalisez-les selon votre standard
  • Création des dossiers : décidez si C:\Administration\Scripts et C:\Administration\Logs\DNSServer sont pré-créés ailleurs ou doivent être créés par des éléments GPP supplémentaires
  • Chemins : confirmez que C:\Administration\Scripts et C:\Administration\Logs\DNSServer correspondent à vos standards
  • Rétention : décidez de conserver ou non les journaux bruts et pour combien de temps (surtout si vous activez les options de nettoyage)
  • Ingestion : confirmez où les sorties CSV/ZIP sont écrites et comment elles sont collectées centralement

Si vous souhaitez valider la configuration exacte de la GPO sans l’importer, les sources officielles dans ce dépôt sont :