15/11/2024

Stratégie de groupe

GPOZaurr, l’outil ultime pour analyser vos stratégies de groupe

I. Présentation

En environnement Active Directory, les stratégies de groupe jouent un rôle dans l'administration et la sécurisation des postes de travail et des serveurs. Néanmoins, au fil des années, elles sont susceptibles de s'accumuler et l'équipe IT peut finir par perdre le contrôle sur leurs GPO et ne plus avoir une bonne visibilité sur le rôle de chacune d'elle... Au point, de se retrouver avec des GPO en double, des GPO vides, des GPO avec des permissions incorrectes, ou tout simplement des GPO mal configurées. D'ailleurs, tôt ou tard, ceci pourrait être à l'origine d'un problème avec l'une de vos stratégies de groupe...

Nous pouvons dire que l'administration des GPO est un véritable défi, surtout quand elles sont nombreuses et gérées par plusieurs personnes. Dans ce tutoriel, nous allons découvrir l'outil GPOZaurr, qui pourra vous venir en aide puisque ce module PowerShell va analyser l'intégralité de vos GPO et vous générer un joli rapport que vous pourrez ensuite analyser.

Il sera d'une aide précieuse à celles et ceux qui ont la volonté de faire du tri dans leurs GPO, mais également si vous cherchez à investiguer sur un problème de stratégies de groupe. Nous pourrions même dire que GPOZaurr permet de faire un audit des GPO. En complément, vous pouvez lire cet article :

II. Les vérifications effectuées par GPOZaurr

Lorsque nous allons exécuter un audit avec GPOZaurr, l'outil va vérifier près d'une vingtaine de points de configuration et anomalies potentielles. Par exemple :

  • Détection des GPO "cassées", c'est-à-dire des GPO qui sont présentes dans l'Active Directory mais qui ne sont plus dans SYSVOL, ou inversement. Ceci crée des GPO orphelines qui ne fonctionneront pas.
  • Détection des liens de GPO "cassés, c'est-à-dire que la GPO a été supprimée, mais qu'une ou plusieurs liaisons n'ont pas été correctement supprimés.
  • Détection des problèmes et des incohérences sur les permissions de GPO.
  • Détection des GPO dupliquées.
  • Détection des GPO vides.
  • Détection des GPO avec une section désactivée alors qu'il y a des paramètres configurés
  • Détection des mots de passe dans les GPO.
  • Inventorier tous les fichiers présents dans le SYSVOL, ce qui permettra de faciliter la détection de fichiers inutiles et/ou malveillants.
  • Inventorier toutes les unités d'organisation dont l'héritage est bloqué et vérifier le nombre d'utilisateurs ou d'ordinateurs concernés.
  • Catégorisation des GPO, en fonction des paramètres configurés.
  • Vérification des autorisations sur le partage NetLogon.
  • Détection de fichiers ADM (legacy) dans le SYSVOL.

Il fournira aussi un rapport complet sur l'ensemble de vos GPOs permettant d'identifier les GPO vides, non liées, appliquées, désactivées, sans filtrage de sécurité, etc...

Vous pouvez retrouver le projet GPOZaurr sur GitHub :

Analyser les GPO Active Directory avec GPOZaurr

III. Installer GPOZaurr

Tout d'abord, ouvrez une console PowerShell sur votre machine et installez le module GPOZaurr :

Install-Module -Name GPOZaurr

Vous devez savoir que GPOZaurr va également installer les modules PSWriteHTML, ADEssentials, PSSharedGoods, PSWriteColor, car ce sont des prérequis à son fonctionnement. D'ailleurs, c'est le même développeur principal derrière ces différents modules, et vous connaissez peut-être déjà l'excellent module PSWriteHTML.

Si l'installation ne passe pas avec la commande ci-dessus, réessayez avec celle-ci :

Install-Module -Name GPOZaurr -AllowClobber -Force

Par ailleurs, GPOZaurr nécessite l'installation des outils RSAT pour l'Active Directory et la console de "Gestion des stratégies de groupe" pour être en mesure d'effectuer l'analyse de votre environnement. Ces consoles sont présentes sur les serveurs contrôleurs de domaine Active Directory et peuvent être installées sur un serveur ou poste de travail d'administration.

IV. Générer un rapport avec GPOZaurr

