I was having a discussion with a former colleague over the weekend about AppSense Environment Manager and how he was trying to perform a logon-time detection of iPads. The reason behind this was that he had several senior executives who used the Citrix Receiver on their iPads to connect to his published desktops, and he wanted to adjust several desktop settings in this situation to make the tablet devices easier to use.
As we researched this, however, I discovered that the helpful AppSense techies had already posted a config example about this on the new(ish) AppSense Exchange. They’d actually gone one step further and written a detection for iPhones as well – although for this particular example the iPhone bit wasn’t relevant, as a published desktop probably wouldn’t be the easiest thing to use on a form factor that small 🙂
Bear in mind that these examples haven’t been through any heavy testing and need to be verified for use in your own environments before deploying them. However, the quick bit of work we did suggested that they did work quite effectively in the environment we were testing them on (a pure XenApp 6.5/Windows 2008 R2 system with published desktops). It relies on a combination of client name and screen resolution detection to work properly.
One thing that did spring out at me, though, was that in the AppSense Exchange example it presumes that the client name for iPads will show as “mobile”. As far as we can tell, this seems to be a bug (or feature, maybe) from the Citrix Web Interface 4.3 upgrade (http://support.citrix.com/article/CTX125926) where all Citrix Receiver for iDevice connections show as “mobile”, although some people report this as persisting in versions beyond this. In our testing on a 5.4 Web Interface the client names showed as correctly with iPad_ and iOS_ prefixes, so we’ve edited the original AppSense configuration snippet slightly to reflect this.
So for the iPad detection first you’ll need to add a Condition based around Client NetBIOS Name to check for “iPad_*”
and then add an OR Condition to also check the Client NetBIOS Name again for “mobile”
AND if either of these match, we check for the iPad’s native resolution (at the time of writing) of 1024 x 768 by using the Client Screen Resolution Condition
Update – we forgot about the “new iPad” and the funky new Retina display, so you may need to add a second OR Condition to check the screen resolution to see if it is 2048 x 1536 (shown below – these dimensions were all correct at time this post was written)
So if we match one of the name Conditions and one of the resolution Conditions, we’ll know we are dealing with an iPad and can configure resultant Actions as we so desire for this particular device. So your whole iPad checking routine should look something like this
AND if that matches, a check for the Client Screen Resolution of 915 x 686 which is the iPhone standard should allow us to be fairly sure we are dealing the Apple mobile device (at time of writing)
which leaves your iPhone checking node looking something like this
So there you have it – two ways to use AppSense Environment Manager Conditions to verify whether your users are connecting from particular device platforms.
As to what Actions you need to configure based on this detection – that depends entirely on what your testing has thrown up. In this particular example, my former colleague was doing much the same thing as in the AppSense example configuration and enabling Single Click Mode via the Registry (see below), but it should be the users who define the settings that go here based around the results of their initial experiences and any resultant tweaks that then need to be deployed.