VMware Horizon

Virtualizing the VMware View Client using ThinApp

By Joshua Spencer, End-User Computing Specialist, VMware

Introduction

Over the years there has been much debate about which display protocol provides the best performance while being the most efficient. I think the debate is finally over, and the blog post you can find  here goes a long way toward ending it. Leveraging the PCoIP protocol and the PCoIP Secure Gateway Server, VMware is helping end users stay connected from anywhere, at any time, using any device they choose.

Challenge

We can think of connecting to a  VMware View desktop using PCoIP as a client/server application. The virtual machine, which resides in the datacenter, gets the VMware View Agent installed. Because PCoIP is completely host-side rendered, this agent acts as the PCoIP server. On the end point device, we install the VMware View Client, which serves as the PCoIP client. The PCoIP server (View Agent) encrypts and compresses display information and sends it down to the View Client where the display is rendered on the screen.

What this means is that the View Client has to be installed on every end point that will connect to a VMware View desktop. Installing the client is a simple process of connecting to a website and running the executable.

The client includes two drivers: one for  Virtual Printing and another for Advanced USB Redirection. Because of this, the View Client requires local administrative privileges for installation. While local admin privileges are not usually an issue on personal or IT-managed devices, I have seen a number of customers encounter situations where they cannot install the VMware View Client. VMware View is a highly adopted technology in the healthcare industry. Healthcare professionals often roam to multiple clinical sites throughout their network, and View provides a means of accessing a standard desktop workspace from any location. But what happens if he or she cannot install the View Client due to lack of permissions on a given PC? Likewise, I have seen this come up on public kiosk-like computers. For example, you are at a public library and you want to connect to your View desktop to get some work done. Library and other public-facing machines are often locked down, preventing the installation of any software, including the View Client.

Resolution

One solution to this problem is to leverage a simple, yet powerful, tool called VMware ThinApp. With ThinApp we can virtualize the VMware View Client software, allowing it to run on any Windows device regardless of privilege level. ThinApp will take all of the files and registry keys that make up the View Client and produce a single executable file.

ThinApp packages execute in user mode rather than kernel mode. There are several advantages to this, including application stability and the ability to run with user rather than administrative privileges. Operating in user mode however, prevents the use of embedded drivers. In this scenario, we will produce a View Client executable that can connect to and deliver a VMware View virtual machine, but will not be able to make use of the Virtual Printing and Advanced USB Redirection features described above.

The  application packaging process is simple and straightforward, and the View Client can be packaged in minutes. Once the application is packaged, this file can be executed from any Windows endpoint device. The next question is “How do we distribute it?”

VMware View 5.1 Custom Portal

With the release of VMware View version 5.1, VMware has included a new feature that allows IT administrators to customize the View Portal. Customized View Client packages can be delivered based on the OS or browser being used to connect to View. The  VMware View Evaluator’s Guide has step-by-step instructions for customizing the download links.

Here is what the standard portal looks like when connecting from a Windows client using IE:

And here is what the portal looks like after a simple modification to provide the ThinApp version of the View Client as well:

The new custom portal feature is a great way to deliver customized View Client packages, and generally gives you sufficient control over the portal page. However, for those who would like more customization including branding, CSS formatting, etc., you should take a look at the VMware View eXtender from Techstur. This free technology is simple to set up and allows IT administrators much more control over the View portal.

Packaging the View Client Using ThinApp

There are multiple ways to package the View Client with ThinApp. The following are steps I have used to successfully package the client. Limited testing has shown this package will work on Windows XP, Window 7 x86 and Windows 7 x64.

Note: Items in green are optional and/or will vary by use case

1. Start with XP SP 3 clean VM.

2. Install VMware Tools.

3. Uninstall Microsoft Visual C++ bits.

  • Thanks to David Horvath from DMC Technology Group for this tip!

4. Run Setup Capture.

  • In my recent testing I used ThinApp version 4.7.0-519532, though most versions should work.
  • Prescan
  • Install View Client
    • In my recent testing I used the View Client version 5.1.0-704644, though most versions should work.
    • Disable USB Redirection (this feature will not be available in the ThinApp virtual application anyway)
    • Default View Connection Server = <server.company.com>
    • Desktop shortcut only
    • No need to restart as drivers are not applicable to this package
  • Launch the View client
  • Options > Configure SSL > Allow the unverifiable connection
  • Autoconnect: “Checked”
  • Postscan
  • Groups authorized to run this package “Everyone”
    • This is optional, but choosing “Everyone” will make the package usable from non-managed devices
  • Isolation mode = Full
  • Sandbox = Default
  • Finish

5. Open project folder.
6. Delete extraneous components*.

  • Desktop > View Client.exe (installer)
  • %SystemRoot%\Installer
  • %Program Files Common%\VMware > VMware Virtual Printing (this feature not available in ThinApp virtual application, anyway)
  • %Common AppData%\VMware\VDM\logs > debug and log txt files
  • %Local AppData%\VMware\VDM\logs > txt log files
  • %ProgramFilesDir%\VMware\VMware View\Client\DCT
  • %ProgramFilesDir%\VMware\VMware View\Client\extras > vdm_client.adm
  • %ProgramFilesDir%\VMware\VMware View\Client\bin\messages > all folders EXCEPT “en”
  • %ProgramFilesDir%\VMware\VMware View\Client\bin
    • The following will remove various language-specific dlls.
    • wswc_de_de_407.dll
    • wswc_fr_fr_40c.dll
    • wswc_ja_jp_411.dll
    • wswc_ko_kr_412.dll
    • wswc_zh_cn_804.dll

7. Edit package.ini > CompressionType=Fast.
8. Run build.bat.

*It is not necessary to delete the above files from the ThinApp Captures directory, but doing so will reduce the size of the final executable from more than 100MB (all package features installed) to ~48MB.

Automation

Do you want to automate the above process?**

Consider the  VMware View Command Line Usage options provided by Andre Leibovici. The command-line options allow you to customize the View Client package at the point of installation.

Do you want to take it to the next level?**

If you have not seen VMware ThinApp Factory, I highly recommend you take a look. ThinApp Factory is a free tool to automate the packaging and delivery processes for ThinApp virtual applications. After you have the factory up and running, be sure to read about the VMware View Client Feed and Recipe.

**Thanks to Dean Flaming – @Squidlyman – for these tips!

What Does the Future Hold?

The solution I have outlined here has been used in some form or another by many customers for several years, and I suspect it will continue to be useful for some time to come. That said, if you didn’t have a chance to watch the  VMworld Keynote on EUC, I highly recommend it. Herrod discusses the future of  AppBlast technology to deliver a View desktop without having to use a client of any kind. Rather, your desktop can be rendered directly within your HTML5-capable browser!