We have an MSI that writes to HKLM\Software\Novell\Login\Banner. The problem is that for some unknown reason the packager set HKLM\Software\Novell to "Install if present, uninstall if absent". If performing a major upgrade or uninstall of the package uninstalls the HKLM\Software\Novell and breaks Novell. It's easy enough to fix new installs, but how can I fix the problem on existing installs? It needs to be a totally silent solution. I've try to repair the app and that doesn't work. The only way I've been remotely successful was deleting the cached MSI from C:\Windows\Installer and then repairing, but since that is a randoming generated filename that won't be a permenant solution.
Any ideas?
Thanks
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
What app is it? I've never seen that behavior. Not like it's your best option, but you could chain the install together so that when the application install finishes it begins an upgrade of the Novell client afterwards. This wouldn't stop the application from breaking the Novell Client, but it would repair it after the install completed. Then you can silently restart the computer after the applications finish their work.
Answered 04/16/2008 by: bbinder
Yellow Belt

Please log in to comment
0
ORIGINAL: jfarber
The only way I've been remotely successful was deleting the cached MSI from C:\Windows\Installer and then repairing, but since that is a randoming generated filename that won't be a permenant solution.
If that's the route you want to go down, here's some code which will list which product each cached MSI relates to. To keep it brief, there is NO error-trapping:
Option Explicit

Dim objInstaller
Dim colProducts
Dim objGUID
Dim strProductName
Dim strCachedMSIName
Dim strProductList

Set objInstaller = Wscript.CreateObject("WindowsInstaller.Installer")

Set colProducts = objInstaller.Products

For Each objGUID in colProducts
With objInstaller
strProductName = .ProductInfo(objGUID, "ProductName")
strCachedMSIName = .ProductInfo(objGUID, "LocalPackage")
End With

strProductList = strProductList & strCachedMSIName & vbTAB & " = " & strProductName & vbCRLF
Next

Wscript.Echo strProductList
Answered 04/17/2008 by: VBScab
Red Belt

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