3 Replies Latest reply on Jun 14, 2012 3:03 PM by SolarWinds Community Team

    How to uninstall MSI

    SolarWinds Community Team


      I have a small package that deploys an MSI.

      The MSI creates an executable and a service definition. I need to update my deployment package to a new MSI package. The problem is that the new package can't overwrite the existing running executable. My best guess is the existing package needs to be uninstalled before the new package can be pushed out.

      I have the "Package can be uninstalled" box ticked under the advanced publishing.  The package uninstalls cleanly from the local workstation from add / remove programs as well as from a command line with msiexec /x /qb-.

      When I attempt an uninstall via 'approve for uninstall' I get the following in the windowsupdate.log.

      WARNING: Install failed, error = 0x80240017 / 0x00000000.

      What am I missing to get this package to uninstall correctly?

        • Re: How to uninstall MSI
          SolarWinds Community Team


          To uninstall a package that supports uninstallation via WSUS, you will need to change the approval for that package in the WSUS console to "Approved for Removal", and then you will either need to allow the WUAgent to naturally detect that change in approval and schedule the removal via the regular policy-based daily installation event, or you will need to run the Update Management task in the Extension Pack and explicitly choose the "Removal" action to be performed on that update package.

          The key question here may depend on whether the package does, in fact, support unattended uninstallation. Also, whether the uninstallation requires custom command line parameters. If custom parameters are required, you may need to build a separate "Uninstallation" package that specificies that behavior.

          In this instance, the 0x80240017 error code is telling us that the action is NotApplicable on the target machine. If the target machine is assigned to a replica server and the replica server has not yet synchronized the change in approval from the upstream server, this could occur. It could also occur if the product is not actually installed on the target machine.




          Operation was not performed because there are no applicable updates.

          Alternatively, on your NEW package, you can use PackageBoot(tm) to execute the MSI Uninstallation as a pre-installation step of the new update package with explicit and custom defined command-line parameters. Please refer to the Local Publishing Administration Guide for details on the use of PackageBoot(tm). Specifically take a look at the sample MSI <program> element in the <preexecution><programs> element collection.

            • Re: How to uninstall MSI
              SolarWinds Community Team
                /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} 

              The original package in question does indeed support a silent uninstall, at least with 'msiexec /qn /x MyPackage.msi'. That is what seems so odd to me. The package is installed and obviously detected if the uninstall is being queued for action.

              We are not using a replica / downstream topology.

              The PackageBoot uninstaller looks appealing. Many thanks.