To be synchrone or not to be ?!

Bonjour!

Dans cet article, nous évoquerons le fonctionnement des GPO et plus précisément la fonctionnalité Fast logon Optimization.

Deux notions importantes concernant les GPO sont :

o   Le mode d’application des GPO

o   Le type de refresh des GPO

Nous allons nous concentrer sur la première notion. Il est important de comprendre ces mécanismes pour être en mesure d'identifier un comportement "normal" d'un comportement non désiré.

En effet, de manière générale, mal implémentées les GPO peuvent dégrader le  temps de démarrage d'un poste de travail.

Fast Logon Optimization

La performance au démarrage d'un poste peut consister à mesurer le temps que l'on met à accéder au Bureau de l'utilisateur. Pour optimiser cette durée, la fonctionnalité "Fast Logon Optimization" est implémentée par défaut depuis Windows XP.

Cette fonctionnalité permet d'appliquer les GPO selon deux modes sur un poste de travail :

  • Le mode synchrone : La machine cliente attend que la couche réseau soit complètement chargée avant qu'un utilisateur puisse ouvrir une session.

L'idée de ce mode est que lorsque le bureau est présenté à l'utilisateur, l'application des GPO est terminée.

  • Le mode asynchrone : La machine cliente n'attend pas que la couche réseau soit complètement chargée avant qu'un utilisateur puisse ouvrir une session.

Dans ce mode, au contraire, l'utilisateur pourra commencer à utiliser son bureau alors que l'applications des GPO n’est pas terminée et effectuée en tâches de fond.

https://support.microsoft.com/kb/305293/en-us

Evidemment, dans les deux cas, l'ensemble des GPO seront traitées, mais pas forcément appliquées (nous reviendrons sur ce point un peu plus bas)

Par défaut, Windows 8, Windows 7, Windows Vista et Windows XP implémentent le mode Asynchrone. Néanmoins, le mode utilisé repasse en synchrone dans certaines conditions :

  • Premier login d'un utilisateur sur une machine
  • Lorsque l'utilisateur qui se connecte à un profil itinérant
  • Lorsque les paramètres « Run logon scripts synchronously » et / ou « waif for network » sont activés

Pourquoi est-il intéressant de savoir dans quel mode d'application l'on se trouve ?

Dans certain cas, cela peut expliquer la différence de temps de connexion et d'apparition du bureau entre deux utilisateurs. Ou même, la différence de temps d'apparition du bureau lors de deux redémarrages différents pour un même utilisateur.

Le mode synchrone ou asynchrone ne sera pas la cause du problème mais nous permettra, dans certains cas, de justifier la variation de ces délais.

Mais comment peut-on distinguer les événements GPO relatifs à un démarrage d'ordinateur / ouverture de session ? Comment simplement distinguer quel mode d'application est mis en œuvre ?

Dans Windows 7, il suffit de se rendre à l'emplacement suivant :

Event viewer > Applications and Services Logs > Microsoft > Windows > GroupPolicy > Operational

clip_image001

clip_image002

  A cet emplacement sont recensées les informations détaillées concernant l'application des GPO.

Comment afficher les évènements concernant une application de GPO ?

A chaque traitement de GPO est associé un activity id unique. Sachant qu’un traitement de GPO est composé d’un traitement de la partie ordinateur et de la partie utilisateur, nous aurons un activity id associé au traitement ordinateur et un activity id associé au traitement utilisateur.

Cet identifiant va nous permettre d’afficher l’ensemble des évènements associés à un traitement de GPO (ordinateur ou utilisateur).

En appliquant la procédure ci-dessous, vous serez en mesure d’afficher uniquement les événements ne concernant qu'un seul activity id :

Create a custom view of a Group Policy instance

https://technet.microsoft.com/fr-fr/library/cc749336(v=ws.10).aspx

Dans notre exemple, cela donnera la vue suivante :

clip_image003

GPO Ordinateur

L'application de la GPO commence avec un évènement dont l'id est 4000. Dans cet évènement on retrouvera plusieurs informations intéressantes :

  • Dans l'onglet général, on retrouve l'Activity ID : Il s'agit de l'identifiant du traitement de la GPO ordinateur pour ce démarrage
  • Dans l’onglet détails, on retrouvera des informations complémentaires :

clip_image004

o   Lorsque la valeur du paramètre IsAsyncProccessing est true cela indique que l'application des GPO (dans ce cas machine) sera Asynchrone.

o   Si le paramètre est à False et que le paramètre IsbackgroupProcessing est false alors l'application des GPO sera synchrone.

GPO Utilisateur

L'application de la GPO commence avec un évènement dont l'id est 4001.

Plus haut dans la séquence d'évènement, on retrouve notre évènement qui contient deux informations intéressantes :

-          Le nom de l'utilisateur

-          L'activity ID de l'application des GPO utilisateur

Puis en regardant, les détails de cet évènement :

clip_image005

o   La valeur du paramètre IsAsyncProcessing est true, cela indique que les GPOs de l'utilisateur "contoso\j" seront appliquées de manière asynchrone.

Pourquoi le mode d'application peut varier ?

Certains paramètres nécessite une application de GPO synchrone pour pouvoir être paramétrés. C'est pourquoi, pour certaines options, plusieurs redémarrages (dans le pire des cas, deux) peuvent être nécessaire avant l'application du paramètre.

Par exemple : la redirection de dossier ou le paramétrage de lecteurs réseau à l'aide des préférences.

Vous trouverez au lien suivant, une description précise expliquant pourquoi plusieurs redémarrages peuvent être nécessaires avant application des paramètres :

https://social.technet.microsoft.com/wiki/contents/articles/12221.troubleshooting-the-drive-maps-preference-extension-in-group-policy-replace-mode-only-maps-the-drive-every-other-logon.aspx>

En effet, lors de l'application d'un paramètre requérant un démarrage synchrone, le système va être notifié qu'au démarrage suivant l'exécution devra être synchrone. Puis une fois le paramètre appliqué, le mode d'application redeviendra asynchrone.

Les GPO Préférences permettent donc de bénéficier d’une optimisation très intéressante :

·         la capacité à faire varier de manière dynamique le mode d’application des GPO quand cela est nécessaire

En conclusion, il sera intéressant de mesurer la performance de l’ouverture de session dans un environnement dans lequel les paramètres déployés par GPO sont stables et ne font pas varier le mode d’application.

Liens utiles

Troubleshooting Group Policy Using Event Logs

From <https://technet.microsoft.com/fr-fr/library/cc749336(v=ws.10).aspx>

Troubleshooting the Drive Maps Preference Extension in Group Policy: Replace Mode Only Maps the Drive Every Other Logon

From <https://social.technet.microsoft.com/wiki/contents/articles/12221.troubleshooting-the-drive-maps-preference-extension-in-group-policy-replace-mode-only-maps-the-drive-every-other-logon.aspx>

Group Policy Preferences Getting Started Guide

From <https://technet.microsoft.com/library/cc731892.aspx>