Troubleshooting GPO : utilisation de gpresult

I. Présentation

Dans ce tutoriel, nous allons apprendre à utiliser un outil indispensable et intégré à Windows : il s'agit de gpresult. Cet outil est indispensable et très pratique lorsqu'il s'agit d'analyser les stratégies de groupe (GPO) qui s'appliquent sur un PC, notamment dans le cadre d'une opération de troubleshooting.

📌 Cours - Les bases des stratégies de groupe

📌 GPO qui ne s'applique pas : des pistes à étudier

Grâce à gpresult il est possible de récupérer un état des GPO qui s'appliquent sur un utilisateur/ordinateur du domaine. Cet outil va permettre de vérifier qu'une stratégie de groupe s'applique bien, et si la GPO ne s'applique pas, il va permettre de visualiser s'il y a une erreur associée.  Il intègre également des informations quant au traitement des GPO, notamment le temps de chargement.

Cet outil n'est pas nouveau puisqu'il est intégré à Windows depuis Windows XP. Aujourd'hui, nous utilisons Windows 10 et il s'avère toujours utile, tout en sachant qu'il est également intégré à Windows Server. Personnellement, je le préfère en comparaison de la console rsop.msc.

II. Comment utiliser gpresult ?

Que ce soit dans une console PowerShell ou dans une Invite de commande, il suffit d'indiquer le terme "gpresult" pour utiliser cet outil. Derrière, il faut indiquer les bonnes options pour générer le rapport souhaité ; c'est ce que nous allons voir.

A. gpresult /r

Pour commencer, nous allons générer un rapport pour afficher des informations sur les stratégies de groupe chargées sur la machine locale et associée à l'utilisateur connecté. Il est à noter que pour récupérer les informations pour un utilisateur uniquement, il n'est pas nécessaire que cet utilisateur soit administrateur du poste.

gpresult /r

Ce qui donne (aperçu) :

Nous avons de nombreuses informations intéressantes dans ce rapport, notamment dans l'en-tête :

  • Nom du site : correspond au nom du site Active Directory auquel est rattachée cette connexion. Dans mon cas, j'ai seulement le site par défaut. et "N/A" indique qu'il y a une erreur dans l'attribution du site
  • Les chemins vers le profil de l'utilisateur via les valeurs "Profil itinérant" et "Profil local"

Ensuite, le rapport est découpé en deux parties : les paramètres ordinateurs et les paramètres utilisateurs, sur le même principe que lors de la création d'une GPO.

Nous retrouvons là aussi des informations intéressantes :

  • Heure de la dernière application de la stratégie de groupe : dernier "gpupdate" automatique si on peut dire ça
  • Stratégie de groupe appliquée depuis : nom du contrôleur de domaine utilisé pour récupérer les GPO lors de la dernière actualisation
  • Nom du domaine : le nom NetBios de votre domaine
  • Type de domaine : version du schéma

Pour chaque sous-ensemble, à savoir ordinateur ou utilisateur, le rapport affiche les GPO appliquées sur la machine locale et l'utilisateur connecté, sous le titre "Objets Stratégie de groupe appliqués". Juste après, nous avons la même chose pour les éventuelles GPO refusées. Le rapport nous permet également de vérifier à quels groupes de sécurité appartiennent cet ordinateur et cet utilisateur.

D'ailleurs, une stratégie de groupe peut être refusée pour deux raisons principales : 

  • La GPO est vide
  • Il y a un accès refusé via le filtrage de sécurité de la GPO

Dans le même esprit, pour obtenir des informations seulement au sujet des paramètres utilisateur ou ordinateur, on peut spécifier l'option "/scope" en complément de "/r". Voici les deux commandes correspondantes :

gpresult /r /scope:user
gpresult /r /scope:computer

Pour garder une trace du résultat de la commande, on peut envoyer le résultat dans un fichier directement :

gpresult /r > "C:\DATA\gpresult.txt"

Le contenu du fichier texte sera identique à celui de la console.

B. gpresult /H

Maintenant, nous allons découvrir l'option /H qui va permettre de générer un rapport HTML complet, en complément de la sortie dans la console ou dans un fichier texte : beaucoup plus agréable à lire. Cette option est disponible depuis Windows 7.

Pour générer un rapport à l'emplacement "C:\DATA\rapport.html", voici la commande à utiliser :

