I have MSI packages installed before install CA-Client Automation. How can I uninstall these packages?

Document ID : KB000025865
Last Modified Date : 14/02/2018
Show Technical Document Details

Question

I have MSI packages installed before installing CA-Client Automation. How can I uninstall these packages?

 

Environment

Any version of Client Automation.

 

Solution

MSI packages installed before using CA-Client Automation can be uninstalled adding them to the Agent's Installation inventory or creating a package to run msiexec to uninstall them

CA-Client Automation's Software Delivery Plugin provides an Activation procedure to scan for MSI packages on the Agents.

Just select the Agent where the scan needs to be done and select the Installed Packages folder, right click on the Software Delivery Plugin and select Schedule Activate Job > Scan MSI:

Figure 1

 

Once the job will finish, refresh the Installed Packages list and the detected MSI packages will be shown as * Find SW on the Procedure column:

Figure 2

 

To uninstall a package right click on it and select Schedule Uninstall Job > Uninstall detected:

Figure 3

 

If the package does not show as * Find SW the uninstall can be done creating a package with just an External Procedure to run msiexec with the necessary parameters to do the uninstall.

First of all the Uninstall information needs to be found from the package (using Orca or any other MSI package management) or from the registry on a installed computer. This information can be found on the registry under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\.

In order to find the package just do a find with the package name to find the subfolder of the package as the subfolder name is the product id of the MSI package. In this example we want to uninstall Active Perl:

Figure 4

 

As each product has its own Uninstall procedure and parameters this is normally stored on the value Uninstallstring as can be seen on the registry key on the above example.

With this information we can build a package to run the Uninstall procedure:

Figure 5

 

In order to run msiexec.exe we need to use an External Procedure as Install procedure. In this example we have Uninstallstring using /I instead of /X as if done manually it asks for Modify/Repair/Remove but as we need to uninstall it we'll use /X. We also add /qn to avoid any UI and also /l*v to get verbose log from the Uninstall process using $rf to redirect the log to the Job Output.

Figure 6

Figure 7