Sharing applications with Citrix XenClient

So here we are again, today I had some spare time that I filled with working on the CSDV smackdown…

I decided to setup my demo DELL laptop and share some applications between virtual machine, because who doesn’t want to do that in their spare time…..

The documentation about sharing applications is minimal, from page 35 on you have a short chapter about how to share applications and somewhere in the guide there is a quick guide of how to receive them….

So what do you need to set this up?

– A laptop capable of running Xenclient –> Check.

– Two virtual machine running e.g. Windows 7 x64 SP1 –> Check.

– a non-standard Windows application to publish –> Check.


So First you setup the publishing virtual machine, the one that will provide you with the applications.

Assuming you setup your Windows 7 virtual machine already we can proceed to setup the Xenclient tools. The XenClient tool CD is attached to the virtual machine so opening it and starting Setup will install the XenClient tools

I won’t go over the marks you have to set for licensing extra, that’s all basic stuff we all see to much. The installation is a next-next-finish installation so have a go.

Half way the next-next-finish you have to choose which components you will install, if you clicked to fast you only installed the Xenclient tools. That’s no problem you can add the publisher later on also.

So after starting the setup you get the following options:

on the publishing virtual machine you select Publisher (what else) and you move on with your quest to reach Finish. A reboot is necessary to complete the installation.


Before we decide which applications you will publish and how, we first make sure the subscriber is ready for them.

On the subscriber the steps are the same except for the choice you make..

Choose “Subscribe to Applications” on this virtual machine to be able to receive the applications from the publisher.

A reboot is necessary to complete the installation.

Publishing applications

By default Xenclient will publish every application that is installed in the publisher virtual machine that is not Windows native. Without any additional software installed this means you just get to see Internet explorer.

In the XML file you see that the User startmenu en the Common startmenu is browsed for new applications. These settings are set under “DiscoveryPath”. Publishing of applications is further controlled with a whitelist and blacklist, Internet Explorer is by default on the whitelist and several default Windows applications are blacklisted.

Receiving applications

On the receiver side you get an extra option in the startmenu, not like it says in the documentation “Dazzle apps” but a “Get more Apps” menu items is provided.

After selecting this, Receiver is started and you can select the application provided.

As you can see the reciever shows my second virtual machine already (XCWindows-PC).

Clicking on that one will show the applications provided by it.

I installed Firefox as a new application and it is shown instantly in the receiving desktop. If I click on “ADD” the application is added to my “Application” menu and appears in my startmenu.

I can open FireFox by clicking on the icon, mind you you have to be logged on to the other virtual machine to make this possible. If your publisher virtual machine is locked you’ll get the password unlock screen presented instead of the application.. there is no intelligence built-in that has some sort of a tunnel into the other virtual machine…

In the receiver you can search for applications, this is handy when you have multiple applications. I searched for FireFox and Voila there it was.

Only when you add it to your collection will it appear in your startmenu.

Now I need to test a thing or two, while doing an initial test my second virtual machine was locked. Starting my publsihed application showed some weird behavior.

Test : publishing virtual machine is unlocked.

When I start FireFox, something weird happens… I get a locked desktop at which I first have to logon.

After logging on, Firefox starts.

I tried to save the picture shown above after pasting it in Paint. I couldn’t use my keyboard and had to save it as untiteld. For some reason my keyboard is locked for a while. I could typ in the second virtual machine screen however…

FireFox started and I can typ in that screen. After a while my keyboard is functional again in my first virtual machine. The fact that my receiving laptop keyboard is locked is strange.

One thing I noticed on my other laptop was a spike in processor usage from the plugin providing the application functionality. on this laptop, a DELL, I don’t notice this behavior.

Test 2: the second virtual machine, the publisher is now locked.

– The desktop screen is shown, locked like above.

– I can’t use my keyboard anymore in the first virtual machine, the keyboard is only usable for the published application untill I logon to the desktop and Firefox is gestart.


A day or two down the line, I went further with looking at this application publishing. On the receiver side you can look into Connection center to see which applications you opened from the other VM. Of course you can also see that from the green lining, but if you’re like me you will not notice that after a while anymore.

As you can see the connection center and all it’s features are the same as they were with a normal SBC deployment.


Two days ago I published one application, actually I just installed it in the publishing virtual machine and let XenClient do the rest… anyway

Today I wanted to test how long it takes before Xenclient displays a newly added application to the publishing virtual machine. So I added VLC, but it could have been any application for all that matters.

Installed it, started it, closed it, waited…. switched to my Receiver virtual machine, refreshed reciever, refreshed again….waited….waited and yes there it was


It takes a decent amount of time to see the application in the Reciever virtual machine. I refreshed everything except XenClient. Also didn’t I restart the virtual machine. the application shows up eventually and truth is that you won’t be facing this in normal day live. a publishing vm will be pre-installed ready and waiting for you perhaps even autostarted.

VLC performance and opening files

just one small minor thing….Look at the video performance of the demo video. The receiver virtual machine has 3D enabled, the publisher not…as required.

further on, I suddenly wondered, why is his video on this virtual machine for I didn’t install VLC here (not realizing these are Microsoft demo video’s). I opened explorer from the application and from my receivering virtual machine. It appears that VLC is reading the C disk of the publishing virtual machine and can’t read my receiver virtual machine… that weird. That wouldn’t make  any sense, I want to access my own files… perhaps I’m overlooking something but for now I’m in the dark.

Below is a picture of both the explorer screens, the bottom one is from the receiver, the top one is opened from VLC and shows the publishing virtual machine.



Altered by a Citrix forum post I went out to test Application sharing with dual screen.

first I attached a second screen to my laptop, extended the monitor so I had a wide screen to work on.

It’s in Dutch but you all know these settings…

Starting an application, FireFox goes like planned…it  starts and all looks well.

 The green lining around the screen shows that the application is started from another virtual machine.

I can move FireFox from my primary screen to the second screen with no problem..

However when I try to set FireFox Fullscreen, it doesn’t work as expected. the application jumps back to my primary screen. I haven’t found the reason for this yet.



the feature works and is pretty easy to implement, it has some rough edges I can’t get my hands on yet… we’ll keep on looking and testing. For now I know enough.

I can see a use case for this with application compatibility and work versus private virtual machines. Still I’m not sure how to place Xenclient in the usecase itself….

Nice topic for up coming discussions…





Leave a Reply