When looking at a report of Installed Software, or the Software Summary for a resource, or directly in either the AddRemoveProgram or InstalledSoftware dataclasses (Inv_AddRemoveProgram or Inv_InstalledSoftware database tables), software shows up that is no longer installed on a client computer.
Typically, the Software Discovery scan (part of the Software Management Framework Agent) collects and updates information on which programs are installed on a client computer, and reports them in to the server. It stores the information in a file on the client computer, called SoftwareCache.xml, but some issues arise that require this file to be removed from the clients.
When the file is removed, any history of what programs were reported to the server are also missing. The server does not currently have a method to purge old information from the database for either of these classes. If a program is removed from the client computer after the SoftwareCache.xml file is removed, then it is possible the database will have an entry for the software, when it is no longer installed.
If deleting the SoftwareCache.xml file is required, or it was deleted in the past and this problem is happening, then manually purging the data from the database, for these two classes can resolve the issue.
Note: When manually editing the database, be sure only the desired information is removed. Always have a backup of the database in case something goes wrong.
Find the guid for the computer effected:
SELECT [Guid] FROM [vComputer] WHERE [Name] LIKE 'computer-name'
Optional: verify the information to be deleted by viewing it first (example is using the guid found in step 1):
SELECT * FROM [Inv_InstalledSoftware] WHERE [_ResourceGuid]='7074B73F-B143-4CB6-B44B-A6D38AA6733D'
SELECT * FROM [Inv_AddRemoveProgram] WHERE [_ResourceGuid]='7074B73F-B143-4CB6-B44B-A6D38AA6733D'
Delete the data from the tables:
DELETE FROM [Inv_InstalledSoftware] WHERE [_ResourceGuid]='7074B73F-B143-4CB6-B44B-A6D38AA6733D'
DELETE FROM [Inv_AddRemoveProgram] WHERE [_ResourceGuid]='7074B73F-B143-4CB6-B44B-A6D38AA6733D'
Optional: delete the rows from ResourceUpdateSummary, to remove any history for these data classes, for the computer:
DELETE FROM [ResourceUpdateSummary] WHERE [ResourceGuid]='7074B73F-B143-4CB6-B44B-A6D38AA6733D' AND [InventoryClassGuid] IN ('8DFC7D01-D2C6-4B6A-9228-27F3B5CE28EB','97E737F5-521C-48AA-BD82-917473843DE2')
Once this is completed, delete the SoftwareCache.xml file from the client computer, typically found at "C:\Program Files\Altiris\Altiris Agent\Agents\SoftwareManagement\data\" and the next time a Software Inventory is run, all the information found will be reported in to the server, and they will be synchronised again.