Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Uninstall woes


11 replies to this topic

spdygnlz

spdygnlz
  • Full Members
  • 106 posts

Posted 16 October 2007 - 00:38

If I go to uninstall my program from Add/Remove Programs, it always fails to uninstall. When I run it from the original media (entering Maintenance mode) and select Remove, it uninstalls just fine.

So I have 2 questions:

First, how do I enable logging so that I can catch what is happening when I run from Add/Remove Programs?
Second, what is the difference between running the uninstaller from Add/Remove Programs and selecting Remove from Maintenance mode?

-- spdygnlz --

VBScab

VBScab
  • Full Members
  • 436 posts

Posted 16 October 2007 - 08:28

- Set a value 'Logging' to "voicewarmup" in the kry HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
- Restart the w/s or VM
- Start your installation.
- Logs appear in %SYSTEMROOT%\Temp as MSI[randon_hex_number].LOG

This is an all-or-nothing policy, meaning that every install will write a log so you'll need to clear TEMP down before and after or turn the policy off. Of course, you can set this policy with GPMC if you prefer. I can't recall the exact policy name, though. Knowing MS's penchant for double-negatives, it's probably "Don't not disable MSI logging"...

- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 October 2007 - 15:39

Launching from the "Remove" button in control panel your setup runs in Basic I mode, so the UI sequence is skipped.
Does it work if you click the "Modify" button in control panel, and then select the Remove option in the maintenance type dialog?

spdygnlz

spdygnlz
  • Full Members
  • 106 posts

Posted 17 October 2007 - 20:42

VBScab,
The GPMC that you refer to intrigues me. I downloaded it, but I could only access Group Policies (imagine that from the Group Policy Management Console!), and even then, I didn't see anything that pertained to MSIs. Is there another Policy editor that you were refering to, or do I just have it all mixed up? I've always wondered what the easiest way to modify all those MSI policies was. It'd be nice if it had a UI so we could show customers how to enable certain things if need be.

I'm going to try the registry entries for now. Thanks for the tip.


Stefan,
So if the only difference is that the UI doesn't run, that seems to suggest that maybe I'm setting something in the UI that needs to be there to uninstall properly. Would you agree?

I haven't yet tried to uncheck everything using the Modify option. I assume that it would be similar to using the Remove option. The only thing about doing it that way is that we have a few hidden features that the user cannot unselect so it wouldn't get completely removed. At least a lot of the shortcuts we place would be removed. I'll try that.

Thanks you guys!

-- spdygnlz --

VBScab

VBScab
  • Full Members
  • 436 posts

Posted 18 October 2007 - 08:42

QUOTE (spdygnlz @ 2007-10-17 20:42)
Is there another Policy editor that you were referring to, or do I just have it all mixed up?

No, you're not mixed up, I am! I spend most of the day in GPMC (which is why I'm building a script/app to automate the assigning of MSIs to GPOs...) and thus it was the first thing that came to mind. What you *actually* want is GPEdit.MSC.

- Browse to Local Computer Policy/Computer Configuration/Administartive Templates/Windows Components/Windows Installer/Logging
- Set to 'Enabled'
- Enter 'voicewarmup' into the Logging field

Apologies for the bum steer.

QUOTE (spdygnlz @ 2007-10-17 20:42)
So if the only difference is that the UI doesn't run, that seems to suggest that maybe I'm setting something in the UI that needs to be there to uninstall properly.  Would you agree?

A pound to a penny that there is a Custom Action in UI sequence which is responsible. If you're not comfortable with perusing the CA table to determine that, or the CAs have confusingly similar names, it might behove you to run both flavours of uninstall and compare the logs, now that you're "logged-up".

Edited by VBScab, 18 October 2007 - 08:47.

- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 October 2007 - 16:53

QUOTE
So if the only difference is that the UI doesn't run, that seems to suggest that maybe I'm setting something in the UI that needs to be there to uninstall properly. Would you agree?
Yes, that's right.
QUOTE
I haven't yet tried to uncheck everything using the Modify option.
Don't you have a maintenance welcome dialog which asks the user whether they want to repair, modify or remove?

spdygnlz

spdygnlz
  • Full Members
  • 106 posts

Posted 18 October 2007 - 17:18

Ahh, I see it now. Thanks! (I was wondering what voicewarmup meant, but It makes sense looking at the dialog now.)

I looked at the CAs that I have in the UI and none of them modify anything but there are some that set important properties for CAs used later on. I'm going to have to look at the code a bit more to figure out exactly which one is the culprit. (The Logging will help.)

Perhaps what I need to do is set some of them to schedule them to run in Client and Server mode and change the execution to "Execute only once".


Stephan,
I do have the maintenance welcome dialog, I just haven't tried using the Modify option on it to remove everything yet. I've used the Repair and the Remove, and even the Modify to add more features, but not to remove them.

Thanks you guys! I'll let you know what I find in the CAs.

-- spdygnlz --

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 October 2007 - 19:30

The Remove option on this dialog will run the full UI. However clicking the Remove button in control panel will not.

spdygnlz

spdygnlz
  • Full Members
  • 106 posts

Posted 07 November 2007 - 20:13

K, I'm having a hard time getting the logging to work with my installs. I enabled the logging with the GPEdit.msc and set it to "voicewarmup" as instructed and it seems like there's a lot of logs written for other msi installs, but mine is never there. Is there something I have to enable (or disable) in mine to get this to work correctly?

Going about it another way, is there a way I could simulate the Add/Remove programs remove functionality from a command line? I could easily tell it to drop a log file from there.



-- spdygnlz --

VBScab

VBScab
  • Full Members
  • 436 posts

Posted 08 November 2007 - 10:48

Check that the registry key I detailed has been written. Did you restart the machine/VM? I believe you'll need to do that, as it's a machine-based policy.
- Don't know why 'x' happened? Want to know why 'y' happened? ProcMon will tell you.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 10 November 2007 - 12:33

I don't know why the logging doesn't work for you.
To simulate the Add/Remove Programs behaviour you could run your install in Basic UI mode:
msiexec.exe /x {ProductCode GUID} /qb


spdygnlz

spdygnlz
  • Full Members
  • 106 posts

Posted 28 November 2007 - 22:33

QUOTE
To simulate the Add/Remove Programs behaviour you could run your install in Basic UI mode:
msiexec.exe /x {ProductCode GUID} /qb


That's what I ended up doing. I found the offending custom action and removed it. It works as expected now. Thanks!

-- spdygnlz --