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.
  • 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.
  • >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.
  • 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.
Please log in to comment



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.

Answered 01/06/2014 by: vjaneczko
Seventh Degree Black Belt

  • 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.
  • Do you mean the whole node is removed ? Someone screwed up badly when doing the QA.
Please log in to comment

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.)

Answered 01/07/2014 by: rileyz
Red Belt

Please log in to comment

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.

Answered 01/07/2014 by: BHC-Austin
Fourth Degree Black Belt

  • Perfect, thanks I'll give it a test and let you all know how I get on.
  • 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.
  • 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.
    • [like]
      • 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.
Please log in to comment

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.

Answered 01/08/2014 by: shields_t
Senior Purple Belt

Please log in to comment
Answer this question or Comment on this question for clarity