Voted Best Answer
Sep 28, 2018 - 02:52 AM
Here's another good example from experience:
Microsoft's Project and Visio 2010 versions would, out of the box, install as the highest available edition in the media. This behaviour could be avoided by creating a Microsoft Installer transform file to specify a lower edition product key and scripting the installation instead of letting staff do it manually. Of course you could change the product key after installation and the feature set would change accordingly, as would the edition declared on the application's own Help>About dialog.
The trouble is that file-based inventory tools couldn't tell the difference between editions (same as Adobe Acrobat etc) and, even worse, WMI based scanners would probably see the original and possibly incorrect edition from the registry entry for the installer, which was also displayed in the product name under Programs and Features - changing the product key sadly didn't update the relevant registry string.
The excellent PDQ Inventory tool gets caught out this way. The simplest fix for the mismatched edition declaration is an uninstall/reinstall, although no doubt if you wanted to hack the registry you could.
I can't remember if other versions were affected by this <sarcasm> bug </sarcasm> in the same way, because we moved from 2003 to 2010 to 365 and I therefore avoided having any nightmares about the intervening ones.
I also have serious distrust of fuzzy matching on file scanning tools too, as it's too tempting for hard-working ITAM staff to accept suggestions for "close" matches when being bombarded with hundreds of new files each month and no time to verify.
I hope you can arrange for all new software products and version updates to be installed on a test machine first, so your tool's recognition can be verified or taught. But any IT department worth its salt should be testing software in non-production environments for other reasons anyway. If possible, I also highly recomment that everyone have a second tool that uses a different recognition method to cross-check things.