Here’s a quick tip with a few ways to locate and identify wheter an installation of the Office Communicator client on a workstation originally came from an Evaluation, Volume License, or MSDN version.
To determine which flavor of the client software is installed on the computer, locate the Product ID in the Help > About window in Office Communicator. The second grouping of digits will indicate the type based on one of three values shown below. (A full list of Microsoft Product IDs can be found in this TechNet article.)
000 – Evaluation Version
270 – Volume License
335 – MSDN
Now let’s say you want to locate this information on hundreds of workstations to validate that the desired installation of the client is present. The Product ID value is is stored in the registry, but can be located in a few different places depending on the version of the client (2005, 2007, 2007 R2) or whether the operating system is 32 or 64 bit.
Depending on the client version, 32-bit operating systems will store the values in one of these locations:
HKEY_LOCAL_MACHINESOFTWARESOFTWAREMicrosoftCommunicator2.0Registration
HKEY_LOCAL_MACHINESOFTWARESOFTWAREMicrosoftCommunicator3.5Registration
But what I noticed on my laptop was the complete lack of a Communicator key under Software. After some searching I located the correct key and value and realized that because I’m running a 64-bit operating system the 32-bit Communicator client actually has it’s information stored elsewhere in the registry:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftCommunicator3.5Registration
Here’s some background information on the Wow6432Node key in the registry and it’s usage:
http://msdn.microsoft.com/en-us/library/ms724072(VS.85).aspx
Note: When using the registry API (e.g., RegOpenKeyEx and RegEnumKeyEx) in a 32-bit application, Wow6432Node acts like a symbolic link that loops back to the same 32-bit hive. It does not map into the 64-bit hive as you might think.
For example, walking the registry tree down to HKLMSoftwareWow6432Node in a 32-bit application loops back to HKLMSoftware. The result is infinite recursion: HKLMSoftwareWow6432NodeWow6432NodeWow6432Node…, etc.
If you want to view the 64-bit registry hive in 32-bit code you must open HKLMSoftware using KEY_WOW64_64KEY. Do not try to open Wow6432Node; it will not work.
As a general rule you should ignore any result from RegEnumKeyEx that returns "Wow6432Node". It is a magic name that triggers special behavior by the registry API.
Windows Server 2008: In the 32-bit hive the registry key HKLMSoftwareWow6432Node is hidden from RegEnumKeyEx. This fixes the infinite recursion bug described above. The hidden key still exists and the infinite recursion can still happen, but only if you explicitly open the key.