Issue after upgrading your vCenter 5.5 U1 server from Windows 2012 to 2012 R2

Update 1 for vCenter Server 5.5 was recently released, and the Windows version now officially supports being installed on Windows Server 2012 R2. So far I had the 5.5 GA version running on a Windows Server 2012, and after installing the Update 1 (which went pretty smoothly) I thought that it's a good idea to now also upgrade the OS to 2012 R2.

I had successfully done this kind of in-place upgrade before with my two Domain Controllers and the Veeam Backup server, and I was not really expecting any big issues, but this time there was one: After the upgrade to 2012 R2 finished the VMware vSphere Web Client service failed to start! It took me some time to find the root cause of this, but in the end it was easy to fix ...

It turned out that the startup command line for the Web Client service got corrupted during the Windows upgrade. You can find its ImagePath value in the registry at

  HKLM\SYSTEM\CurrentControlSet\Services\vspherewebclientsvc


And after the Windows upgrade it looked like this:
"C:\Program Files\VMware\Infrastructure\vSphereWebClient\server\bin\service\bin\wrapper.exe" -s "C:\Program Files\VMware\Infrastructure\vSphereWebClient\server\bin\service\conf\wrapper.conf" set.default.SERVER_HOME=C:\Program Files\VMware\Infrastructure\vSphereWebClient\server set.default.JMX_PORT=9875
The issue here is the definition of the SERVER_HOME variable, because its value contains spaces!

My first try was to enclose the value in double quotes. After that the service would start, but any trial to access the Web Client only resulted in an HTTP Error 404 (page not found). So the quotes were causing other issues ... My next try was to remove the quotes again and replace the long name of the SERVER_HOME directory with its short 8.3 name:
"C:\Program Files\VMware\Infrastructure\vSphereWebClient\server\bin\service\bin\wrapper.exe" -s "C:\Program Files\VMware\Infrastructure\vSphereWebClient\server\bin\service\conf\wrapper.conf" set.default.SERVER_HOME=C:\PROGRA~1\VMware\INFRAS~1\VSPHER~1\server set.default.JMX_PORT=9875
and that fixed the issue for me: The service started and worked fine.

Please note: The correct 8.3 name may differ between systems! You can find out your own by running the command
for %i in ("%ProgramFiles%\VMware\Infrastructure\vSphereWebClient\server") do @echo %~fsi
in a Windows command prompt!

Another option would have been to just uninstall and re-install the vSphere Web Client, but I just like getting closer to the bottom of such issues ;-)


This post first appeared on the VMware Front Experience Blog and was written by Andreas Peetz. Follow him on Twitter to keep up to date with what he posts.



3 comments:

  1. +1000 to you! Thank you so much for posting your experience and solution, it saved the day.

    ReplyDelete
  2. Thanks for the hint!!

    ReplyDelete
  3. Your solution worked for me. Thanks! :)

    ReplyDelete

***** All comments will be moderated! *****
- Please post only comments or questions that are related to this post's contents!
- Advertising and link spamming will not be tolerated!