Most applications will be Windows Installer based. It's primarily MSI technology that the launcher is designed to work. The steps below represent the logic within the launcher.
MSI Installation Logic
- Package Initialises & determines the physical location of the package.
- If the package is run from within the local SCCM cache directory, the DataTransferService.log is parsed for the directory string of the package. This returns the Distribution Point and remote package location for the install.
- Mode (Install / Remove) is determined and subsequent action list is created from XML
- Official Package Name is read from XML for logging
- Logic Conditions (if any) are evaluated to see if an action should be run
- Installation Types are called (MSI, MSU, MSP, EXE, VBS, CMS, APPV along with MSI and APPV Removal). In this case, an MSI installation type will be called.
- MSI ProductCode and Version is read from the MSI & compared to the Windows Registry of installed products.
- If a lower version of the application with the same productcode exists it will be removed.
- If the same version of the application exists with the same productcode but with a different package name it will be removed. ****
- If the package already exists on the machine a “successful” install will be reported back to sccm.
- if the install is occurring from the local SCCM cache, the SOURCELIST property is appended with the Distribution Point location.
- ExitCodes are parsed by the launcher, 3010 (Reboot Required) are returned as successful installs & swapped with a “0” return code (Important for Task Sequences).
- StatusMif files are created on the machine and relayed back to SCCM
*** Windows Installer packages are expected to have their package name into the ProductName field of the MSI.
Note – at various points the Launcher logs to the Application Event Viewer.
All Logs are written to C:\Windows\Logs and the succesful installation of a log replaces the log file with a signature file.
Signature files contain the name of the account used to install the product along with the date and time that the product was installed.