Une fois que GPOZaurr est installé, vous pouvez l'exécuter via le cmdlet "Invoke-GPOZaurr" pour qu'il effectue une analyse de vos GPO.

Remarque : vous devez l'exécuter avec un compte Administrateur pour que l'ensemble des points puissent être vérifiés. A partir d'un compte utilisateur standard, certaines informations pourront être récupérées, mais l'analyse sera partielle.

Invoke-GPOZaurr

Sans aucun paramètre, GPOZaurr va effectuer une analyse complète des stratégies de groupe de votre domaine Active Directory. Ainsi, sur un domaine avec plusieurs milliers de GPO, l'analyse peut durer plusieurs heures. Sur mon Lab, où il y a un peu moins de 100 GPO, l'analyse est relativement rapide puisqu'elle nécessite environ 2 minutes.

Exécuter un audit avec GPOZaurr

Si vous souhaitez effectuer une analyse uniquement sur certaines catégories ou certaines anomalies, sachez que ce cmdlet intègre un paramètre nommé "-Type" qui vous permettra de spécifier le périmètre de l'analyse.

Invoke-GPOZaurr -Type <Nom du rapport>
# Exemple n°1 :
Invoke-GPOZaurr -Type GPOBroken
# Exemple n°2 :
Invoke-GPOZaurr -Type GPOBroken,GPOPermissions

Voici la liste des valeurs disponibles :

GPOZaurr - Sélectionner un type de rapport

Par ailleurs, le paramètre "-FilePath" vous offre la possibilité de nommer le rapport comme vous le souhaitez et de le stocker dans le répertoire de votre choix. Sinon, par défaut, ce sera dans le répertoire temporaire de l'utilisateur utilisé pour lancer l'analyse. L'exemple ci-dessous vous permettra d'intégrer la date et l'heure dans le nom du rapport.

Invoke-GPOZaurr -FilePath "C:\TEMP\GPOZaurr_$(Get-Date -Format yyyyMMdd-hhmm).html"

V. Découverte du rapport de GPOZaurr

Le rapport s'ouvrir sur votre machine dès lors que l'analyse est terminée. La partie supérieure du rapport contient un ensemble d'onglets, ce qui permet de naviguer dans les différentes catégories. Chaque onglet contient une zone qui décrit ce qui a été analysé, un graphique, ainsi qu'un tableau récapitulatif avec le statut de vos GPO.

Chaque sous-rapport peut être exporté au format Excel, CSV ou PDF. De plus, vous pouvez effectuer des recherches sur chaque colonne d'un tableau afin de filtrer les résultats rapidement.

Pour avoir une vue d'ensemble de vos GPO, cliquez sur l'onglet "Group Policy Summary". Il offre un aperçu global sur l'ensemble de vos GPO avec quelques indicateurs clés (oui/non) : GPO vide, GPO activée, GPO optimisée, GPO avec un problème, GPO liée, etc.

En complément, si vous basculez sur l'onglet "Group Policy Content", vous pourrez constater que GPOZaurr a organisé vos GPO par catégorie. Par exemple, la catégorie "Audit" permet de voir toutes les GPO qui permettent de configurer des paramètres de stratégies d'audit.

Chaque onglet contient des informations intéressantes et qui pourront s'avérer plus ou moins utiles et pertinentes selon le contexte dans lequel vous utilisez GPOZaurr. Si vous passez sur l'onglet "SYSVOL (NetLogon) Files List", vous pourrez visualiser l'ensemble des fichiers détectés dans le partage SYSVOL. Ce sera aussi l'occasion de voir si ces fichiers sont liés à une GPO, ou pas.

GPOZaurr est également capable de corriger les problèmes à votre place, grâce à un processus étape par étape où l'outil vous fournit les commandes PowerShell à exécuter pour faire le nécessaire. À chaque fois que vous changez d'onglet, les étapes de remédiation sont adaptées en fonction du contexte. Néanmoins, je vous recommande de corriger les problèmes vous-même et d'utiliser GPOZaurr uniquement pour vous faciliter le travail d'analyse. Même rien ne vous empêche de vous inspirer de la solution proposée, mais l'objectif étant de limiter les effets indésirables...

VI. Conclusion

J'ai découvert GPOZaurr récemment, et c'est bien dommage.... Il aurait pu me rendre bien des services pour investiguer sur des problèmes de GPO, générer un rapport complet sur les GPO pour un audit ou encore pour effectuer du tri dans les GPO. J'espère que cet article vous donnera envie de l'utiliser et de l'ajouter à votre boite à outils !

