/build/static/layout/Breadcrumb_cap_w.png

Strange Published Deployment Behavior

Here is a strange issue for you guys.

I've modified an msi for ArcGIS Desktop 9.2 to uninstall all previous versions of ArcGIS referenced in the Upgrade table.

If I execute the msi and associated mst manually via msiexec.exe at the command-line, it works as it should.

If I publish the same msi and mst file using Group Policy, it installs the new version, but does not remove the existing versions.

Any ideas on what I am doing wrong?

0 Comments   [ + ] Show comments

Answers (6)

Posted by: nheim 16 years ago
10th Degree Black Belt
0
Hi Nicholas,
is the previous version also installed by a GPO?
If yes, you need to set the new entry for v9.2 to upgrade the previous GPO entry.
Regards, Nick
Posted by: nhill118 16 years ago
Senior Yellow Belt
0
Thanks for replying.


The previous version was not deployed through GPO. It was installed manually through an administrative install point.

That is why I populated the Upgrade table in the msi, and moved the RemoveExistingProducts to fairly early in the InstallExecuteSequence.


My job would have been much easier had it originally been via GPO.
Posted by: nheim 16 years ago
10th Degree Black Belt
0
Hi Nicholas,
where in 'InstallExecuteSequence' have you put 'RemoveExistingProducts'?
Do a log to see, if it's detected.
Do you have the property in the SecureCustomProperties list?
Regards, Nick
Posted by: nhill118 16 years ago
Senior Yellow Belt
0
It is between InstallValidate and InstallInitialize.



Here is what I get from the GPO log

MSI (s) (D8:48) [13:32:53:213]: Doing action: RemoveExistingProducts
Action ended 13:32:53: InstallValidate. Return value 1.
MSI (s) (D8:48) [13:32:53:229]: Transforming table Upgrade.

Action start 13:32:53: RemoveExistingProducts.
MSI (s) (D8:48) [13:32:53:245]: Doing action: InstallInitialize
Action ended 13:32:53: RemoveExistingProducts. Return value 1.



Here is what I get from the same msi and mst when executed from the commandline using msiexec.exe (this is just the beginning due to it running through the whole uninstall)

MSI (s) (D8:18) [14:48:28:197]: Doing action: RemoveExistingProducts
Action ended 14:48:28: InstallValidate. Return value 1.
MSI (s) (D8:18) [14:48:28:212]: Transforming table Upgrade.

Action start 14:48:28: RemoveExistingProducts.
MSI (s) (D8:CC) [14:48:28:212]: Resetting cached policy values
MSI (s) (D8:CC) [14:48:28:212]: Machine policy value 'Debug' is 0
MSI (s) (D8:CC) [14:48:28:212]: ******* RunEngine:
******* Product: {40F8FD5F-4701-48D6-A8FC-1F188007DF38}
******* Action:
******* CommandLine: **********
MSI (s) (D8:CC) [14:48:28:823]: End dialog not enabled
MSI (s) (D8:CC) [14:48:28:823]: Original package ==> C:\WINDOWS\Installer\4032b.msi
MSI (s) (D8:CC) [14:48:28:823]: Package we're running from ==> C:\WINDOWS\Installer\4032b.msi
MSI (s) (D8:CC) [14:48:29:074]: APPCOMPAT: looking for appcompat database entry with ProductCode '{40F8FD5F-4701-48D6-A8FC-1F188007DF38}'.
MSI (s) (D8:CC) [14:48:29:074]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (D8:CC) [14:48:29:074]: Machine policy value 'DisablePatch' is 0
MSI (s) (D8:CC) [14:48:29:074]: Machine policy value 'AllowLockdownPatch' is 0
MSI (s) (D8:CC) [14:48:29:074]: Machine policy value 'DisableLUAPatching' is 0
MSI (s) (D8:CC) [14:48:29:074]: Machine policy value 'DisableFlyWeightPatching' is 0
MSI (s) (D8:CC) [14:48:29:074]: APPCOMPAT: looking for appcompat database entry with ProductCode '{40F8FD5F-4701-48D6-A8FC-1F188007DF38}'.
MSI (s) (D8:CC) [14:48:29:074]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (D8:CC) [14:48:29:074]: Transforms are not secure.
MSI (s) (D8:CC) [14:48:29:074]: Command Line: UPGRADINGPRODUCTCODE={1F34839E-4826-4B64-B1B3-42E5AE8DEC5A} CLIENTUILEVEL=2 REMOVE=ALL
MSI (s) (D8:CC) [14:48:29:074]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{A6908A87-927B-42F0-8649-CB7DBCDDF8AC}'.
MSI (s) (D8:CC) [14:48:29:074]: Product Code passed to Engine.Initialize: '{40F8FD5F-4701-48D6-A8FC-1F188007DF38}'
MSI (s) (D8:CC) [14:48:29:074]: Product Code from property table before transforms: '{40F8FD5F-4701-48D6-A8FC-1F188007DF38}'
MSI (s) (D8:CC) [14:48:29:074]: Product Code from property table after transforms: '{40F8FD5F-4701-48D6-A8FC-1F188007DF38}'
MSI (s) (D8:CC) [14:48:29:074]: Product registered: entering maintenance mode
MSI (s) (D8:CC) [14:48:29:074]: PROPERTY CHANGE: Adding ProductState property. Its value is '5'.
MSI (s) (D8:CC) [14:48:29:074]: PROPERTY CHANGE: Adding ProductToBeRegistered property. Its value is '1'.
MSI (s) (D8:CC) [14:48:29:074]: Package name retrieved from configuration data: 'setup.msi'
MSI (s) (D8:CC) [14:48:29:074]: Determined that existing product (either this product or the product being upgraded with a patch) is installed per-machine.


I do have the same value in SecureCustomProperties and the Upgrade table.
It does not appear to be detected when ran through the GPO, but I have no idea what the difference is since it's the same msi and mst.
Posted by: nhill118 16 years ago
Senior Yellow Belt
0
I think I may have found where it is going wrong

During the FindRelatedProducts action, I get this

MSI (s) (D8:48) [13:30:13:441]: FindRelatedProducts: current install is per-user. Related install for product '{40F8FD5F-4701-48D6-A8FC-1F188007DF38}' is per-machine. Skipping...
Action start 13:30:13: FindRelatedProducts.
MSI (s) (D8:48) [13:30:13:441]: Doing action: AppSearch
Action ended 13:30:13: FindRelatedProducts. Return value 1.

It appears that my variable for SecureCustomProperties is not being set. I am Publishing the application under User Configuration in the GPO. Is this dictating the per-user status even though I have ALLUSERS=1 on the Property table in the msi?
Posted by: nheim 16 years ago
10th Degree Black Belt
0
Hi Nicholas,
this is true. If the previous version is installed per machine, you can't switch this context to per user.
A per user GPO overrides the ALLUSERS property in the MSI or MST.
You could install a dummy app per computer, which does nothing then to remove the old version. Then in a few weeks if you a sure every computer was being processed you remove this dummy.
You could include a reg key as a flag and check for it with the new version through a LaunchCondition entry to make sure that it's installed after the old one was removed.
Regards, Nick
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

Share

 
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