Qu'est-ce que le format de fichier MSI ?
Les fichiers avec l'extension .msi stockent un package d'installation d'application ou un package de pilotes pour Microsoft Windows. Les fichiers .msi ont une structure standardisée définie par des métadonnées et contiennent toutes les ressources nécessaires à l'installation d'une application. Le nom MSI provient de Microsoft Installer, le nom original de la technologie avant que Microsoft ne la renomme Windows Installer.
Structure d'un package MSI
Les packages .msi sont des bases de données relationnelles enregistrées au format OLE2 Compound File Binary - le même conteneur utilisé par les anciens documents binaires Office. En raison de ce conteneur partagé, les huit premiers octets magiques (D0 CF 11 E0 A1 B1 1A E1) ne sont pas uniques au .msi ; le format se distingue par ses flux de base de données internes tels que _Tables et _Columns. Chaque package est divisé en :
- Un ou plusieurs produits à installer
- Des composants de produit - les unités atomiques de l'installation (fichiers, clés de registre, raccourcis)
- Des fonctionnalités (Features) - structures hiérarchiques plus larges comprenant des composants ; les utilisateurs peuvent choisir des fonctionnalités optionnelles lors de la configuration
- Des chemins clés (Key paths) pour les composants - éléments critiques vérifiés lors de l'installation ou de la désinstallation des composants
Bien qu'un seul installateur puisse regrouper plusieurs produits, il ne peut pas vérifier nativement les dépendances entre produits. La gestion des dépendances est gérée par des outils de désinstallation ou via l'interface graphique. Le .msi reste le format d'installateur dominant pour les logiciels d'entreprise et les logiciels Windows hérités.
Création et utilisation des packages Windows Installer
Les packages .msi sont créés avec des outils dédiés tels que le WiX Toolset, Orca (inclus dans le Windows SDK pour inspecter et éditer les bases de données), ou des produits de création commerciaux. Le processus d'installation est piloté par msiexec.exe et divisé en trois phases :
- Interface utilisateur - les utilisateurs configurent les options d'installation
- Exécution - l'installation réelle, s'exécutant en mode *immédiat* ou *différé* (en attente)
- Rollback - si l'installation échoue, la transaction est annulée et aucun changement système ne persiste
Le contenu d'un package .msi peut être extrait sans exécuter l'installateur en utilisant 7-Zip ou via msiexec /a (installation administrative).
Versions de Windows Installer
Les packages .msi ont fait leurs débuts avec Office 2000 en 1999 (Windows Installer 1.0) ; le moteur d'exécution était également intégré à Windows 2000. La version 5.0 a été livrée en 2009 avec Windows 7 et Windows Server 2008 R2. Les formats étroitement liés incluent .msp (packages de correctifs fournissant des différences binaires aux produits installés) et les fichiers de transformation .mst qui modifient le comportement de l'installateur au moment de l'exécution. Le nouveau standard .msix, introduit en 2018, combine les technologies .msi, .appx, App-V et ClickOnce pour une sécurité accrue, le sandboxing et la distribution via le Store - mais le .msi continue d'être largement déployé pour les logiciels d'entreprise et de bureau traditionnels. Les fichiers de charge utile à l'intérieur d'un .msi sont généralement compressés sous forme de flux .cab intégrés dans la base de données.
Sécurité et sûreté
RISQUE : MEDIUMUn MSI est un installateur d'apparence fiable, ce qui en fait un déguisement privilégié pour les logiciels malveillants : les attaquants envoient des MSI piégés (souvent avec des actions personnalisées malveillantes qui exécutent du code pendant l'installation) ou de fausses « mises à jour logicielles ». N'installez des MSI que depuis le site officiel du fournisseur et privilégiez les packages signés - un clic droit > Propriétés > Signatures numériques affiche l'éditeur ; un MSI non signé provenant d'une source inconnue est un signal d'alarme. Comme le MSI s'exécute avec des privilèges d'installateur, un fichier malveillant peut faire tout ce qu'un administrateur peut faire. L'astuce du renommage ou de 7-Zip vous permet d'inspecter le contenu avant l'exécution.
Détails du format
en brefProgrammes qui ouvrent les fichiers MSI
msiexec /i package.msi /qn. Pour désinstaller : msiexec /x package.msi. Détails techniques
spécifications approfondies| Format de conteneur | OLE2 Compound File Binary (CFBF) - même structure externe que les anciens fichiers Office binaires .doc et .xls |
| Octets magiques (offset 0) | D0 CF 11 E0 A1 B1 1A E1 - signature OLE2 partagée avec d'autres documents composés ; non unique au MSI seul |
| Type MIME | application/x-msi |
| Tables de base de données internes | Tables relationnelles à schéma fixe incluant File, Registry, Component, Feature, Property, et CustomAction |
| Stockage de la charge utile | Fichiers compressés sous forme de flux Cabinet (.cab) intégrés dans la base de données ou référencés comme archives .cab externes |
| Algorithmes de compression | Les flux Cabinet utilisent la compression LZX ou MSZIP (compatible zlib) |
| Modèle de transaction | Rollback complet en cas d'échec - toutes les modifications de fichiers et de registre sont annulées via un mécanisme de script de copie fantôme |
| Moteur d'exécution | msiexec.exe (intégré à Windows) ; installation : /i, suppression : /x {ProductCode}, réparation : /f, extraction admin : /a |
| Modèle de privilèges | Prend en charge les modes d'installation par machine (élevé, ALLUSERS=1) et par utilisateur (non élevé) |
| Installation annoncée | Les classes COM et les raccourcis peuvent être annoncés - enregistrés mais pas déployés avant la première utilisation (installation à la demande) |
| Support des correctifs | Les fichiers de correctifs .msp fournissent des différences binaires et des données de table supplémentaires ciblant un code produit MSI spécifique |
| Support des transformations | Les fichiers de transformation .mst remplacent les valeurs de propriété et les données de table au moment de l'installation sans modifier le .msi de base |
| Modules de fusion | Les packages de modules de fusion .msm encapsulent des composants réutilisables pour inclusion dans plusieurs bases de données .msi |
| Actions personnalisées | La logique pré- et post-installation peut exécuter du VBScript, JScript, des points d'entrée DLL ou des processus EXE externes |
| Enregistrement de désinstallation | Écrit automatiquement les entrées HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ProductCode} |
| Versions du moteur | Windows Installer 1.0 (1999) jusqu'à 5.0 (2009, fourni avec Windows 7 et Server 2008 R2) |
| Publié | 2000 (Windows Installer 1.0, shipped with Office 2000 / Windows 2000) |
| Spécification | learn.microsoft.com |
Conversions MSI
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MSI.
Foire aux questions
Comment ouvrir ou exécuter un fichier MSI ?
Puis-je ouvrir un fichier MSI sur un Mac ou Linux ?
Quelle est la différence entre un installateur MSI et EXE ?
Comment installer un MSI silencieusement / pour plusieurs ordinateurs ?
msiexec /i package.msi /qn (silencieux, pas d'interface). Les administrateurs déploient les MSI à grande échelle via Group Policy, SCCM ou Intune, souvent avec une transformation (.mst) pour personnaliser les paramètres.Comment désinstaller un programme installé à partir d'un MSI ?
msiexec /x package.msi. Comme Windows Installer suit le package, la suppression est propre.