Bonjour,
Après un premier article sur l'activation de ce fichier, voici un second sur l'analyse de celui-ci.
Vous pouvez le trouver dans le dossier C:\Windows\debug\usermode\gpsvc.log
Threads
Sur les machines avec des architectures multi-coeurs, il peut y avoir plusieurs threads qui s'exécutent au même moment (un thread pour les paramètres utilisateurs et un thread pour les paramètres machine.). Il peut être utile de savoir les différencier dans le fichier de log.
Pour se faire, il suffit d'analyser les valeurs rapportées pour GPSVC :
GPSVC(78d.666) 12:41:45:477 Caller requesting for user notification/lock is from session 0
On remarque que celles-ci sont composées de deux parties :
- 78d : Correspond au PID (Process ID) (en héxadécimal)
- 666 : Correspond au TID (Thread ID)
Début du traitement des stratégies
Le traitement des stratégies débute toujours avec les paramètres machine.
Il peut être repéré par l'enregistrement suivant :
GPSVC(2dc.18c) 11:40:08:707 bMachine = 1
GPSVC(2dc.18c) 11:40:08:707 Setting GPsession state = 1
Connectivité réseau
Immédiatement après le début du traitement des stratégies machines, une vérification de la connectivité réseau est faite :
GPSVC(2dc.18c) 11:40:08:707 bMachine = 1
GPSVC(2dc.18c) 11:40:08:707 Setting GPsession state = 1
GPSVC(2dc.520) 11:40:08:707 Waiting for connectivity before applying policies
Souvent, le client Stratégies de groupe démarre avant que la connectivité réseau soit effective, ce qui génère le message suivant :
GPSVC(2dc.18c) 11:40:08:806 There is no connectivity. Waiting for connectivity again …
Mais quelques secondes plus tard, la connectivité est établie :
GPSVC(2dc.18c) 11:42:09:106 There is connectivity
GPSVC(2dc.18c) 11:42:09:106 Wait For Connectivity : Succeded
GPSVC(2dc.18c) 11:42:09:106 We have network connectivity… proceeding to apply policy.
En cas de non connectivité (30 secondes de timeout par défaut), on trouvera toujours l'erreur suivante :
GPSVC(2dc.520) 11:45:10:033 Application complete with bConnectivityFailure = 1.
Note : Cela peut être une erreur de connectivité mais pas uniquement réseau, cela peut concerner du LDAP par exemple
Estimation de la bande passante
Avant de traiter les stratégies de groupe, une estimation de la bande passante est faite.
Celle-ci est calculée en se connectant d'abord à un contrôleur de domaine afin d'obtenir une liste de ceux-ci, puis en évaluant la vitesse de la connexion entre le poste et un contrôleur de domaine. Le calcul de la bande passante est effectuée par le NLA (Network Location Awarnesss).
Le début de l'estimation se présente comme ceci :
GPSVC(2cc.c28) 15:56:04:821 GetDomainControllerConnectionInfo: Enabling bandwidth estimate.
GPSVC(2cc.c28) 15:56:05:134 Started bandwidth estimation successfully
La fin de l'estimation se présente comme ceci :
GPSVC(2cc.c28) 15:56:05:510 IsSlowLink: Bandwidth Threshold (WINLOGON) = 500.
GPSVC(2cc.c28) 15:56:05:510 IsSlowLink: Bandwidth Threshold (SYSTEM) = 500.
GPSVC(2cc.c28) 15:56:05:510 IsSlowLink: WWAN Policy (SYSTEM) = 0.
GPSVC(2cc.c28) 15:56:05:510 IsSlowLink: Current Bandwidth >= Bandwidth Threshold.
On remarque que le seuil est de 500 kbps par défaut.
Ordre de traitement des stratégies
Les stratégies vont être traitées de manière hiérarchique dans l'ordre suivant :
1) Ordinateur Local
2) Sites AD
3) Domaines AD
4) OU Parentes
5) OU Enfants
Avec toutefois quelques exceptions :
La règle à retenir est la suivante : C'est le dernier paramètre lu qui gagne
Exemple : Vous avez deux GPOs qui définissent une page de démarrage pour Internet Explorer.
Une est à la racine du domaine, l'autre dans une OU enfant.
Dans le fichier de log, le paramètre de la GPO étant à la racine du domaine sera traité en premier et le paramètre de la GPO étant dans une OU enfant sera traité en deuxième.
Le dernier paramètre lu étant celui qui est appliqué, ce sera donc le paramètre de la GPO étant située dans l'OU enfant qui sera appliqué.
Voici comment cela se présente dans le fichier de log :
Lecture des stratégies :
GPSVC(2dc.22b0) 17:16:01:922 SearchDSObject: Searching <OU=OU_Enfant,OU=OU_Parent,DC=contoso,DC=local>
GPSVC(2dc.22b0) 17:16:01:922 SearchDSObject: Found GPO(s): <[LDAP://cn={D110C8FA-777B-4F95-BB65-A333A8B0091D},cn=policies,cn=system,DC=contoso,DC=local;0]...>
GPSVC(2dc.22b0) 17:16:01:922 ProcessGPO: ==============================
Il existe trois valeurs numériques à la fin de la requête LDAP pour chaque lien :
- 0 : Paramètre par défaut
- 1 : Le lien est désactivé
- 2 : Le lien est appliqué (enforced)
Une fois que toutes les GPO sont lues, celles-ci sont traitées.
Traitement des stratégies :
GPSVC(2dc.22b0) 17:16:02:109 ProcessGPO: Searching <cn={EC37F666-21C0-459E-88DF-3AD63AE600A1},cn=policies,cn=system,DC=contoso,DC=local>
GPSVC(2dc.22b0) 17:16:02:109 ProcessGPO: User has access to this GPO.
GPSVC(2dc.22b0) 17:16:02:109 FilterCheck: Found WMI Filter id of: <[contoso.local;{118D5E2E-9A8A-41C8-AB0C-D87AAE094BF1};0]>
GPSVC(2dc.22b0) 17:16:02:171 ProcessGPO: GPO passes the filter check.
GPSVC(2dc.22b0) 17:16:02:171 ProcessGPO: Found functionality version of: 2
GPSVC(2dc.22b0) 17:16:02:171 ProcessGPO: Found file system path of: <\\contoso.local\sysvol\gds.local\Policies\{EC37F666-21C0-459E-88DF-3AD63AE600A1}>
GPSVC(2dc.22b0) 17:16:02:203 ProcessGPO: Found common name of: <{EC37F666-21C0-459E-88DF-3AD63AE600A1}>
GPSVC(2dc.22b0) 17:16:02:203 ProcessGPO: Found display name of: <CONTOSO-COMPUTER_WSUS>
GPSVC(2dc.22b0) 17:16:02:203 ProcessGPO: Found user version of: GPC is 1, GPT is 1
GPSVC(2dc.22b0) 17:16:02:203 ProcessGPO: Found flags of: 1
GPSVC(2dc.22b0) 17:16:02:203 ProcessGPO: No client-side extensions for this object.
GPSVC(2dc.22b0) 17:16:02:203 ProcessGPO: GPO CONTOSO-COMPUTER_WSUS is disabled. It will be skipped.
Plusieurs remarques peuvent être faites :
- La présence d'un filtre WMI est détecté en 1er et s'il est présent, il est évalué.
- Le GUID de la GPO renvoie à son chemin physique dans le dossier SYSVOL.
- La présence de paramètres CSE est évaluée
- L'état de la GPO (désactivée ou non) est évaluée afin de décider de son traitement
- La présence de paramètres CSE est évaluée
Une fois ces GPO traitées, une passe particulière est réalisée pour les paramètres CSE (Client Side Extentions).
Ce sera l'objet de notre prochain billet.