It really depends on the applications. Supercedence is only really used when the {GUID} changes. This is normally caused by a major version change (version 3 to version 4). A well maintained software title will only update the version number when doing minor updates (v3.0 to v3.1). You will also find that many msi based software titles will install on top of your old version without issue.
Now to your question, SCCM has a pre-built report called "Count inventoried products and versions for a specific product". This will report a count of all inventoried versions of a software. You can then use the "Computers with a specific product name and version" to get a list of computers that have old versions.
From what I have been able to find for best practices, you want to keep all application packages that are currently in use. Once the software is no longer in your environment, you can retire the package and delete it once you know not having it isn't causing problems.
You can also make a folder in your application management section to store old application packages. SCCM uses unique IDs for everything and doesn't really care how you organize your objects.
OK, this will be a long post, but there's good stuff here.
First off, the GUIDs for installed software are located in the following locations...
For 32-bit Windows, and 64-bit software on 64-bit Windows:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
For 32-bit software on 64-bit Windows:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
The problem you are running into is that the GUID string is incorrect. The MSI you downloaded from Adobe is the US English version, hence the 1033 in the 3rd part of the GUID string (1033 is the ANSI code page for US keyboards).
The EXE installer, however, is the MUI version, which has a GUID of {AC76BA86-7AD7-FFFF-7B44-AB0000000001} -- note the FFFF in place of the 1033, which means it's multilanguage.
In your detection method, you need to add an OR clause so it will recognize either GUID as a valid install.
Two gotchas you should also be aware of:
1) You should specify the version number in your detection method. All versions of Reader 11 have the same GUID (i.e. 11.0.1 is the same as 11.0.7) so it will cause your detection method to return a false positive if users are on an older version.
2) If you care about security patches for Reader, then you should know that Adobe releases their patches only for the MUI version. You cannot "upgrade" from, say 11.0.1 to 11.0.7 with their MSIs without doing an uninstall/reinstall of the whole product. If you try, it will just tell you the product is already installed (because the GUID is the same).
Here is the correct way to manage Adobe Reader with SCCM:
You need two deployment types in your application.
1) Configure the 11.0.0 MSI just as you already have (make sure the detection method has the version number of 11.0.00 specified -- do not just use the GUID) and save and close it.
2) Go back in and add another deployment type. This time, select Script Installer as the type (SCCM does not handle MSP files natively). Point it to your MSP file and use msiexec /update (instead of the usual msiexec /i) as your command line. For the detection method, use the same GUID, but 11.0.07 (or whatever) as the version. Specify the first deployment type as its dependency. Then make sure the patch has a higher priority in the list. Now save and close it again.
Now, when a client that does not have reader installed requests the application, both will be installed. If the person already has the EXE version installed, it will be patched. If it's already patched, then it will just show as already installed.
Best Answer
"Where is the detection finding Acrobat on this PC?" - You can use DeploymentMonitoringTool.exe on the client to view the detail information of the deployment including the detection method. In your case using a MSI Code, it's querying the product code from WMI.
"if the application is uninstalled from the client PC, the detection still insists that the application is available (the PC is still in the appropriate collection in SCCM). " - Uninstall application from client will not change the membership of the collection Unless this collection is based on querying the existence of this application. If the later, this isn't a good practice as your query may based on hardware inventory data which is uploaded on a schedule time.
If you remove PC from the collection which the application deployment targeted, it will be sure that application disappear from software center. If you add the PC back to the collection, client will evaluate the detection method of the deployment type - If the product code is detected, it will not appear in Software Center; if the product code is not detected, it will show in Software Center and show as 'available' to be installed (Not installed yet).
The appdiscovery.log will show if the application installed or not and then you'll clear.
Detecting the existence of Acrobat.exe is not the best way as: 1)There can be just a copy of installation folder in other Dir. 2)There may be other version of Acrobat in your environment.