Issue #11868 has been updated by Josh Cooper.

Lance also had issues uninstalling when using a multi-instance MSI:

Lance: The Windows (MSI) package manager should allow for specification of 
uninstall options.
I raise this to support a specific use case we have regarding multi-instance 
MSIs. A multi-instance MSI can be installed multiple times on a single machine, 
each time specifying a different transform via the command line. For example, 
we'll have a web application packaged as a single MSI that targets multiple 
countries. The transform specifies what country is being installed. The same 
transform, as we've implemented the MSIs, must be specified during uninstall to 
ensure proper operation.
For our use case, reusing the install_options in the custom provider was 
sufficient.

Josh: If we queried the registry for the UninstallString and passed that to 
msiexec, then would this still be an issue? Or are there cases, where you would 
want to specify additional options beyond what the Windows Installer writes to 
the UninstallString? Said another way, if you specify an MST during install, 
then the Windows Installer writes the '/t package.mst' option into the 
UninstallString, right?

Lance: Yeah, I would think the same thing. Here's what I can tell you - 
executing the UninstallString does not uninstall the product, at least not in 
my case. Neither does calling the Uninstall method on the respective WMI 
object. However, selecting Uninstall via Programs and Features works like a 
charm and uninstalls only the specific instance, as desired. Confused? Yeah, me 
too. I really don't understand the unnecessary complexity or what's going on 
behind the scenes, but there it is.
Admittedly, the use cases I'm citing is on the more complex side given the 
multi-instance nature of the installs we're doing. I doubt the bulk of your 
customers will encounter them, but they should be easy to handle via 
configuration, or a trivial extension, of an existing provider, IMHO. One last 
refinement - I mentioned that reusing the install_options would work. I take 
that back. The MSINEWINSTANCE property must be present during install but 
absent during uninstall.
----------------------------------------
Bug #11868: msi package provider can only manage packages it installed
https://projects.puppetlabs.com/issues/11868#change-56256

Author: Josh Cooper
Status: Accepted
Priority: Normal
Assignee: Josh Cooper
Category: windows
Target version: 
Affected Puppet version: 2.7.6
Keywords: 
Branch: 


The msi package provider keeps track of packages it installed in a yaml file. 
As a result, it doesn't know about packages it didn't install.

The msi package provider should query the registry 
<http://msdn.microsoft.com/en-us/library/aa372105(VS.85).aspx>, or access that 
information through WMI's Win32_Product 
<http://msdn.microsoft.com/en-us/library/windows/desktop/aa394378(v=vs.85).aspx>
 This way it will accurately report on the state of the system.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to