Thursday, April 15, 2010

Windows Installer : MSIEXEC Silent Install End to END

The Windows Installer technology uses Msiexec.exe for installing MSI and MSP packages. This tool gives you full control over the installation process, allowing you to set:

  • install options (install, uninstall, administrative install, advertise a product)
  • display options (full, basic or no UI during the installation)
  • restart options (if the machine will be restarted after the installation)
  • logging options
  • update options (apply or remove updates)
  • repair options (only for an installed package)
  • public properties which are used by the installation

The usual form of the msiexec command line is this:

msiexec.exe <install_option> <path_to_package> [package_parameters]

Install Options

When launching an installation package, you can set the install type through these options:

msiexec.exe [/i][/a][/j{u|m|/g|/t}][/x] <path_to_package>


  • /i - normal installation
  • /a - administrative install
  • /j - advertise the product

    • u - advertise to the current user
    • m - advertise to all users
    • /g - the language identifier used by the advertised package
    • /t - apply transform to advertise package

  • /x - uninstall the package

Sample command line:

msiexec.exe /i "C:\Example.msi"

Display Options

The user interface level of the installation can be configured according to the target environment. For example, a package distributed to clients should have a full UI, while a package deployed through Group Policy should have no user interface. Msiexec.exe sets the UI level of the installation through these options:

msiexec.exe /i <path_to_package> [/quiet][/passive][/q{n|b|r|f}]


  • /quiet - quiet mode (there is no user interaction)
  • /passive - unattended mode (the installation shown only a progress bar)
  • /q - set the UI level:

    • n - no UI
    • b - basic UI
    • r - reduced UI
    • f - full UI

Sample command line:

msiexec.exe /i "C:\Example.msi" /qn

Restart Options

Sometimes an installation overwrites files which are in use or it needs to reboot the machine in order to finish. The reboot policy used by the installation can be set through these options:

msiexec.exe /i <path_to_package> [/norestart][/promptrestart][/forcerestart]


  • /norestart - the machine will not be restarted after the installation is complete
  • /promptrestart - the user will be prompted if a reboot is required
  • /forcerestart - the machine will be restarted after the installation is complete

Sample command line:

msiexec.exe /i "C:\Example.msi" /norestart

Logging Options

When debugging an installation package you can use multiple logging parameters in order to create a log. This log will contain different information for each parameter you use:

msiexec.exe [/i][/x] <path_to_package> [/L{i|w|e|a|r|u|c|m|o|p|v|x+|!|*}][/log] <path_to_log>


  • /L - enable logging

    • i - include status messages
    • w - include non-fatal warnings
    • e - include all error messages
    • a - mention when an action is started
    • r - include action-specific records
    • u - include user requests
    • c - include the initial UI parameters
    • m - include out-of-memory or fatal exit information
    • o - include out-of-disk-space messages
    • p - include terminal properties
    • v - verbose output
    • x - include extra debugging information
    • + - append to an existing log file
    • ! - flush each line to the log
    • * - log all information, except for v and x options

  • /log - the equivalent of /l*

Sample command line:

msiexec.exe /i "C:\Example.msi" /L*V "C:\package.log"

Update Options

The Windows Installer command line can apply or remove updates (patches for example) through these options:

msiexec.exe [/update][/uninstall[/package<product_code_of_package>]] <path_to_package>


  • /update - apply updates (if there are multiple updates, you can separate them through the ";" character)
  • /uninstall - remove an update for a product (if there are multiple updates, you can separate them through the ";" character)

    • /package - specifies the package for which the update is removed

Sample command lines:

msiexec.exe /update "C:\MyPatch.msp"
msiexec.exe /uninstall {1BCBF52C-CD1B-454D-AEF7-852F73967318} /package {AAD3D77A-7476-469F-ADF4-04424124E91D}

TipNoteIn the above command line the first GUID is the Patch identifier GUID and the second one is the Product Code of the MSI for which the patch was applied.

Repair Options

