There are some use-cases where you may find  a need to provide VM-hosted apps.  Although it is several years old, VirtualQube has published a really great article called VM Hosted Apps – and Why You Should Care, which goes into great detail on reasons why you should or should not consider VM-hosted apps as a possible solution for your environment.

A couple of the main reasons are as follows:

  • The application is not 64-bit compatible
  • The application does not play well in a multi-user environment
  • The application interferes with other applications on your server

I could not find a detailed step-by-step on how to set up VM-hosted applications, so I wanted to add this to the blog.

Important things to note:

1. VM-hosted apps requires the same licensing as a VDI desktop would:

  • 1x Windows 7 license per desktop
  • 1x Windows VDA license per user

2.  There is no limit to the amount of applications a user can interact with in a session, only a limit of how many users can interact with a desktop.  As we all know, Windows 7 is not a multi-user OS.  There is no way to install Office on Windows 7 and have 50 users connect to it by VM-hosted apps.  It’s simply one user per desktop.  That’s it.

3.  If you have a need for a large number of users to concurrently access a VM-hosted app, I’d suggest using MCS or PVS to create your desktops so you can easily manage your updates.

  • For this step-by-step guide, I will be showing you how to configure your environment for VM-hosted apps as if you were going to individually manage and update your machines.

4.  If you only have 5 Windows desktops and 5 users are logged into them, there are no more desktops to deliver VM-hosted apps, thus denying the 6th user access to that application.  You will receive a Cannot start app “<app name>” error from Storefront.  If you choose to use VM-hosted apps, I’d suggested designing to accommodate the maximum amount of concurrent users that you ever might see accessing that application.

5.  VM-hosted apps is a supported feature for all versions of XenApp except for Advanced Edition.  Similarly, it is supported for all versions of XenDesktop except for VDI Edition.


Install the XenDesktop VDA

The VDA installation is just like it is for every deployment.  There is nothing special here.  Mount your Citrix media, deploy for a Windows Desktop OS, and configure your delivery controllers.

Configure Machine Catalog (without MCS/PVS)


Open Citrix Studio.  Right-click on Machine Catalog, and click Create Machine Catalog.


Select Windows Desktop OS as your operating system choice.


If you’re using PVS or MCS, choose your power management settings, your deployment method, and click next.

If you’re deploying individual VMs, select not power managed (as pictured), select another service or technology, and click next.


If you’re using PVS or MCS, choose your desktop experience, and click next.  Continue the normal additional steps required for PVS/MCS.

If you’re deploying individual VMs, select random desktop for each login.  I choose this as not to lock a desktop to a user.  I have multiple users, but only a few concurrent at any time, and do not wish to build the same total number of desktops as there are users.


Click Add computers and list the computer names of the machines you intend to deliver VM-hosted apps from.
Click next.


Name your machine Catalog and click Finish.

Configure Machine Catalog with MCS


Right-click Machine Catalogs and select Create Machine Catalog.


Select Windows Desktop OS.  Click Next.


Select your power management setting.  Select Citrix Machine Creation Services (MCS).
Click Next.


Choose your desired desktop experience.  Click Next.


Choose your Windows  7 template (golden image).  Click Next.


Choose the number of desktops you wish to create and configure resources.  Click Next.


Select the OU you wish you deploy your desktops to.  Provide a naming schema for your computer accounts.
Click Next.


Name your machine catalog.  Click Finish.


Configure Delivery Group


Right-click on Delivery Group, and click Create Delivery Group.


Chose the number of machines for the delivery group from the catalog you just created.
Click next.


Click Applications.  Click next.


Click Add.  Enter the user group or name you wish you deliver VM-hosted applications to.
Click next.


Select the application(s) you wish you deliver to a user per desktop.
Click next.


Name your delivery group and click next.



Make sure to disconnect your RDP session(s) to your Windows 7 machine(s) if you have any open, otherwise you may see the following error.  This means you have exceeded the amount of connections for the available Windows 7 machines. (1:1)


This is because my setup currently consists of a single Windows 7 VM.  It currently sees an in-use RDP session to that server and is denying any further connections until I drop.  If you have more than one Windows 7 VM, you’ll be able to connect as many users as there are desktops, then they will see the same error as above.


Additional Resources:

VM-Hosted Apps – and Why You Should Care
Virtual Qube

(Visited 4,692 times, 1 visits today)