Extract files from an MSI package

To extract all files from a .msi file, use the following msiexec command and arguments.
Published on Wednesday, 2 November 2022

PowerShell 5.0 logo

Windows has the ability to allow the MSI package (.msi file) contents to be extracted using the command line or via a script. I keep forgetting the correct msiexec syntax to use to extract files from an .msi file (MSI package), so here is a short post with the command.

To extract all files from a .msi file, use the following msiexec.exe command:

& C:\Windows\System32\msiexec.exe /a C:\Users\user\path\to\file.msi /qb TARGETDIR=C:\Users\users\temp

A more PowerShell way is to:

Start-Process `
  -NoNewWindow C:\Windows\System32\msiexec.exe `
  -ArgumentList "/a C:\Users\user\path\to\file.msi /qb TARGETDIR=C:\Users\users\temp" `
  -Wait

Make sure you type out full paths and the destination directory must exist. Here are the msiexec.exe command arguments used to extract files:

  • /a: Specifies administrative installation
  • /qb: Specifies there's a basic UI during the installation process.
  • TARGETDIR=: Represents the installation directory for an InstallScript installation, or for an administrative Windows Installer based installation (when the user runs Setup.exe or MsiExec.exe with the /a command-line switch).

7-Zip can also be used to extract .msi files (read in Dutch "7-Zip installeren")