How can I change a component property in an MST which has already been deployed?

I've been asked to do some remediation work on a piece of software which has been historically packaged via MST and deployed across a number of servers.

Unfortunately when said app is uninstalled, it removes the wow6432node in HKLM, a change made by the transform rather than the vendor's MSI.  I have suggested that the component attribute be made permanent which has been agreed as the way to move forward however I've been tasked with finding a solution to the instances of the application which have already been deployed.  Obviously a full upgrade is out of the question as I don't want a big chunk of the registry removed in the process.

I thought it may be possible with an MSP, I can't figure out how an MSP can affect the tables of an MST if indeed this is possible at all.

Can anybody suggest a solution please?

4 Comments   [ + ] Show comments
  • Whoa, testing right out the window there, sucks to be you!

    -humm cant think of anything right now, but if i do, i will get back to you. - rileyz 10 years ago
  • If it can't be done, it can't be done - thankfully it isn't my work causing the issue, and strangely it apparently passed our outsourcer's QA process prior to release. - shields_t 10 years ago
  • >it apparently passed our outsourcer's QA process
    Your company's next action should, at an absolute minimum, be to charge back to the outsource company the time taken to fix this almightly screw-up. - anonymous_9363 10 years ago
  • While I'd love to say I had that kind of influence, I sadly don't. I completely agree though - my (distant) background is in application testing and I'd have expected heads to roll for a cockup like this. It's been deployed on 28 servers worldwide. - shields_t 10 years ago

Answers (4)

Posted by: vjaneczko 10 years ago
9th Degree Black Belt

If you mean the entire wow6432node is removed, then (most likely) a very bad CU is burried in that transform!

The only thing I can think of is that you write a script that exports the key, runs the uninstall, and imports the key back.  You'll still have the reg keys associated with the app but that doesn't matter at all.

  • Yeah, that's the manual process we've been following so far. Not ideal but it does at least work, I was hoping there might be a solution I hadn't thought of which could be fully contained in the MSI toolset. - shields_t 10 years ago
  • Do you mean the whole node is removed ? Someone screwed up badly when doing the QA. - EdT 10 years ago
Posted by: rileyz 10 years ago
Red Belt

I havent tested this idea,

but you could use the same MSI, and same MST, but just increase the version number -  major upgrade, so change ProductCode and Product..lol I can remember the other bit! You know what I mean. Then find the Component that removing the wow6432node, and change that to perminate.

Remember to move the RemoveExistingProducts to the tail end of the InstallExec sequence or it will remove the whole product before upgrading it! (not what you wanted as it will nuke the Wow64 node.)

Posted by: BHC-Austin 10 years ago
4th Degree Black Belt

In doing some research on this subject, I came across a similar question: http://www.itninja.com/question/can-t-apply-transform-with-msi-reinstall

Look for the answer posted by andys0123 - Basically, it will involve modifying the registry, because the name and location of the MST used during install is stored there.

  • Perfect, thanks I'll give it a test and let you all know how I get on. - shields_t 10 years ago
  • There are a couple of other things you can try based around this idea. Since an MSI can have multiple transforms, you could create a "repair" transform to fix the underlying issue, modify the registry as mentioned above and fool windows installer into thinking that two transforms were used during the install, and finally run a repair on the app to get everything updated to a point where the uninstall will not break anything.
    Even simpler - you may be able to overwrite the existing MST in the local cache with an updated (fixed) version and then run a repair, so that subsequent uninstalls do not wreck the machine.
    Finally, update your QA standards to properly test the uninstall scenario. - EdT 10 years ago
  • Another thought - rather than backing up the entire registry hive, just use a CA to rename it, uninstall, rename the hive back, reinstall new app, job done. - EdT 10 years ago
    • [like] - anonymous_9363 10 years ago
      • I'm going to head down the route of replacing the locally cached MSTs, it certainly seems like it would be the simplest solution given the amount of installs of this product that exist on our worldwide estate. - shields_t 10 years ago
Posted by: shields_t 10 years ago
Senior Purple Belt

Much appreciated BHC-Austin, I took your advice and dug through the old thread.  Just thoroughly testing now, but replacing the MST in the cache and changing the value of the TRANSFORMS key to reflect the new MST name seems to work a treat.

This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