Roll back suspended .MSI install from command-line

We deployed a Java installer to a large number of machines, and it froze up on about half of them. Now, subsequent deployments are failing because of the following message:

User 'SYSTEM' has previously initiated an install for product 'Java 7 Update 10'. That user will need to run that install again before they can use that product. Your current install will now continue.

Followed by:

Error 1704. An installation for Java 7 Update 10 is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes?

If you interactively run an install, this is fine. You just click "OK" and then "Yes", and it rolls on. But if you run a command-line install, it halts. How can we cancel the suspended install from the command line?


Solution 1:

As far as I know, it is not possible to cancel a suspended MSI installation from the command line using MSIEXEC (it has no parameter for that).

Anyhow, you might try running the following command:

REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress

This key is created when there is an installation in progress. Deleting it should allow you to rerun the setup again.

Solution 2:

If Tomas answer doesn't solve the problem you could try the MsiZap.exe Utility.

It basically also removes the metadata left by MSI installations, but it doesn't require you to find out all the locations where the information is stored.

E.g. deleting the inProgress information:

msizap.exe p

or delete rollback information:

msizap.exe s