Windows Installer (MSIEXEC)

Documented command line arguments

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

    Windows ® Installer. V 3.01.4000.1823 
    
    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 collegue Adriaan Westra taught me the trick to suppress reboots when installing .MSI files from the command line (better believe me, /norestart rarely does what it 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):

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