0
votes

I have a legacy product in the field that we are replacing with a new version. The customer wants our installation to silently uninstall the previous install before doing the new install. Only problem is the uninstall does an unnecessary reboot when it completes. I have tried a variety of ways to uninstall

msiexec /qn /uninstall appName.msi /norestart
msiexec /qn /x {12AB-GUID-999} REBOOT=ReallySuppress

Any time I try a quiet uninstall, it always does a reboot. I have captured a log file and it contains the nonsensical line:

Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1

If it wanted to disable shutdown, why does it decrement the counter when the counter needs to be >= 0???

Not sure what I need to do to resolve this. Any suggestions would be appreciated.

One thing that seems strange, while uninstalling, I will see two copies of msiexec in my task manager, one called msiexec.exe and the other msiexec.exe*32

I am running on Windows 7 / 64 bit

2

2 Answers

1
votes

Chris could be right. Another possibility is that something in the MSI is explicitly resetting the REBOOT property to something else, even maybe a prompt value. That silent reboot behavior is typical of a reboot that might normally prompt because silent (/qn) really means silent and since there must not be any user interaction it just does the reboot.

One of those msiexec.exe processes will be the installer service, the other is a 32-bit process that was fired off to run 32-bit custom actions (because you can't call 32-bit Dlls from a 64-bit process).

0
votes

Without having a copy of the MSI or a log to review, I would predict that a custom action is rebooting the machine. This is supported by the extra msiexec process (which custom actions run in) and the fact that when you tell MSI REBOOT=R that MSI will not reboot. Period.

Logging the MSI and/or transforming it to disable custom actions would provide the proof.