Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We certainly see that some of .exe file to be executed, but what is the different functionality of the MSI files?

share|improve this question
up vote 6 down vote accepted

MSI is acronym for Microsoft Silent Installer, it runs .exe installer in background.

It is used in GPO, for example if you want to deploy an application on a Windows Infrastructure you are managing, You have to create a new GPO rule with the MSI and the MSI will be installed on every machine without user intervention needed.

GPO being "Group Policy Object" which "provides the centralized management and configuration of operating systems, applications, and users' settings in an Active Directory environment."

share|improve this answer
GPO being "Group Policy Object" which "provides the centralized management and configuration of operating systems, applications, and users' settings in an Active Directory environment." – RedGrittyBrick Sep 13 '12 at 9:18
Thanks, I forgot to explain GPO. – Clem Sep 13 '12 at 9:20
...more like [M]icro[s]oft [I]nstaller. Where the heck did you get "silent" from? No, MSIs don't run PE exes in the background (they're capable of it, but that's not their only or even primary function). – Bob Jul 9 '14 at 16:12
The Windows Installer (previously known as Microsoft Installer) is a software component... - Wikipedia. Yes, MSI is MicroSoft Installer, and not silent installer. – Jet Jul 9 '14 at 16:20
Most of this answer is actually wrong. Please read the other answers in this thread. – Stein Åsmul Jul 20 '14 at 1:23

What is an installer? Well, an installer prepares a system to allow a program to run: it installs that program. During this process, an installer (on Windows) might copy files into system locations, place shortcuts to launch it, update libraries, remove older versions, etc.. There is no universal installer standard or format; any program that performs these actions ("installs" another program) may be called an installer.

An "exe" file in Windows is known as the Portable Executable file, and contains arbitrary instructions, either native machine code or .NET bytecode. There is nothing about the PE format that will identify it as an installer. Of course, with arbitrary machine code you are able to write an installer - and those "exe" installers you see take that approach.

Some people write their own custom installers. Others use installer generators to save some time and effort; these include NSIS, InnoSetup, InstallShield and more.

MSI is a specific format used to store information about an installation, a database of what steps to take and which files to put where. By itself, it is not executable; it is actually interpreted by msiexec.exe on Windows systems. This interpreter will then follow the steps laid out in the MSI file. You could in theory create any exe that uses a database similar to MSI (and NSIS, InnoSetup, etc., do something similar).

What makes MSI special is that it's included with and interpreted by built-in tools, and it is also integrated into Active Directory for easier deployment across many machines in a corporate environment, and Clem's answer covers that in more detail.

share|improve this answer

MSI files are database files (specifically MS-SQL databases) which describe the installation via database tables and install via a complex set of installation sequences defined within the MSI file itself.

MSI files are not installing as EXE files in the background as "Clem" writes - they are consumed by the Windows Installer Engine that is accessible via the msiexec.exe command line interface. Then the install itself is run via two different sequences: the user interface sequence and the actual installation sequence - the latter runs in system context using the LocalSystem account. This arrangement is necessary to allow the installer temporary admin rights, or elevated rights which is the proper term.

EXE installers can be anything. Most often they are older style script based installers that are not based on databases, but an EXE file can also be a wrapper containing an MSI files and associated runtime components. It all depends and must be investigated in each particular case.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .