How to install a .MSI file unattended


As part of our hands-on-lab builds (www.microsoft.com/sqlserverlabs), I frequently have to install .MSI files.
Using unattended installations for the majority of software installations significantly reduces installation time.

The process below indicates how to install a .MSI unattended.

 

How to install an MSI file unattended

MSIEXEC /a “product.msi” /qn

Example:

MSIEXEC /a “d:\downloads\DataExplorer_1.0.3207.2 (64-bit)” /qn

Typically this installation will not show any user interaction or verbose logging.
Combine with the Full MSI Syntax options as listed below to output installation progress to a log file.

 

Other installation considerations – passive mode

Another great option to consider is using the /passive parameter.
This parameter will provide UI interaction and show progress graphically.

 

MSIEXEC /a “product.msi” /passive

 

 

Full MSI syntax options

 

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]

 

 

Comments (0)