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>
Comments
Anonymous
January 01, 2003
Je tenter d'apporter des éléments. 7 à 8 secondes me paraît assez long (il faudrait étudier la configuration). La commande sfttray.exe /exe permet de lancer un exe dans le contexte de la bulle App-V. L'application App-V est donc chargé éventuellement avec ces pré-requis, mise à jour... En terme de monté en charge, il est certain que dans un mode connecté client/server, le lundi matin à 9H00 tout le monde va lancer le même applicatif asn un temps très court (mise à jour...). A étudier en fonction du contexte. Sur les droits pas fait de tests, mais je pense que la réponse est oui comme une application lancé classiquement.Anonymous
January 01, 2003
Chapeau bas pour ces explications. Ce sera certainement très utile pour beaucoup de monde. Ce sont des sujets qui ne sont pas réellement abordés dans le cours. Continue comme cela! BenoîtAnonymous
January 01, 2003
Hello, Cela dépend de ce que vous souhaitez par "tâche de fond". Il n'y a pas à ma connaissance de tag app-V spécifique de tâche de fond. Néanmoins App-V supporte les lancements en tant que Service (tâche de fond en quelque sorte en ajoutant un RunOnce qui lance l'application qui n'a pas d'interface graphique)... DavidAnonymous
January 01, 2003
Pourquoi vouloir lancer Office en tant que service? Pour avoir accès à des API office par exemple. Si tel est le cas, on peut envisager:
- De lancer office 2003 en composant obligatoire de l'application source (communication inter-bulle DC) un peu en mode add-ons (pas d'exe...)
- soit de lancer l'application au travers d'un launcher spécifique type sfttray.exe /exe <mon exe> "mon appli App-V" Pour les runOnce, le soucis est quelle va lancer une application (exe...) si l'application ne peut pas ^tre lancée autrement (non visible, services...) on ne peut pas faire grand chose. David
Anonymous
July 29, 2009
Bonjour, Et savez-vous s'il est possible de lancer une application app-v en arrière plan (tache de fond) Je sais qu'avec une application en dur cela est possible. Mais je n'arrive pas à reproduire cela avec App-V. Bien cordialement, Fabien.Anonymous
July 30, 2009
Lancer une application app-v en temps que service serait l'idéal je pense. J'ai essayer de le faire avec diverses méthodes. A chaque foi j'y arrive lorsque le chemin de l'application finie par .exe. Dés que j'ajoute /launch "Office Word 2003 Sp3" pour lancer Word en temps que service cela plante. Le système veut absolument une extension ... Avez-vous des conseils par rapport au RunOnce dont vous me parlez ? Merci pour vos conseils ;) Fabien.Anonymous
July 30, 2009
The comment has been removedAnonymous
August 28, 2009
The comment has been removed