Moving from Communicator R2 to Lync Online Client and your installation is failing?

A recent case I came across that I thought I would share.

The customer was moving from Communicator R2 to Lync online.  The usual processes were followed, the Communicator client was un-installed through programs and features in the control panel.  The new Lync client was downloaded from the Microsoft Online Portal (MOP).

Then the installation failed.  The error was:

"Files in use check failed. Please review logs for details and try again"

So, out came the installation log.

I had a look through the logs and spotted this :

05/30/2012|10:39:20.759 15A8:1480 INFO :: GetSetupStatePreInstallMessage (line 4187) State='32BIT_Vista_Outlook32_RebootPending_NoOutlookRunning_NoCommunicatorRunning_CommunicatorOlderInstalled_WindowsMediaPlayer11Installed_'

So, it looks like the CommunicatorOlderInstalled indicates that an older version of communicator had been installed?  Apparently so.

Further down the log I could see what was happening to thrown the file in use check:

05/30/2012|10:39:21.524 15A8:1480 INFO :: AddFilesForStartManagerbyRegGUID Started (line 2586)
05/30/2012|10:39:21.524 15A8:1480 INFO :: AddFilesForStartManagerbyRegGUID (line 2603): First reading from Registry start
05/30/2012|10:39:21.524 15A8:1480 INFO :: ReadRegistryString Started (line 2733)
05/30/2012|10:39:21.524 15A8:1480 INFO :: ReadRegistryString (line 2747) Path='SOFTWARE\Classes\CLSID\{845263B8-8FC2-49CD-AE10-6781ABBC12A9}\InprocServer32'
05/30/2012|10:39:21.524 15A8:1480 INFO :: ReadRegistryString (line 2755) Key=''
05/30/2012|10:39:21.524 15A8:1480 ERROR :: ReadRegistryString (line 2763) RegOpenKeyEx bit (hr=0x00000002)
05/30/2012|10:39:21.524 15A8:1480 INFO :: ReadRegistryString Finished (line 2785)
05/30/2012|10:39:21.524 15A8:1480 ERROR :: AddFilesForStartManagerbyRegGUID (line 2612) First reading from registry failed (hr=0x00000002)
05/30/2012|10:39:21.524 15A8:1480 INFO :: Is64ProcessorArchitecture Started (line 3186)
05/30/2012|10:39:21.524 15A8:1480 INFO :: Is64ProcessorArchitecture Finished (line 3202)
05/30/2012|10:39:21.524 15A8:1480 INFO :: AddFilesForStartManagerbyRegGUID Finished (line 2653)

This block was repeated five times, followed by the error: FilesInUseFiles In Use check failed. Please review logfile for details and try again (hr=0x80070648)

So what was going on?

I took a Process Monitor (procmon) trace to see what files or registry settings the installation app was hitting.  I compared this to the usual registry entries unique to Communicator R2. If there was a match, then the install for Lync online client was using that registry to establish an older version of communicator was installed, which fired off the process to attempt to try and read from the registry other keys which are associated with Communicator R2 but are now not there.  Hence the failing registry readings as above.

The key that was looked for was:

HKEY_CLASSES_ROOT\Installer\Products\9BBBC1D08A4F6B54597E02B26AD1A74F

The procmon trace saw that this was present and then must enable the older communicator process which causes the fail.

By deleting the key above the customer was able to install Lync client successfully.

Here is a full list of known registry keys for Communicator R2:

HKEY_CLASSES_ROOT\Installer\Products\9BBBC1D08A4F6B54597E02B26AD1A74F
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\9BBBC1D08A4F6B54597E02B26AD1A74F
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders – C:\WINDOWS\Installer\{0D1CBBB9-F4A8-45B6-95E7-202BA61D7AF4}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<UserSID>\Products\9BBBC1D08A4F6B54597E02B26AD1A74F
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Communicator
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{0D1CBBB9-F4A8-45B6-95E7-202BA61D7AF4}

Thanks for reading!