mercredi 17 février 2010

Windows Installer MSI : Modifiez vos packages à la volée – Part 2

4-3

Deuxième billet sur les méthode utilisables pour modifier vos packages MSI (le précédant est ici) avec aujourd'hui comment modifier les pages de l’interface.

Avant de commencer, je souhaitais rappeler au plus professionnels d‘entre vous que cette méthode de modification de package ne fait absolument pas partie des ‘Best Practices’ du petit packager, Elle est même carrément déconseillée par Microsoft qui préconise plutôt de créer un package additionnel nommé ‘Transform’ au format .MST.

Le but du .MST étant de pouvoir faire des modifications sur la façon dont se comporte le .MSI sans avoir à le modifier.

Evidement, cette série d’articles déroge complètement à la règle, et je laisse chacun libre de ces choix. Donc, de grâce, ne perdez pas votre temps, ni le miens, à écrire pour dire que cette méthode n’est pas supportée : …je suis au courant !!!!

Ceci étant dit :

Exemple 2 – Modifier l’interface d’un package

Lorsque je tente d’installer SWV de façon silencieuse, l’installation ne s’effectue pas du tout pour la raison suivante : si je relance l’installation en mode normal, je constate que par défaut l’option qui installe SWV n’est pas sélectionnée. Je vais donc modifier le package afin d’ajouter cette option par défaut.

SWV-not


Je commence par créer une installation administrative en tapant Msiexec /a Swv.msi.

Pourquoi créer une installation Administrative

L’intérêt est de pouvoir disposer de toute la hiérarchie des fichiers décompressé. La table des fichiers du package est toujours préservée, et assure qu’ils seront installés de la même façon que dans le .MSI d’origine. Chose que je ne peux vous garantir si vous décidez d’extraire les fichiers via Qwerty.msi et que vous reconstruisez le package après. (le logiciel date un peu, et ne semble pas fiable sur cette partie…)

Puis je lance Qwerty.msi en sélectionnant bien l’option « Load Database Only »

Dans l’onglet “Tables”, je sélectionne la table ‘Properties’ et verifie l’information suivante : INSTALLLEVEL = 3. Cette propriété indique que tout composant dont le niveau d’installation (Installlevel) est inferieur ou égale à 3 sera installé.

installLevel

En me rendant sur l’onglet ‘Features‘, je vais pouvoir vérifier le niveau d’installation de chaque composant.

Dans le panel de droite vous retrouvez l’arborescence des composants à installer (les features) en passant sur les trois premier composant, je constate que leur INSTALLLEVEL est bien égale à 3.

level3

par contre les 3 derniers composants ont un niveau d‘installation supérieur à 3 ! Voila dont pourquoi il ne sont pas installés par défaut.

level4

La solution est alors dés plus simple :

- soit je remonte ‘INSTALLLEVEL’ à 4 dans la table ‘Properties’.
- soit, je baisse le niveau à 3 des features supplémentaire que je souhaite installer.

j‘opte pour la première solution, et passe le niveau à 4

level4i

puis je reconstruit le package en allant dans le menu Project > Build

La relance du nouveau MSI modifié me montre maintenant que le logiciel SWV fait bien partie des options par défaut, l’installation silencieuse installera désormais l’intégralité du soft ! (l’option qui reste avec la croix rouge étant inutile au fonctionnent du logiciel). Magique Non ?

featureOK

 

Exemple 3 - Modifier/supprimer des pages

t2t2

En vous promenant  dans les onglets de Qwerty.msi, vous découvrirez que l’onglet ‘Dialogs’ vous permet de visualiser et d‘éditer les différentes pages  constituantes du package.

moddialog

Vous pouvez à votre guise, changer les textes et la position des bouton. cependant, cela n’a que peu d‘intérêt… Il est, par contre, possible de changer/supprimer l’enchainement de ces pages les une par rapport au autres.

Beaucoup de packages MSI ne sont pas toujours fini dans les détails, et certaines page continue de s’afficher malgré une installation silencieuse avec des commutateurs /quiet ou /qn. Nous allons donc apprendre comment supprimer ces pages récalcitrantes.

Imaginons que pour une raison quelconque, j’ ai besoin de retirer la page d’acceptation de la licence  d’utilisation (Bouu, Pas bien !).