If you have an installed package, you can use the Windows Installer command line for repairing it:

msiexec.exe [/f{p|o|e|d|c|a|u|m|s|v}] <product_code>


  • /f - repair a package

    • p - repair only if a file is missing
    • o - repair if a file is missing or an older version is installed
    • e - repair if file is missing or an equal or older version is installed
    • d - repair if a file is missing or a different version is installed
    • c - repair if a file is missing or the checksum does not match the calculated value
    • a - forces all files to be reinstalled
    • u - repair all the required user-specific registry entries
    • m - repair all the required computer-specific registry entries
    • s - repair all existing shortcuts
    • v - run from source and recache the local package

Sample command line:

msiexec.exe /fa {AAD3D77A-7476-469F-ADF4-04424124E91D}

NoteIn the above command line the GUID is the Product Code of the MSI which will be repaired.

Set public properties

The name of a public property contains only uppercase letters (for example PROPERTY). This type of properties can be set through the command line like this: PROPERTY="value".

Sample command line:

msiexec.exe /i "C:\Example.msi" MY_PROP="myValue"

  • MSIEXEC.EXE - the MSI executable, the program that performs the actual installation of the application.
  • /I - this switch informs the Windows Installer to install the specified application (as opposed to removing, reinstalling or repairing the application)
  • /QB-  - this switch instructs the Windows Installer to perform the installation with a basic user interface requiring no dialog boxes to be displayed. You might also use /QN to perform the installation with no user interface at all.


  • Correct syntax:

    msiexec /i A:\Example.msi PROPERTY=VALUE

    Incorrect syntax:

    msiexec /i PROPERTY=VALUE A:\Example.msi

    Property values that are literal strings must be enclosed in quotation marks. Include any white spaces in the string between the marks.

    msiexec /i A:\Example.msi PROPERTY="Embedded White Space"

    To clear a public property by using the command line, set its value to an empty string.

    msiexec /i A:\Example.msi PROPERTY=""

    For sections of text set apart by literal quotation marks, enclose the section with a second pair of quotation marks.

    msiexec /i A:\Example.msi PROPERTY="Embedded ""Quotes"" White Space"

    The following example shows a complicated command line.

    msiexec /i testdb.msi INSTALLLEVEL=3 /l* msi.log COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""

    The following example shows advertisement options. Note that switches are not case-sensitive.

    msiexec /JM msisample.msi /T transform.mst /LIME logfile.txt

    The following example shows you how to install a new instance of a product to be advertised. This product is authored to support multiple instance transforms.

    msiexec /JM msisample.msi /T :instance1.mst;customization.mst /c /LIME logfile.txt

    The following example shows how to patch an instance of a product that is installed using multiple instance transforms.

    msiexec /p msipatch.msp;msipatch2.msp /n {00000001-0002-0000-0000-624474736554} /qb

    When you apply patches to a specific product, the /i and /p options cannot be specified together in a command line. In this case, you can apply patches to a product as follows.

    msiexec /i A:\Example.msi PATCH=msipatch.msp;msipatch2.msp /qb

    Some Sample Commands for EXE files:--

  • setup.exe /q
  • setup.exe /qn
  • setup.exe /silent
  • setup.exe /s
  • setup.exe /NoUserInput
  • setup.exe /unattended
  • setup.exe /CreateAnswerFile
  • setup.exe /quiet

    Symantec


  • MsiExec.exe /norestart /q/x{BA4B71D1-898E-4306-AE87-8BA7A596F0ED} REMOVE=ALL

    psexec \\computer_name MsiExec.exe /norestart /q/x{BA4B71D1-898E-4306-AE87-8BA7A596F0ED} REMOVE=ALL
    cmd='msiexec /qn /i %SOFTWARE%\adobereader93\AdbeRdr930_en_US.msi TRANSFORMS=%SOFTWARE%\adobereader93\AdbeRdr930_en_US.mst'
    'msiexec /qn /update %SOFTWARE%\AdobeReader93\AdbeRdrUpd932_all_incr.msp'

    'MsiExec.exe /x{AC76BA86-7AD7-1033-7B44-A80000000002} /qn '

    msiexec /qn /x{AC76BA86-7AD7-1033-7B44-A93000000001}

    msiexec.exe /qn /update "%SOFTWARE%\AdobeReader93\AdbeRdrUpd932_all_incr.msp"'
    'msiexec /qb /uninstall "%SOFTWARE%\adobe-reader\AcroRead.msi'
    siexec /i "UNCPath\filename.msi" /qn

    With the Product key


    msiexec /i "UNCPath\filename.msi" /qn PIDKEY="Key value without dashes


    Java


    jre-1_5_0-bin-b99-windows-i586-12_aug_2003.exe /s ADDLOCAL=jrecore,extra MOZILLA=1


    jre-1_5_0-bin-b99-windows-i586-12_aug_2003.exe /s /v"/qn ADDLOCAL=ALL IEXPLORER=1 INSTALLDIR=D:\java\jre"

    start /w jre-1_5_0-bin-b99-windows-i586-12_aug_2003.exe /s ADDLOCAL=jrecore,extra MOZILLA=1

    msiexec.exe /qn /x {3248F0A8-6813-11D6-A77B-00B0D0n1n2n3n4n50}

    msiexec.exe /qn /x {3248F0A8-6813-11D6-A77B-00B0D0150000}
    msiexec.exe /qn /x {3248F0A8-6813-11D6-A77B-00B0D0151020}


    Creating a Log File
    If you want to create a log file describing the installation/uninstallation, append /L C:\<path>setup.log to the install/uninstall command. The following is an example for installation:
    Installation Example
    jre-1_5_0-bin-b99-windows-i586-12_aug_2003.exe /s /L C:\<path>setup.log
    The following is an example for uninstalling:

    Uninstalling Example
    msiexec.exe /qn /x {3248F0A8-6813-11D6-A77B-00B0D0150000} /L C:\<path>setup.log

    Note:- Adobe Customization Wizard 9 will help you to create MST file for silent installation



    WINZIP:-


    Below is available WINZIP MSI File http://download.winzip.com/ov/winzip100.msi
    ymsgrie.exe /s /v/passive - install Yahoo! Messenger silent, with progress bar


    Team Viewer :--


    The /S switch for silent install of TEAMVIEWER WORKS!
    but you must do the following :
    download the program (preferably the latest version) ..or ..if you have it on your hard drive , open it... (AND LET IT OPEN! DO NOT CLOSE OR INSTALL THE APLICATION. JUST DUBLE-CLICK IT!!)
    Then , go to C:\Documents and Settings\Administrator\Local Settings\Temp. There you'll see a folder called TeamViewer. Open that folder. Inside you'll have 2 files. Teamviewer.exe and tvinfo.ini
    Copy the Teamviewer from that folder and paste wherever you want. After this you can close the other application.
    With the new teamviewer.exew which you copyed from the temp folder , u can run it sillently. Use the /S Switch. Works with WPI also.

     

    If you find MSiexec has problem then you can run below two commands

    msiexec /unregister  ---> for unregistering the windows installer

     

    msiexec /regserver---> for registering the windows installer

    Released Versions of Windows Installer

    The table in this topic identifies the released versions of the Windows Installer.

    Release
    Version
    Description

    Windows Installer 2.0
    2.0.2600.0
    Released with Windows XP.

    Windows Installer 2.0
    2.0.2600.1
    Released with Windows 2000 Server with Service Pack 3 (SP3).

    Windows Installer 2.0
    2.0.2600.1183
    Released with Windows 2000 Server with Service Pack 4 (SP4).

    Windows Installer 2.0
    2.0.2600.2
    Released as a redistributable.

    Windows Installer 2.0
    2.0.2600.1106
    Released with Windows XP with Service Pack 1 (SP1).

    Windows Installer 2.0
    2.0.3790.0
    Released with Windows Server 2003.

    Windows Installer 3.0
    3.0.3790.2180
    Released with Windows XP with Service Pack 2 (SP2). Released as a redistributable.

    Windows Installer 3.1
    3.1.4000.1823
    Released as a redistributable. This version is has the same functionality as version 3.1.4000.2435.

    Windows Installer 3.1
    3.1.4000.1830
    Released with Windows Server 2003 with Service Pack 1 (SP1) and Windows XP Professional x64 Edition. Update this version to version 3.1.4000.2435 to address the issue discussed in KB898628.

    Windows Installer 3.1
    3.1.4000.3959
    Released with Windows Server 2003 with Service Pack 2 (SP2).

    Windows Installer 3.1
    3.1.4000.2435
    Released with a fix to address the issue discussed in KB898628. This is the latest version of Windows Installer 3.1.

    Windows Installer 3.1
    3.1.4001.5512
    Released with Windows XP with Service Pack 3 (SP3).

    Windows Installer 4.0
    4.0.6000.16386
    Released with Windows Vista.

    Windows Installer 4.0
    4.0.6001.18000
    Released with Windows Vista with Service Pack 1 (SP1) and Windows Server 2008.

    Windows Installer 4.5
    4.5.6002.18005
    Released with Windows Vista with Service Pack 2 (SP2) and Windows Server 2008 with Service Pack (SP2.)

    Windows Installer 4.5
    4.5.6000.20817
    Released as a redistributable for Windows Vista.

    Windows Installer 4.5
    4.5.6001.22162
    Released as a redistributable for Windows Server 2008 and Windows Vista with SP1.

    Windows Installer 4.5
    4.5.6001.22159
    Released as a redistributable for Windows XP with Service Pack 2 (SP2) and later, and Windows Server 2003 with SP1 and later.

    Windows Installer 5.0 is released with Windows Server 2008 R2 and Windows 7.

     

    To create exe file by using winrar for silent installation / Self Extractor

     

    create SFX archive”. Change the archive name if you like but it must have the .exe extension.
    Posted Image
    Switch to the Advanced tab and select “SFX options” to open Advanced SFX options window.
    Posted Image
    On the General tab in the “Path to extract” box type the path you want to extract the installer to. Make sure it is the same path you have in the antivir.cmd file. Then in the “Run after extraction” box type in the path to the antivir.cmd file.
    Posted Image
    Change to the Modes tab and select the “hide all” and “overwrite existing files” radio buttons.
    Posted Image
    Close the “Advanced SFX Options” window by clicking OK, then click OK on the “Archive name and parameters” window to start creating the installer. The finished installer is created in the antivirpec folder.

     

    Also you can do with 7zip  where you will have more options compare to winrar or winzipself extractor.

    Office 2007 silent install with SCCM 2007


    So here is his tip on how to create a customized MSP file with OCT:


    1. Go to the original package source that contains the Office 2007 setup files
    2. From the directory that contains the Office 2007 setup files, run setup.exe /admin. This should open the Office Customization Toolkit (OCT)
    3. Select to Create a new Setup customization file
    4. In the “Install location and organization name”, set the default installation location and organization name.
    5. Click on Licensing and user interface. Make sure you enter a valid product key, check the EULA checkbox and set Display level to None. Completion notice checkbox should not be checked and Suppress modal should be checked.
    6. Save the MSP file by going to File --> Save. Give the file a name and save it to the Updates folder located in the Office 2007 installation source folder. By saving it to the Updates folder, the /adminfile switch will not need to be used as part of setup.exe. If the file is not saved to the Updates folder, make sure that the /adminfile switch is used as part of setup.exe and that it points to the MSP file just created.

    Further more, with OCT you can customize almost everything regarding how your Word/Excel etc. applications will run. What I liked most is the possibility to create the default profile in Outlook if you are using an Exchange server in your organization.

    Don’t forget to save the MSP file and to put the file in Updates folder or to use /adminfile <path to MST file> switch .

     

    Hope I will try to post when i get some time

    No comments: