What is an MSI file?
MSI (Microsoft Installer) is a database-driven installer package format for Windows, introduced with Windows 2000. Unlike simple executable setup programs, an MSI file is a relational database (stored as an OLE Compound Document) that contains structured tables defining what to install, where, and how. This structured approach enables features like atomic rollback, repair, and remote deployment that simple .exe installers cannot provide.
msiexec.exe is the Windows component that processes MSI packages. When you double-click an MSI file, Windows invokes msiexec.exe to read the database and perform the installation.
How to open MSI files
- Windows — Double-click to run the installer (invokes
msiexec.exe) - msiexec (Windows CLI) —
msiexec /i package.msifor interactive,/qnfor silent - Orca (Windows SDK) — Microsoft’s free MSI database editor
- 7-Zip (Windows) — Extract file contents without installing
- Super Orca / InstEd (Windows) — Free third-party MSI editors
Technical specifications
| Property | Value |
|---|---|
| Format | OLE Compound Document (same as .doc, .xls pre-2007) |
| Internal structure | Relational database with tables and streams |
| Signing | Authenticode digital signatures |
| Transform files | .mst files modify MSI behavior without editing the original |
| Patch files | .msp files apply incremental updates |
| Magic bytes | D0 CF 11 E0 (OLE compound document signature) |
Common use cases
- Enterprise software deployment: System administrators push MSI packages via Group Policy or SCCM/Intune to thousands of machines without user interaction
- Silent installation:
msiexec /i app.msi /qn /norestartinstalls with no UI - Rollback: If installation fails mid-way, MSI can undo all changes made up to the failure point
- Repair:
msiexec /f package.msiscans and restores missing or corrupted files - Software auditing: Windows maintains an MSI registry (
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) for tracking installed applications
msiexec command reference
REM Standard install (GUI)
msiexec /i package.msi
REM Silent install, no restart, log to file
msiexec /i package.msi /qn /norestart /l*v install.log
REM Uninstall by product code
msiexec /x {PRODUCT-GUID-HERE} /qn
REM Repair
msiexec /f package.msi
REM Apply transform (customization)
msiexec /i package.msi TRANSFORMS=custom.mst /qn
REM Apply patch
msiexec /p patch.msp /qn
MSI vs EXE installers
| Feature | MSI | EXE installer |
|---|---|---|
| Atomic rollback | ✅ | ❌ (usually) |
| Group Policy deployment | ✅ | ❌ |
| Windows Installer service | ✅ | ❌ |
| Transform support | ✅ | ❌ |
| Repair built-in | ✅ | ❌ |
| Customization | Via .mst | Limited |
Many software vendors wrap an EXE bootstrapper around an MSI (e.g., setup.exe that extracts and runs product.msi). The EXE handles prerequisites (like .NET), then hands off to the MSI for the actual installation.
Security considerations
MSI files can execute arbitrary code during installation (via Custom Actions). Always verify the digital signature of an MSI before running it: right-click → Properties → Digital Signatures. A valid signature from the software vendor confirms the file hasn’t been tampered with. MSI files from untrusted sources should be scanned with antivirus and optionally inspected in Orca before execution.