So I must admit that am am still new to LDMS 9.0 SP2 patch manager, but I should at least stick up for myself and say that I have several custom definitions working.
Today I'm trying to expand my patch manager skills a bit and create a dependancy relationship between two custom definitions. It looks like this:
- I have some existing software that needs to be updated
- the new software requires that the old software be removed before being installed
- First I need to bring a OLDsoftware.MSI file down to a client because the original was on a network share
- I need to use MSIEXEC.EXE with that OLDsoftware.MSI file to remove the old version of the software
- Next I need to have the NEWsoftware.MSI file down to the client
- Then I need to use MSIEXEC.EXE with the NEWsoftware.MSI file to get the new version installed.
this seems very straightforward to me. I've got the 2nd part down such that I can install the new software when the old software is gone. That custom definition works fine.
My problem lies in the other custom definition that removes the old software. Eventually I will create the dependency between the two definitions, but I can't get this one to work. I can get detection to work just fine, even bring the OLDsoftware.MSI file down, but I can never get it to uninstall the old software.
***quick sidebar, I am bringing the OLDsoftware.MSI file back down to the client in order to simplify this scenario because it was originally on a network share and I want to avoid any permissions problems and just have the local computer remove the software with a locally stored MSI file***
I've tried several different ways of getting the uninstall action to happen.
I've tried a .ZIP file of the .MSI, unpacking it to %SDMCACHE% as well as %TEMP%, then executing MSIEXEC.EXE with the appropriate %variable%. Whatever I do here the execution will fail.
I've tried bringing the .MSI file across to the same two locations and just going about the uninstall with MSIEXEC.EXE against it, still fails.
I've tried connecting to the network share with hard-coded credentials to copy the file down, etc. Again, the execution of MSIEXEC.EXE fails.
In each case I can go to the SDMCACHE folder and see the OLDsoftware.MSI file or .ZIP. Whenever I try to use %temp% and zip I don't see it get unzipped to that location. If I use the command line and manually execute MSIEXEC.EXE and point it to where Patch Manager put the .MSI, it will uninstall w/o problem. It is always a simple matter that Patch Manager just can't uninstall.
I know that I have the correct command line arguments to get the package uninstalled; I know I have the correct .MSI file necessary for the uninstall to happen; I know I can always manually execute the uninstall command when I have the MSI file...I just can't get patch manager to actually make the uninstall happen.
any ideas on how I can get this to work?