Determine the name of a feature in an MSI to install from the command line
You can run the installer in verbose logging mode
msiexec /i product.msi /l*v log.txt
Then look for changes to ADDLOCAL
property in the log. Thus you will be able to determine which features are installed with the above selection in the GUI.
Otherwise, you can use Orca as suggested by jscott and analyze the package yourself. Although I think using verbose log is simpler solution and you will not miss a feature to be added to ADDLOCAL
to get a working installation.
Get a copy of Microsoft's orca.exe
-- it is a simple MSI editor. There are other editors out there that should work just as well for this. Open the MSI in Orca and check the Feature
table. This table will list all available feature sets, provided the vendor used them in packaging the installer.
The easiest way would be to contact the application vendor and find out what the command line switches are. With that said, sometimes a vendor chooses not to make that information available. In that case, I like to use Process Monitor to observe the installation process.
Most installers work the same way. You download a single file and the file extracts all of the actual installation files into a temporary directory. Since we need to see where the installer is extracting to, use process monitor to observe the installer as soon as it's started. Do not continue with the installer, or exit it. Doing either action will cause the temporary files to be deleted. Copy all of the extracted files from the temp directory. You will use these files for your custom installer. After you have located the particular process (in Process Monitor), filter out all of the other processes. You can then observe the process as you continue the install sequence. What you are looking for is an msiexec command that calls the install for the feature you have requested.
This can be a time consuming process of trial and error, but I have had great success in customizing installs of applications where vendors don't provide that information...
You might find that the MSI installer supports the msiexec administrative installation option msiexec /a <yourpackage.msi>
. This will run the installer, but instead of actually installing the package, it will generate an install point for the software, customised with the options that you specify. You can then subsequently deploy the .msi created at the specified install point, in the manner you normally deploy your software.
It largely depends upon what the vendor has included support for, so as per @newmanth's answer, you may need to call the vendor and see what deployment options they support.