Je vais dans un premier temps rechercher cette boite de dialogue parmi tout celle que contient le package et repérer son nom, ici, elle s’appelle ‘Licence_Dialog’. Puis en sélectionnant la boite de dialogue avec le bouton droit, je clique sur : GoTo > ControlEvent Table

Menu

J’arrive alors dans le menu suivant :

ControlEvent

Il décrit l’enchainement des pages lorsque l’on clique sur les bouton ‘Previous’, ‘Next’ et ‘Cancel’.

On peu en déduire l’enchainement avec la page précédente et de la page suivantes de la façon suivante :

 Welcome_Dialog <>Licence_Dialog<>Product_Key_Dialog

Pour pouvoir supprimer la page Licence_Dialog, je vais simplement me rendre dans sur la page précédente Welcome_Dialog, et changer la destination du bouton ‘Next’ en lui indiquant de pointer sur la page
Product_Key_Dialog. La séquence d’enchainement des page de dialogue va alors ressembler à ceci :

 Welcome_Dialog <>Product_Key_Dialog

Voila, il n’y a rien de plus simple. Les propriétés des boutons de la page Welcome_Dialog ce trouvant dans la même table ‘ControlEvent’, je n’est qu’a modifier Welcome_Dialog comme je viens de vous l’expliquer :

welcome

Je n’est plus qu’a reconstruire mon package en allant dans le menu Project > Build

La relance du nouveau MSI modifié me montre que la page d’acceptation de la licence n’existe plus ! C’est à nouveau une pleine réussite.!!

Vous pouvez bien évidement tester ceci sur toute autre page de dialogue. Je vous donne rendez vous très bientôt pour le dernier épisode de cette petite série sur l’édition des .MSI.

Lisez également :
Windows Installer MSI : Modifiez vos packages à la volée – Part 1
Windows Installer MSI : Modifiez vos packages à la volée – Part 2
Windows Installer MSI : Modifiez vos packages à la volée – Part 3

dimanche 14 février 2010

Windows Installer MSI : Modifiez vos packages à la volée – Part 1

Si comme moi vous vous passionnez pour le déploiement silencieux d‘applications. vous allez sans doute apprécier ces quelque trouvailles que j‘ai faite la semaine dernière en me penchant de plus prêt sur les packages MSI.

Pour rappel, le format MSI est le format que Microsoft à mis au point pour pouvoir packager et déployer des applications. D ‘un point de vu technique, c’est une base de donnée ‘évoluée’ contenant des fichiers à installer, des propriétés d‘installations et des graphismes modulables pour la présentation.

Dans le meilleur des monde, cette technologie à pour objectif de faciliter le déploiement de vos applications, cependant il arrive que ce ne soit pas toujours le cas ;

- par exemple, le package MSI qui possède des conditions d’installation, refusera de s‘installer si une application X (dont vous n’avez, bien évidement, absolument pas besoin) n’est pas déjà installé.

- autre exemple, vous souhaitez déployer un packages qui supporte l’installation silencieuse ( Msiexec /i fichier.msi /q), cependant aucune option n’a été défini pour vous permettre d’automatiser la prise en compte du numéro de série du soft, et malgré tout vos efforts, il est impossible de rendre silencieuse la fenêtre qui vous demande systématiquement le numéro de série.

les exemples sont multipliables à l’infini et face à ce type de problèmes, les solutions de contournement peuvent parfois s‘avérer laborieuse :
- Soit vous repackagez ( trop long !)
- Soit vous utilisez un script qui simule la saisie de caractères au clavier (pas toujours fiable, et long à régler !)
- Soit vous éditez le package (tellement plus geek, et aussi plus rapide, c’est l ‘objet de cette série de  billets !)

Comment éditer un MSI.

Pour pénétrer dans l’entre du fichier MSI nous allons utiliser un vieux programme dont la conception et l‘efficacité redoutable ont traversés le temps sans encombre puisque créé en 2004, il fonctionne parfaitement sur un Windows 7 64 Bits ! J‘ai nommé : Qwerty.msi ! banana_juice

N’étant pas en mesure de vous donner une méthode universelle d‘édition (chaque fichier étant un cas particulier ) je vais vous présenter quelques exemples concret agrémentés des solutions qu’offre la simple modification du package.

Exemple 1 – Installer le WAIK Unattended

