uberAgent collects information about applications on multiple levels:
- Which applications are installed (app inventory)
- Which applications are running (app usage)
- Which applications are being worked with (foreground app)
Not all of that information is available in one data source. In fact, uberAgent has to query quite disparate sources to collect its extensive application information. That can lead to inconsistencies, specifically between the app inventory and all the other application sourcetypes.
The root of the problem is that Windows has no generic concept of applications. Windows knows and cares about processes, threads and a good number of other things, but APIs for applications? Nonexistent.
As a consequence, there are no application naming and versioning standards for software vendors. This may lead to the situation that vendors use one name/version in one place and a different name/version in another - for the same application.
uberAgent has sophisticated algorithms to deal with the situation and determine the best possible application names and versions. However, there may be inconsistencies between the sourcetypes ApplicationInventory and other application sourcetypes, e.g., ApplicationUsage or ProcessDetail.
The reason for these inconsistencies lies in the fact that the data for the ApplicationInventory sourcetype is based on the Uninstall registry key so that it matches what Windows displays in Apps & features.
All other sourcetypes' application info, on the other hand, is based on an algorithm that determines application properties depending on the application type (Win32, UWP, App-V, Java, ...). Naturally, this algorithm cannot use the Uninstall registry key.
For that reason, inconsistencies may exist and mapping between the ApplicationInventory and other application sourcetypes is not recommended.