WPNinjas HeaderWPNinjas Header

Install and Uninstall multiple MSI Files in one application

If you have multiple MSI files which belong to one application, then you have problems to install them as single application in SCCM 2012. First of all it’s important that you check these MSI files are really one software and not components which could also be used from other applications. When there are components you have to create multiple applications and define requirements in SCCM.

Now the question is how to install multiple MSI files? Mostly you would create a simple install script(CMD, VBS…). But then you have mostly not solved these problems:

  • What does happen when one MSI fails during installation?
  • What does happen when SCCM restarts the Installation after an error occurred and some MSI are already installed?
  • Are log files written for every MSI installation?

To solve all these problems we created the multipleMSIInstaller script which can handle multiple MSI, MSP and MST files. The installations are transaction oriented and resistant against installation errors.

You can download the multiMSIInstaller here.

Configuration

You have to configure the following variables in the script:


$Manufacturer  = "Microsoft"
$Product       = "Office"
$Version       = "15.456.123"
$PkgVersion    = "001"
$Configuration = "" # Leave blank if no configuration, do not delete line
$PkgType       = "P" #Type P(Physical)/V(Virtual)
$Language      = "EN"
$Architecture  = "x86"

$LogDirectory  = "C:\Windows\Logs\SCCM\Apps\"

$applications = @(
@("Application1.msi", @(),@("App1_custom.mst"),@("PARAM1=123","PARAM2=123")),
@("Application2.msi", @(),@(),@("PARAM1=123")),
@("Application3.msi", @("App3_patch.msp"),@("App3_custom.mst"),@())
)

The first nine variables don’t need an explanation. But the variable $applications need one:

In this array all install information is stored. With these examples you should see how it works:

  • The first value of the array contains the MSI files:
    @(@(“MsiFilename”,@(),@(),@()))
  • The second value is an array and contain one or more MSP Files:
    @(@(“MsiFilename”,@(“MSPFilename”),@(),@()))
    or
    @(@(“MsiFilename”,@(“MSPFilename1”,”MSPFilename2”),@(),@()))
  • The third value is an array too and can contain one or more MST Files:
    @(@(“MsiFilename”,@(),@(“MSTFilename”),@()))
    or
    @(@(“MsiFilename”,@(),@(“MSTFilename1”,”MSTFilename2”),@()))
  • In the last array you can define properties which are attached to the executing process:
    @(@(“MsiFilename”,@(),@(),@(“PROPERTY1=123”)))
    or
    @(@(“MsiFilename”,@(),@(),@(“PROPERTY1=456”,”PROPERTY2=123”)))

Install/Uninstall package

To install the applications configured in the PowerShell script you have only to run the script as an administrator. To uninstall this package you have to start the script with the parameter “/uninstall”

Operating/Troubleshooting

When you install an application with this script a log files for every MSI file is generated. There is also a log file of the script which can help you troubleshooting problems with exit codes or the multiMSIInstaller script.

Follow me

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.