Packaging: Créer un paquet MSI avec ProcMon et AdvInstaller

Créé par Microsoft avec Windows 2000, le système d’installation Windows Installer est un moyen rapide et adapté de déployer des logiciels sur un parc Windows. Ce format d’installeur (.msi) permet en effet d’être exécuté silencieusement sur des machines d’un domaine Active Directory via une stratégie de groupe. Au regard des solutions commerciales couteuses qui nécessitent l’installation d’un agent sur les postes clients, il parait intéressant d’exploiter ainsi une fonctionnalité d’Active Directory. Mais les éditeurs de logiciels ne fournissent que rarement leurs installateurs dans ce format, et il faudra donc les reconditionner soit même.

La méthode ici employée, convient à des installations peu complexes. Elle implique l’utilisation de deux outils gratuits, Process Monitor de SysInternals, et la version limitée de Advanced Installer de Caphyon.

Process Monitor
est un outil de surveillance de l’activité des processus du système. Il permettra de définir les modifications effectuées par l’installateur d’origine lors de son exécution.
Cette méthode, s’apparentant à du « reverse enginering », a l’avantage de ne pas nécessiter un poste « propre », en comparaison des solution de « snapshot » telles que WinINSTALL LE.

Advanced Installer
est un logiciel de création de programmes d’installation. Dans sa version gratuite, il permet de créer des paquets MSI avec un nombre réduit de fonctionnalités. Doté d’un interface graphique conviviale, il sera suffisant pour reproduire des installations simples.

 

Création d’un paquet MSI pour l’installation du plugin Flash d’Adobe sur Windows XP

Pour éviter toute difficultés, les opérations suivantes sont effectuées sur un poste similaire a ceux qui seront concernés par le déploiement. En effet, en fonction de la version de Windows, l’arborescence peut ne pas être exactement la même. De même pour l’architecture processeur, les binaires ne sont pas les mêmes. Suivant le cas, il est donc conseillé de créer un paquetage par type de poste.

Système d’exploitation: Windows XP
Architecture processeur: 32 bits
Navigateur: Firefox

1 – Analyse du comportement de l’installateur d’origine

  • Lancer Process Monitor en mode « capture » (Ctrl + E) puis effectuer l’installation du plugin Flash de façon conventionnelle.
  • Stopper la capture une fois l’installation terminée, et filtrer le résultat (Ctrl +L) à l’aide des conditions suivantes:
    – Process Name | is | install_flash_player.exe | Include
    – Category | is | Write | Include

La lecture est maintenant aisée, les actions suivantes se distingues.

Écriture du système de fichier:

  • C:\WINDOW\system32\Macromed\Flash\
  • C:\WINDOW\system32\Macromed\Flash\FlashUtil10o_Plugin.exe
  • C:\WINDOW\system32\Macromed\Flash\NPSWF32.dll
  • C:\WINDOW\system32\Macromed\Flash\flashplayer.xpt

 

Ecriture du registre:
– HKLM\SOFTWARE\MozillaPlugins@adobe.com/FlashPlayer
– HKLM\SOFTWARE\Macromedia\FlashPlayerPlugin

 

2 – Reproduction du processus d’installation:

  • Récupérer les trois fichiers « FlashUtil10o_Plugin.exe », « NPSWF32.dll » et « flashplayer.xpt »
  • Effectuer un export des clés « FlashPlayerPlugin » et « @adobe.com/FlashPlayer » via Regedit.
  • Créer un nouveau projet sous Advanced Installer en utilisant le modèle générique « Simple »
  • Lorsque l’assistant le demande, renseigner les fichiers devant être copiés
  • Définir le répertoire de destination dans le champs suivant:
    Product Information -> Install Parameters -> Application Folder : [SystemFolder]MacromedFlash
  • Importer les fichiers .reg :
    Ressources -> Registry ->
    Import REG File
  • Compiler (F7)