Rob van der Woude's Scripting Pages

Windows Installer (MSIEXEC)

Documented command line arguments

Type MSIEXEC /? and you'll get the following on-screen help:

	Windows ® Installer. V 5.0.7601.17514
	
	msiexec /Option <Required Parameter> [Optional Parameter]
	
	Install Options
		</package | /i> <Product.msi>
			Installs or configures a product
		/a <Product.msi>
			Administrative install - Installs a product on the network
		/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
			Advertises a product - m to all users, u to current user
		</uninstall | /x> <Product.msi | ProductCode>
			Uninstalls the product
	
	Display Options
		/quiet
			Quiet mode, no user interaction
		/passive
			Unattended mode - progress bar only
		/q[n|b|r|f]
			Sets user interface level
			n - No UI
			b - Basic UI
			r - Reduced UI
			f - Full UI (default)
		/help
			Help information
	
	Restart Options
		/norestart
			Do not restart after the installation is complete
		/promptrestart
			Prompts the user for restart if necessary
		/forcerestart
			Always restart the computer after installation
	
	Logging Options
		/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
			i - Status messages
			w - Nonfatal warnings
			e - All error messages
			a - Start up of actions
			r - Action-specific records
			u - User requests
			c - Initial UI parameters
			m - Out-of-memory or fatal exit information
			o - Out-of-disk-space messages
			p - Terminal properties
			v - Verbose output
			x - Extra debugging information
			+ - Append to existing log file
			! - Flush each line to the log
			* - Log all information, except for v and x options
		/log <LogFile>
			Equivalent of /l* <LogFile>
	
	Update Options
		/update <Update1.msp>[;Update2.msp]
			Applies update(s)
		/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
			Remove update(s) for a product
	
	Repair Options
		/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
			Repairs a product
			p - only if file is missing
			o - if file is missing or an older version is installed (default)
			e - if file is missing or an equal or older version is installed
			d - if file is missing or a different version is installed
			c - if file is missing or checksum does not match the calculated value
			a - forces all files to be reinstalled
			u - all required user-specific registry entries (default)
			m - all required computer-specific registry entries (default)
			s - all existing shortcuts (default)
			v - runs from source and recaches local package
	
	Setting Public Properties
		[PROPERTY=PropertyValue]
	
	Consult the Windows ® Installer SDK for additional documentation on the
	command line syntax.
	
	Copyright © Microsoft Corporation. All rights reserved.
	Portions of this software are based in part on the work of the Independent JPEG Group.

Undocumented (1) command line arguments

My colleague Adriaan Westra taught me the trick to suppress reboots when installing .MSI files from the command line (better believe me, /norestart rarely does what its name suggests):

MSIEXEC /i myfile.msi /qn REBOOT=ReallySuppress

This made me curious if there are more unknown arguments, so I started experimenting.
Try for yourself, type:

STRINGS MSIEXEC.EXE | FINDSTR /R /C:"[A-Z][A-Z]\="

and you'll find the following "undocumented" command line arguments (called "Public Properties" in MSIEXEC's on-screen help) and their default values:

REMOVE=ALL
ACTION=ADMIN
REINSTALL=ALL
REBOOTPROMPT=""
REBOOT=Force
REBOOT=ReallySuppress
MSIPATCHREMOVE=
PATCH=
Note: (1) Actually these command line arguments are documented, but they are not mentioned in the on-screen help displayed when typing MSIEXEC /?.

More to explore


page last modified: 2016-09-19; loaded in 0.0015 seconds