This project has moved and is read-only. For the latest updates, please go here.

[Solved] How to detect that a client has already an old version of the program to update

Topics: Configuration Issue
Mar 4, 2014 at 12:02 PM
hello!
I have a question: I am deploying the updates for differents programs: firefox, reader, etc I want that the clients with an old version, recive the update, but the clients who don't have that program, omited that update.
Where can I say in Wsus Publisher that rule?

Thanks in advanced
Mar 4, 2014 at 2:40 PM
There is several ways to do that. You can define rules on each update to check a file version, registry key or something else. Personally, I like to declare the new update as a superseding update for the previous one.
Marked as answer by DCourtel on 5/6/2014 at 8:35 AM
Apr 30, 2014 at 7:42 AM
DCourtel wrote:
Personally, I like to declare the new update as a superseding update for the previous one.
Correct me, please, if I understand wrong: you are advising to install new versions of software by choosing "Package Type" as Update and checking all older versions of this software in "Supersedes" list?
Apr 30, 2014 at 10:54 AM
Yes, that's correct.
Apr 30, 2014 at 1:17 PM
Unfortunately I cannot make WPP to install new version of KeePass (((

I have correct (I hope) installation package of KeePass 2.25. In section isInstalled it has only one rule:
<msiar:MsiProductInstalled ProductCode="{1b023d7a-2044-432e-89be-245343e5a392}"/>
and the same rule in section isInstallabe (with reverse condition).
Version 2.25 of KeePass installed perfectly.

Then I want to upgrade it with 2.26 version.
I've made the same packages as for version 2.25, but in Supersedes list checked previous version - 2.25.
The rules isInstalled and isInstallabe are the same as for version 2.25.

When I send Detect now and Report now commands I see that package version 2.26 is installed but actually is installed old version 2.25.
And new version of KeePass don't want to be installed.

Maybe I have to change isInstalled or isInstallable rules? Can you give any example of similar upgrade?
Apr 30, 2014 at 5:19 PM
MSI ProductCode are specific to version of the application. This mean that there is a MSI ProductCode for KeePass 2.25 and another ProductCode for 2.26.

You need to get the MSI ProductCode for KeePass 2.26.
if the file is a MSI :
  • Open WPP
  • Go to Tools -> MsiReader
  • Load the MSI file
  • Open the Dropdown list and select 'Property'
  • Search for 'ProductCode'
If the file is .EXE :
- Install manually on a computer
- Open Regedit
- Browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- Search for 'KeePass' and then look at the 'UninstallString' value
May 5, 2014 at 2:43 PM
Thank you!
I don't expected that MSI ProductCode is different from version to version. I used as example Java installation with has the same ProductCode.
May 5, 2014 at 3:32 PM
Edited May 6, 2014 at 4:35 PM
Java doesn't use the same product code over release. They just change some bytes :

Release 7u40:
x86 : 26a24ae4-039d-4ca4-87b4-2f8 32 170 40 ff
x64 : 26a24ae4-039d-4ca4-87b4-2f8 64 170 40 ff

Release 7U25 :
x86 : 26a24ae4-039d-4ca4-87b4-2f8 32 170 25 ff
x64 : 26a24ae4-039d-4ca4-87b4-2f8 64 170 25 ff
May 6, 2014 at 5:59 AM
Oh! I see.. Really, I've checked my Java installation - product codes are different.
Thank you. Now I really will remember it! ))
May 9, 2014 at 10:03 PM
The best method I have found for checking to see if the software is already installed regardless of version is to test if a key exists in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths for the application in question.

For example to deploy firefox 28.0 only to computers with a version already installed:

On the already installed test, I would create this rule:
Rule type: Registry Key Exists
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 28.0 (x86 en-US)

and for the Installable test I would create these 2 rules:
Rule type: Registry Key Exists
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe

&
Rule type: Registry Key Exists
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 28.0 (x86 en-US)
& select the Reverse Rule option so it doesn't try to install to clients that already have it installed