Comment simuler l’Active Upgrade de l’infrastructure full App-V avec SCCM !

Une des grandes différences fonctionnelles entre l’infrastructure full App-V et l’intégration d’App-V avec SCCM est la fonctionnalité d’active upgrade :

· Fonctionnement de l’active upgrade dans une infrastructure App-V :

o En plus des rafraichissements du client App-V auprès de l’infrastructure App-V, à chaque fois qu’une application est exécutée, une vérification est faite auprès de l’infrastructure pour voir si une nouvelle version de l’application est à disposition. Si oui l’application est mise à jour et l’application se lance ensuite.

· Fonctionnement de l’active upgrade dans une infrastructure SCCM :

o Dans ce scénario c’est le client SCCM qui vérifie s’il y a des nouvelles versions d’applications et le client App-V vérifie à chaque lancement de l’application s’il y a une nouvelle version auprès du client SCCM et non pas de l’infrastructure SCCM. Donc si une mise à jour de l’application est à disposition mais que le client SCCM n’a pas rafraichit ses politiques auprès du MP, c’est l’ancienne version de l’application qui sera lancée.

o Ce fonctionnement n’est pas une limitation et peut même être avantageux dans certains cas.

Les whitepapers App-V (https://technet.microsoft.com/en-us/appvirtualization/cc843994.aspx) sont très bien fait et expliquent en détail le fonctionnement de cette fonctionnalité. Je vais donc plus me consacrer sur le cas où l’active upgrade SCCM ne répond pas au besoin. Exemple : pour les applications client/serveur, il faut s’assurer que la version cliente est bien la bonne et donc quand une mise à jour côté serveur est faite, il faut que la partie client soit aussi à jour.

Plusieurs actions peuvent être menées pour limiter le fait que l’ancienne version de l’application soit lancée au lieu de la nouvelle à cause du fait que le client SCCM n’ait pas encore récupérée sa politique :

· Diminuer le temps de rafraichissement du client SCCM. Par défaut, il est à 1h. On peut le descendre jusqu’à 15 minutes si l’infrastructure et le réseau le supporte.

· Planifier la mise à jour de l’application la nuit comme ça le client SCCM aura le temps de récupérer la nouvelle politique (information qu’une nouvelle version est disponible).

· Développement (solution décrite ci-dessous).

La solution décrite ci-dessous et citée à titre d’exemple permet de « simuler » le même fonctionnement que l’Active Upgrade dans une infrastructure App-V :

Lors de l’exécution de l’application virtuelle, un script est lancé et compare la version de l’application à celle dans SCCM. Si la version est identique l’application est lancée. En revanche, si la version est différente, le script force le rafraichissement de la stratégie utilisateur et lance un pop-up à l’utilisateur lui indiquant que l’application est en cours de mise à jour. Une fois que la nouvelle stratégie arrive sur le poste, le pop-up se ferme et lorsque l’utilisateur reclique sur l’application la mise à jour s’exécute et la nouvelle version de l’application est lancée

Pour réaliser ce mécanisme, il faut :

· Créer un script permettant d’assurer le fonctionnement décrit ci-dessus. Le script en PJ est cité à titre d’exemple et doit être enrichi en fonction des besoins.

 

· Lors du séquencement de l’application virtuelle, rajouter dans l’OSD, le lancement d’un script (localisé sur le poste utilisateur) à l’ouverture de l’application. (en rouge les éléments essentiels)

<SCRIPT EVENT="LAUNCH" PROTECT="FALSE" TIMING="PRE" WAIT="TRUE" EXTERN="TRUE" ABORTRESULT="1">

                <HREF>C:\Script\ActiveUpgrade.vbs 6EDA1167-B727-49A2-8EA6-B47CBE3BD8FA</HREF>

</SCRIPT>

La version de l’application « 6EDA1167-B727-49A2-8EA6-B47CBE3BD8FA » passée en paramètre correspond au GUID de l’application contenu dans le même fichier OSD

<IMPLEMENTATION>

               <CODEBASE

HREF="RTSPS://%SFT_SOFTGRIDSERVER%:322/Vlc.v01_2.sft"

GUID="6EDA1167-B727-49A2-8EA6-B47CBE3BD8FA"

PARAMETERS=""

FILENAME="Vlc.v01\vlc.exe"

SYSGUARDFILE="Vlc.v01\osguard.cp" SIZE="79392755"/>

                              <WORKINGDIR>%SFT_MNT%\Vlc.v01</WORKINGDIR>

                              <VIRTUALENV TERMINATECHILDREN="FALSE">

                                            <ENVLIST/>

                              </VIRTUALENV>

                              <VM VALUE="Win32">

                                            <SUBSYSTEM VALUE="windows"/>

                              </VM>

               </IMPLEMENTATION>

 

Je remercie Cédric Scomparin d’avoir grandement participé à la mise en place de cette solution !

AciveUpgrade.vbs.txt