Si je cherche à installer le WAIK (Windows Automated installation  Kit) de façon silencieuse, le package refusera de s’installer prétextant que l’installation ne peut se faire qu‘en mode ‘Full Interface’.

NotWorking

Afin de résoudre le problème, je vais créer une installation administrative en tapant  dans une invite de commande avec élévation administrative: Msiexec /a waikAMD64.msi

Une fois l’installation administrative réalisée je lance Qwerty.msi et j’ouvre avec, le fichier MSI qui se trouve dans mon installation administrative en veillant bien à ce que sur l’option source soit sélectionné “Load Database only

new project

L’interface de Qwerty.msi apparait. Sur le coté droits des onglets me permettent d’accéder aux catégories principales constituant un package MSI.Je choisi l’onglet TABLES et sélectionne la propriété ‘LaunchConditions” qui contient les pré-requis obligatoire pour autoriser l’installation du package.

table UI-level

Dans le panel de droite, une condition particulièrement intéressante : [String MustHaveFullUI] qui affiche une erreur dans le cas ou on décide de passer par une installation silencieuse.

table ui-level-delete

Je supprime la condition et reconstruit le MSI en allant dans le menu  Project>BUILD

Je récupère le nouveau MSI compilé dans le sous répertoire  ..%InstallationAdministrative%\wAIKAMD64.msi.Sources\Debug\Disk1_1\wAIKAMD64.msi

je le place à la racine de mon installation administrative.

Je relance l’installation silencieuse, avec la commande : Msiexe /i wAIKAMD64.msi /qb et là… ça ne fonctionne pas !

NotWorking2

En effet le MSI cherche une source CD précise qui n’il n’arrive pas à retrouver (probablement un oublie de paramétrage des auteurs du package lié à l’installation administrative)  … Aucun problème je re-édite mon package avec Qwerty.msi et vais spécifier une source unique pour tout les fichiers.

Querty-media

Toujours dans l ‘onglet TABLES, je sélectionne la propriété Medias, et y change la valeur KB3AIK_FR en  DEFAULT pour que tout les fichiers soit recherchés par l’installer à partir du même endroit.

modifs

Je relance à nouveau  la construction du package MSI en allant dans le menu  Project>BUILD

Puis Je récupère le nouveau MSI compilé et le replace à la racine de mon installation administrative. Je re-exécute l’installation silencieuse par la commande Msiexe /i wAIKAMD64.msi /qb, et la … Formidable, ça fonctionne à merveille…

working

Voila c’est assez pour un premier exemple, j’espère vous avoir donné envie d‘aller trifouiller dans vos package MSI.  Je publierai prochainement un autre billet pour vous expliquer comment modifier/supprimer l‘apparition des pages du package d’installation. D’ici la je  vous encourage à essayer cette méthode qui malgré des apparences complexe peut être métrisée dans des délais très court (il y’a une semaine je n’y connaissais rien, c’est vous dire !).

Lisez également :
Windows Installer MSI : Modifiez vos packages à la volée – Part 1
Windows Installer MSI : Modifiez vos packages à la volée – Part 2
Windows Installer MSI : Modifiez vos packages à la volée – Part 3

mercredi 10 février 2010

64 Bits : Virtualisation d 'applications avec Altiris SWV


Je vous avais parlé il y’a quelque temps d’Altiris SVS ; la solution gratuite de virtualisation d’application de Symantec. Bonne nouvelle, si vous êtes utilisateur de Windows 7 en version 64 Bits, Symantec vient de sortir une version beta qui supporte ce type d’architecture.

Le soft s’appel désormais SWV soit : Symantec Workspace Virtualisation et peut être téléchargé gratuitement ici : http://betanew.altiris.com/

Votre enregistrement sur le site est obligatoire, et soumis à validation sous 48h (pas de panique tout le monde est accepté). Apres cette étape vous pourrez downloader le soft et virtualiser tout ce qui passe à porter de votre sourie comme applications native 64 bits, ou comme applications 32 bits fonctionnant sur un OS 64 Bits.

Note : je ne suis absolument pas en mesure de vous confirmer que cette solution restera gratuite lorsqu‘elle ne sera plus en beta (Apres tout, c’est Symantec, pas mère Theresa…), donc je ne saurais trop vous recommander de ne pas trop trainer pour télécharger cette beta…

Warp Up !!!

 

Mots clés Technorati : ,,,,,