gpresult /H "C:\DATA\rapport.html"

Note : l'option /f permet d'écraser automatiquement le rapport si le fichier cible existe déjà.

Petite astuce, pour générer le rapport et l'ouvrir automatiquement :

gpresult /H "C:\DATA\rapport.html" & "C:\DATA\rapport.html"

Lorsque la création du rapport est terminée, je vous invite à l'ouvrir. L'en-tête du rapport va permettre déjà une chose : mettre en évidence les éventuelles erreurs, aussi bien sur la partie utilisateur que la partie ordinateur. S'il y a des erreurs, comme dans cet exemple, il est possible de clique sur le lien sur "3 erreurs détectées" : une fenêtre va s'ouvrir avec des informations sur chacun des erreurs. De quoi vous aiguiller pour le troubleshooting ! 👍

Ensuite, dans la partie "Général" sous "Détails de l'ordinateur" et "Détails de l'utilisateur", on retrouve les informations que l'on a vues avec l'option précédente : domaine, site, nom de l'ordinateur, etc. Le rapport est scindé en deux parties : les paramètres ordinateurs et les paramètres utilisateur.

Pour chaque partie, la liste des GPO appliquées et refusées s'affichent. Ce qui est intéressant, c'est d'avoir des informations sur chaque GPO, notamment l'emplacement de la liaison, les extensions configurées dans la GPO (cela dépend des paramètres configurés), le filtre de sécurité, l'état de l'option "Appliqué" ainsi que le nom de l'éventuel filtre WMI associé.

Si vous cherchez à comprendre pourquoi un paramètre ne s'applique pas, c'est peut-être parce qu'il est déjà appliqué au travers d'une autre GPO ? Grâce à ce rapport, on va pouvoir en savoir plus. Si vous descendez un peu plus dans le rapport, vous allez pouvoir obtenir la liste de l'ensemble des paramètres appliqués, en déroulant l'arborescence dans le rapport.

Pour chaque paramètre, vous avez son nom, son état (exemple : activé/désactivé) ainsi que l'OSG gagnant, c'est-à-dire la GPO qui applique actuellement ce paramètre. Très pratique !

Ce type de résultat peut-être obtenu également dans la console directement, mais c'est clairement illisible (à moins d'envoyer dans un fichier texte, à la limite)... Pour les curieux, utilisez l'option /z en plus de l'option /r :

gpresult /r /z

C. Interroger un hôte distant avec gpresult

Sans qu'il soit nécessaire de se connecter sur un PC physiquement, ou à distance que ce soit via RDP ou avec un logiciel de prise en main à distance, on peut exécuter la commande gpresult à distance grâce à l'option /s.

Si l'on reprend l'option /r que l'on a vue précédemment, on va ajouter en plus l'option /s avec suivie du nom du PC ciblé.

gpresult /s MON-PC /r

D. gpresult et l'UAC

Si vous exécutez la commande gpresult à l'aide d'un compte utilisateur qui ne dispose pas des droits Administrateur, vous ne pourrez pas récupérer les résultats des paramètres ordinateurs. Pour récupérer les paramètres ordinateurs, vous devez exécuter la commande gpresult en tant qu'administrateur sur le PC.

Le problème c'est que si le compte utilisé pour ouvrir la console en tant qu'administrateur et exécuter gpresult ne correspond pas au compte utilisateur dont la session est ouverte, vous obtiendrez le message suivant : "Information : L'utilisateur « IT-CONNECT\Florian » n'a pas de données RSOP".

En fait, c'est logique, car si l'utilisateur qui exécute la commande gpresult n'est pas connecté sur la machine (ouverture de session), il n'y a pas de données RSOP à collecter. Pour contourner ce problème, il est nécessaire de spécifier l'utilisateur que l'on veut cibler avec gpresult (et qui est actif sur la machine) à l'aide de l'option /user. Voici un exemple :

gpresult /r /user:IT-CONNECT\Florian

-----

Grâce aux informations de cet article, vous êtes désormais en mesure d'exploiter l'outil gpresult sur votre infrastructure lorsque vous aurez besoin de réaliser un troubleshooting 😉

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian B.

Consultant chez Délibérata le jour, blogueur pour IT-Connect la nuit, 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.

florian has 2573 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse de messagerie 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.