Les scripts de personnalisation de paquets SoftGrid

Avec SoftGrid, les applications ne sont plus installées, mais poussées en mode "pré-installé", pour cette raison et d'autres, de la customization est parfois nécessaire afin de modifier des paramètres, lier le paquet à un contexte utilisateur, monter un lecteur réseau virtuel....

Pour toutes ces raisons, il est possible de spécifier des scripts autour de chaque application SoftGrid (déclaration dans le ficheir OSD). Pour mieux connaître cette fonctionnalité il est tout d'abord nécessaire de répondre aux questions suivantes "Quand" "Ou" et "Comment" qui vont déterminer la manière de référencer le script.

QUAND?

Plusieurs event peuvent déclencher un script:

  • PRE STREAM: avant le streaming de l'application (et indirectement avant l'authorization phase).
  • POST STREAM: après les étapes d'authorization et de streaming mais avant la construction de l'environnement virtuel par System Guard.
  • PRE LAUNCH: l'environnement virtuel est monté, avant le lancement de l'application.
  • POST LAUNCH: Après le lancement de l'application.
  • POST SHUTDOWN: après la fermetured e l'application( suprpesion de fichiers, copy...).

OU ?

Assez facile, il n'y que deux possibilités:

  • Protect=True: le script (ou l'application tierce) est exécuté dans la bulle virtuelle (troubleshooting...)
  • Protect=False: le script est éxécuté en dehors de la bulle virtuelle

COMMENT?

La première capacité repose sur le timeout

  • TIMEOUT=xx: le client attends xx secondes le script (puis une erreur est retournée).
  • TIMEOUT=0: le cleint attends la fin du script.

La seconde repose sur le WAIT

  • Wait=False: l'application se lance sans attendre le script.
  •  Wait=True: systemguard ne continue pas tant que le script n'ts pas terminé (exemple, non lancement de l'application avant la fin d'un script de personnalisation).

TYPE de script?

Tous les languages peuvent être lancés du moment que le client(windows) peut l'interpréter normalement (si script spécifique, les composants devront être installés sur le poste). 

2 type sont distingués : <SCRIPTBODY> & <HREF>

Les points à connaitre sont:

- Possibilité de lancer un executable (regedit, monvb.exe....)

- Possibilité de lancer des commandes DOS directement (Scriptbody uniquement)

- Contenu copié dans un bat temporaire sur le client (supprimé à la fin) pour scriptbody

- Exécution des commandes directement pour Href.

- une fenêtre DOS apparaît unqiueemnt pour scriptbody.

Les exemples qui vont bien?

<DEPENDENCY>

<SCRIPT TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE"> <SCRIPTBODY> @echo on \n

ping 192.168.100.100 \n

net use x: /delete /y \n

net use x: \\\\ServerName\\Achieve \n

net use y: /delete /y \n

net use y: \\\\ServerName\\Achieve\\claims\\Sean \n

</SCRIPTBODY>

</SCRIPT>

</DEPENDENCY>

Note: le “\n” indique au SCRIPTBODY qu'une autre commande arrive.

********************

<DEPENDENCY>

<SCRIPT EVENT="LAUNCH" TIMING="PRE" PROTECT="TRUE" WAIT="TRUE">

<SCRIPTBODY>

net use k: \\\\w2k-pdc\\netlogon \n

CALL k:\\usr-w2k.cmd \n

\\\\sft-Microsoft SoftGrid Application Virtualization\\shr\\editini.exe c:\\word\\word.ini "FileLocations" TempPath c:\\tem \n

</SCRIPTBODY>

</SCRIPT>

</DEPENDENCY>

********************

Ici %SFT_MNT% correspond à une variable toujours présente, le point de montage (Q:\ généralement)

<DEPENDENCY>

<SCRIPT TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE"> <SCRIPTBODY>%SFT_MNT%\\OfficeXP\\Office10\\proflwiz.exe</SCRIPTBODY> </SCRIPT>

</DEPENDENCY>

********************

<DEPENDENCY>

<SCRIPT TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE">

<SCRIPTBODY>if not exist "H:\\WINDOWS\\random.ini" copy "Q:\\app.v1\\random.ini" "H:\\WINDOWS\\" </SCRIPTBODY>

</SCRIPT>

</DEPENDENCY>

********************

<DEPENDENCY>

<SCRIPT TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE"> <HREF>%SFT_MNT%\OfficeXP\Office10\proflwiz.exe</HREF>

</SCRIPT>

</DEPENDENCY>

********************

<DEPENDENCY>

<SCRIPT TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE"> <HREF>cmd.exe</HREF>

</SCRIPT>

</DEPENDENCY>

NOTE: à partir d'un cmd on peut lancer pas mal de tool bien sympathique dans l'environnement virtuel.

********************

<DEPENDENCY>

<SCRIPT TIMING="PRE" EVENT="LAUNCH" WAIT="TRUE" PROTECT="TRUE"> <HREF>\\SRV_NAME\NT_SHR\PRE_SCRIPT.CMD</HREF>

</SCRIPT>

</DEPENDENCY>