En complément de cet article, vous pouvez lire celui rédigé par l'auteur de ce module (en anglais) :

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

9 commentaires sur “GPOZaurr, l’outil ultime pour analyser vos stratégies de groupe

  • Bonjour
    Est- ce qu il s installe sur le DC ou peut etre sur une station membre du domaine?

    Répondre
    • Bonjour,
      Il peut être installé sur une station membre du domaine, mais il faut installer les outils RSAT pour l’AD / les GPO.
      Et il faudra un compte avec suffisamment de privilèges : avec un utilisateur standard (« Utilisateurs du domaine »), le rapport est incomplet car l’outil ne peut pas lire toutes les informations.

      Répondre
      • Bonjour,
        Pourquoi ne pas avoir intégré les commandes d’installation RSAT au tuto ?

        Répondre
  • Bonjour
    est-il possible de savoir si son installation se fait sur un DC ou c’est possible de le faire sur une workstation windows 10 membre du domaine?
    Merci

    Répondre
  • Perso, j’ai ce message :

    Install-Package: Authenticode issuer ‘CN=Przemysław Kłys EVOTEC, O=Przemysław Kłys EVOTEC, L=Mikołów, C=PL’ of the new module ‘PSWriteHTML’ with version ‘1.17.0’ from root certificate authority ‘CN=DigiCert Trusted Root G4, OU=www.digicert.com,
    O=DigiCert Inc, C=US’ is not matching with the authenticode issuer ‘CN=Przemysław Kłys EVOTEC, O=Przemysław Kłys EVOTEC, L=Katowice, S=Śląskie, C=PL’ of the previously-installed module ‘PSWriteHTML’ with version ‘0.0.184’ from root
    certificate authority ‘CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US’. If you still want to install or update, use -SkipPublisherCheck parameter.

    Pas trop confiance du coup 😐

    Répondre
    • Pour moi, vous avez déjà « PSWriteHTML » avec la version « 0.0.184 » qui a été installée, dont le certificat, car ce module a été signé, ne correspond plus à la nouvelle version « 1.17.0 »
      Bien que le certificat racine est un peu différent, l’autorité de certification Digicert reste cependant le même.
      Et le Common Name « Przemysław Kłys EVOTEC » correspond à l’auteur et sa société EVOTEC basés en Pologne.

      https://www.google.com/maps/place/Evotec+Services+sp.+z+o.o./@50.1989398,18.874159,17z/data=!3m1!4b1!4m6!3m5!1s0x4716d025eb46f55d:0xe51fe6da82cd004b!8m2!3d50.1989398!4d18.874159!16s%2Fg%2F11b7rn92cc?entry=ttu

      Les localisations « L= » des deux certificats: Katowice et Mikołów sont bien connus de cette société, et il n’est pas rare qu’une société puisse déménager.
      Cela me choque pas spécialement.
      Bref, vous pouvez lire le code source si cela vous chante, il est disponible dans le Github.

      Répondre
    • au contraire, tu as tort sir tu penses ne pas faire confiance, le module est disponible sur PowershellGallery une source sur et maintenue par Microsoft, d’autant que le gars est un ingénieur et membre actif de la communauté Microsoft MVP, s’il n’était pas de confiance ca allait pas durer, j’ajoute que ces modules dépassent le millions de téléchargement.
      revenons maintenant à ton problème, c’est ton serveur qui ne possède pas le certificat racine digicert pour vérifier la signature du certificat du gars.
      Cordialement,

      Répondre
  • Hello, petit question, il veut focus la PRD directement, comment fais t-on pour le lancé uniquement sur la PRP ?

    Répondre
  • Il se peut que le « invoke-GPOZaurr » retourne une erreur comme quoi la cmdlet n’est pas reconnu
    Vérifier que vous avez bien activé les bonnes fonctionnalités sur votre serveur à savoir celle des GPO et ceux de l’AD.
    Le module GPO serait aussi nécessaire :
    Import-Module GroupPolicy -Verbose -Force
    Enfin si ça galère toujours,
    DISM /online /enable-feature /featurename=ActiveDirectory-PowerShell /all
    Reboot du serveur, et ça a fonctionné pour moi
    Source :
    https://github.com/EvotecIT/GPOZaurr/issues/26

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.