Quelle est la principale différence entre les fichiers d'installation MSI et EXE?

13

Nous voyons certainement une partie du .exefichier à exécuter, mais quelles sont les différentes fonctionnalités des fichiers MSI?

Dhaiwat budh
la source
Voir les réponses ci-dessous, ou peut-être lire les avantages de msi pour les entreprises sur serverfault.com. Cet article décrit en détail les avantages que les fichiers MSI sont censés générer.
Stein Åsmul

Réponses:

7

MSI est l'acronyme de Microsoft Silent Installer, il exécute le programme d'installation .exe en arrière-plan.

Il est utilisé dans GPO, par exemple si vous souhaitez déployer une application sur une infrastructure Windows que vous gérez, vous devez créer une nouvelle règle de GPO avec le MSI et le MSI sera installé sur chaque machine sans intervention de l'utilisateur.

Le GPO est un "objet de stratégie de groupe" qui "assure la gestion et la configuration centralisées des systèmes d'exploitation, des applications et des paramètres des utilisateurs dans un environnement Active Directory".

Clem
la source
1
Le GPO est un "objet de stratégie de groupe" qui "assure la gestion et la configuration centralisées des systèmes d'exploitation, des applications et des paramètres des utilisateurs dans un environnement Active Directory".
RedGrittyBrick
5
... plus comme [M] icro [s] oft [I] nstaller. D'où diable es-tu devenu "silencieux"? Non, les MSI n'exécutent pas d' exes PE en arrière-plan (ils en sont capables , mais ce n'est pas leur seule ou même leur fonction principale).
Bob
3
The Windows Installer (previously known as Microsoft Installer) is a software component...- Wikipédia . Oui, MSI est MicroSoft Installer et non un programme d'installation silencieux.
Jet
3
La plupart de cette réponse est en fait fausse. Veuillez lire les autres réponses dans ce fil.
Stein Åsmul
J'entends ce formulaire complet Microsoft Silent Installerpour la première fois. J'ai toujours su que MSI signifie M icro s oft I nstaller ». Avez-vous une citation officielle qui le dit?
RBT
11

Qu'est-ce qu'un installateur? Eh bien, un installateur prépare un système pour permettre l'exécution d'un programme: il installe ce programme. Au cours de ce processus, un programme d'installation (sous Windows) peut copier des fichiers dans des emplacements système, placer des raccourcis pour le lancer, mettre à jour des bibliothèques, supprimer des versions plus anciennes, etc. Il n'y a pas de norme ou de format universel d'installation; tout programme qui effectue ces actions ("installe" un autre programme) peut être appelé un programme d'installation.

Un fichier "exe" dans Windows est connu sous le nom de fichier exécutable portable et contient des instructions arbitraires, soit du code machine natif, soit du bytecode .NET. Il n'y a rien dans le format PE qui l'identifie en tant qu'installateur. Bien sûr, avec du code machine arbitraire, vous pouvez écrire un programme d'installation - et les programmes d'installation "exe" que vous voyez adoptent cette approche.

Certaines personnes écrivent leurs propres programmes d'installation personnalisés. D'autres utilisent des générateurs d'installation pour gagner du temps et des efforts; il s'agit notamment de NSIS, InnoSetup, InstallShield et plus encore.

MSI est un format spécifique utilisé pour stocker des informations sur une installation, une base de données sur les étapes à suivre et les fichiers à placer. En soi, il n'est pas exécutable; il est en fait interprété par msiexec.exesur les systèmes Windows. Cet interprète suivra ensuite les étapes décrites dans le fichier MSI. Vous pourriez en théorie créer n'importe quel exe qui utilise une base de données similaire à MSI (et NSIS, InnoSetup, etc., faire quelque chose de similaire).

Ce qui rend MSI spécial, c'est qu'il est inclus et interprété par des outils intégrés, et qu'il est également intégré à Active Directory pour un déploiement plus facile sur de nombreuses machines dans un environnement d'entreprise, et la réponse de Clem couvre cela plus en détail.

Bob
la source
6

Les fichiers MSI sont des fichiers de base de données (en particulier des bases de données MS-SQL) qui décrivent l'installation via des tables de base de données et s'installent via un ensemble complexe de séquences d'installation définies dans le fichier MSI lui-même.

Les fichiers MSI ne s'installent pas en tant que fichiers EXE en arrière-plan comme l'écrit "Clem" - ils sont consommés par le moteur Windows Installer accessible via l' interface de ligne de commande msiexec.exe . Ou peut-être essayez les exemples de ligne de commande annotés msiexec.exe de l'installateur avancé . Ensuite, l'installation elle-même est exécutée via deux séquences différentes: la séquence d'interface utilisateur et la séquence d'installation réelle - cette dernière s'exécute dans le contexte du système à l'aide du compte LocalSystem . Cette disposition est nécessaire pour accorder au programme d'installation des droits d'administrateur temporaires ou des droits élevés, ce qui est le terme approprié.

Les installateurs EXE peuvent être n'importe quoi. Le plus souvent, ce sont des programmes d'installation basés sur des scripts de style plus ancien qui ne sont pas basés sur des bases de données, mais un fichier EXE peut également être un wrapper contenant des fichiers MSI et des composants d'exécution associés. Tout dépend et doit être étudié dans chaque cas particulier.

Stein Åsmul
la source