One of the challenges I find I frequently face with XenApp deployments is the ability to publish legacy applications that is either incompatible with 64-bit operating systems or require a version of Internet Explorer that is older than the version that is natively installed on the XenApp base operating system. One of the recently deployments I was involved in had Citrix XenApp 6.5 on Windows Server 2008 R2 but had 2 applications that required Internet Explorer 6 or 7. As most would know, XenApp 6.5 will only install on Windows Server 2008 R2 and the base operating system is shipped with Internet Explorer 8. Since there is no way of profiling and streaming Internet Explorer 6 or 7, the only option that crosses the mind is Citrix XenDesktop’s VM Hosted Apps. For those who are not familiar with what VM Hosted Apps are, the following is a snippet from Citrix’s eDoc:
VM hosted apps allows you to deliver applications from virtual machines or physical computers, including blade servers, running Windows single-user desktop operating systems. Users access these applications through a Web browser, the Citrix online plug-in, or Citrix Receiver, just as they would applications hosted from XenApp servers running Remote Desktop Services. VM hosted apps allows you to deliver applications that otherwise must be installed locally or require extensive compatibility testing on XenApp servers.
The obvious drawbacks of using VM Hosted Apps is that you essentially have 1 to 1 mappings for application as each application you launch will use 1 virtual or physical machine. So in the event that you want to allow 100 users to launch the same web application that uses a VM Hosted App, you’ll need to have a pool of 100 virtual or physical machines. You can probably get by with 512MB to 1GB of memory for Windows XP but if you multiple, say 512MB by 100, you’ll essentially be using 50GBs of memory. A typical 8GB XenApp server can serve many instances of Internet Explorer. With that being said, if you absolutely need a way to publish legacy applications that your XenApp server cannot host then this would be a viable workaround.
**Note that Citrix blogs also has a post that demonstrates the process of publishing a VM Hosted App here: http://blogs.citrix.com/2011/09/07/xendesktop-5-configuring-vm-hosted-apps/
Now without further delay, the following is an example of publishing a web application with Internet Explorer 7:
Creating a Desktop Catalog
The first step is to create a desktop catalog from a master template that you have prepared with the applications you intend on publishing and then create a desktop catalog. VM Hosted Apps supports different catalogs and depending on which type you deploy, the characteristics will vary. For more information about the characteristics, see the following:
Working With Machine Catalogs and Desktop Groups
Notice how I created a random pool named WinXP VM Hosted Apps in the following screenshot:
Creating a Desktop Group
Once your desktop catalog has been created, proceed with creating a desktop group and add the desktop catalog machines to it:
Create an VM Hosted Application
Once the desktop group has been created, proceed with creating your VM Hosted App by right clicking on the Applications node and selecting Create Application:
Since we already have the desktop group created proceed with clicking on the Add existing button:
Select the desktop group you just created and click on the OK button:
Proceed by clicking on the Next button:
The next screen allows us to choose the program that we would like to run so either type in the path and executable of the application or click on the Browse button to locate it:
Clicking on the browse button will present us with the following Browse For File window:
Notice how the Share drop down menu allows you to select either the Start menu or C$:
If your application is located in the start menu, simply use the Start menu and if your application isn’t, use the C$ option. For the purpose of this example, we’re going to launch internet explorer and because we would like to launch a webpage in the browser, we’re going to put in the URL of the webpage in the Command line arguments field as such:
The next step is to add the users allowed to access the application so click on the Add button and choose a user or group:
Clicking on the next button will allow you to specify a folder to put the application in and/or add shortcuts to the client’s start menu or desktop:
Clicking on the next button will then bring you to the advanced options. Change them accordingly to your requirements:
The next menu allows you to give the application a name:
The next menu provides you with a summary of your VM Hosted App configuration:
Clicking next will create the application and provide you with the result:
Clicking on the finish button will show the newly created application in the list list of applications configured:
Proceed with logging onto your Citrix web interface webpage:
Notice how the newly published application is now available:
Launching the application will present you with multiple prompts that mimic the log on process for a Windows XP desktop:
**Note that I’ve spoken to a Citrix engineer about having this seamless and he said he has never seen these login prompts not presented but when I read responses of forums, I’ve seen people say it could be seamless. In any case, I’ve always seen this prompt but it could be just the applications I’ve dealt with and I will update this post if I ever come across not seeing it.
Once the log off completes, you should see the application launch:
Closing the application will essentially log you off of the desktop so don’t be surprised if you see the log off windows when you close the application.
Hope this helps anyone out there not aware of this feature that provides a workaround for publishing legacy applications.