Citrix XenApp ICA Client Installation, Tuning and Troubleshooting Guide

Posted by Jim Moyle on August 4th, 2009

Citrix Receiver IconEdit: This post is relevant up to 11.2, Citrix changed everything with 11.2 :) Look for an update sometime in the future.

Generally the ICA client doesn’t get much attention, undeservedly so in my opinion.  So I decided to make this guide as a quick reference sheet for all you need to know about the Windows client for Citrix XenApp.

Most people install the client when they set up their first farm and forget about it, maybe upgrading with a major server refresh.  The people who leave old clients on their desktop estate are missing out on a whole lot of functionality.  So my first and most basic bit of advice is to upgrade your clients!

As the first bit of advice is to upgrade I’ll show you how to best do that below.  The rest of this post will only be relevant for clients from 10.2 onwards, if you have an earlier client, I’m sorry, but this post isn’t for you.

For a complete list of the features included in the latest client have a look at the Citrix Client Feature Matrix PDF.  Hopefully the new cool stuff (and the weird errors from supporting a mess of clients) has persuaded you to upgrade your desktop estate to the latest client which at the time of writing is the ‘XenApp Plugin for Hosted Apps’ 11.000.

A lot of administrators don’t even know which client versions they have out there, and unfortunately Citrix doesn’t help you very much in this regard, as it only shows the build numbers for connected clients and not the version numbers i.e. version 10.2 shows up as 02650.  In XenApp 5.0 and later, this client build number can be seen by selecting the user session in the Access Management Console and selecting the Client Build Number column.  So now you need to know what the build numbers mean.  The knowledge base article CTX112613 will give you this information.

Obviously once you have decided to upgrade your clients you need a way to distribute them.  To do this your standard software distribution method will be fine.  To create a silent installation download the latest client to your local drive and run the following command:

msiexec.exe /a XenAppHosted.msi

This will give you all the options you need to create a silent installation package tailored to your enterprise ready for distribution.

If you run into issues with upgrading clients and need a clean machine for install you can use the free tool from Gourami to remove all traces of the client from 2000/XP/Vista or Windows 7 machines.  If you aren’t comfortable with the tool you can use CTX325140.

So, now you have an estate of updated clients, but you need more granular control over the client behaviour.  You can get this by using a GPO, first you need to import the handy icaclient.adm administrative template. You can usually find it in “C:\Program Files\Citrix\ICA Client\Configuration”.  With this template you can control almost all aspects of the client behaviour, with the one weird exception being that you cannot manage the pnagent url.  The main topics in the template are:

  • Network routing
  • User Authentication
  • Remoting Client Devices
  • User Experience
  • Client Engine

In most cases this should be enough to sort out most of your problems, if you have any niggling connectivity issues you should use the Troubleshooting ICA 32-bit and Web Client Connectivity CTX075552 article.

At the time of publishing there is a tech preview of flash remoting available on Citrix’s website, all I can say is it works superbly given the restrictions of the fact it is beta code.  Stick it in your test environment and have a go.  For more information on the future of protocols see my previous post: How games will show who is the remote protocol winner.

Finally, I have some tuning tips for your environment, I think most of these should probably be in the icaclient.adm file, but we’ll see if they make it into a future release.  If anybody has any more client side tips, please let me know in the comments and I’ll add them to the table.

Description Key Value Name Value
Automatically repair clipboard chain
CTX112434
HKEY_LOCAL_MACHINE\SOFTWARE \Citrix\ICA Client\Engine\Configuration\Advanced \Modules\WFClient
CbChainInterval
<value> 0-2000 valid
Prevent long logon script time breaking session sharing

CTX114379

HKEY_LOCAL_MACHINE\SOFTWARE \Citrix\ICA Client\Engine\Configuration\Advanced \Modules\WFClient\
ucConnTimeout
<string value> needs to be >20
Log the Launch.ica file to a Client Local File
CTX115304
HKEY_LOCAL_MACHINE\SOFTWARE \Citrix\ICA Client\Engine\Configuration\Advanced \Modules\Logging
LogFile=<path to file to log to that you want, use following format C:\ica\ica.log>
LogICAFile=true
Disable selected virtual channels from the client side
CTX116890
HKEY_LOCAL_MACHINE\SOFTWARE \Citrix\ICA Client\Engine\Configuration\Advanced \Modules\ICA 3.0
Remove relevant value
Revert to 9.x printing behaviour for a specific driver
CTX115553
HKEY_LOCAL_MACHINE\Software \Citrix\ICA Client
ReprocessEMFDriverList
<driver name>
Allow more than 20 client files open from a client mapped drive

CTX117315

HKEY_LOCAL_MACHINE\ SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced \Modules\ClientDrive
MaxOpenContext
<value> eg 50
Prevent a seamless window from permanently hiding a minimized taskbar

CTX821811

HKEY_LOCAL_MACHINE\ SOFTWARE\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Seamless Windows
TWIShrinkWorkArea
Value: 5
Allow Custom Virtual Channels in ICA after upgrading from an earlier client

CTX113279

HKEY_LOCAL_MACHINE\ SOFTWARE\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Third Party\CustomVC
VirtualChannels “”
How to use print screen in ICA sessions

CTX113344

HKEY_LOCAL_MACHINE\ SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced \Modules\WFClient
ICAPrntScrnKey
<value> eg F12
Make a seamless window the focus as soon as it activates

CTX112499

HKEY_LOCAL_MACHINE\ Software\Citrix\ICA Client\Engine\Configuration\Advanced \Modules\WFClient
TWISeamlessFlag
1

Lastly, although this is not strictly a client side change, if you are accessing a XenApp Server on Windows 2008 with a client version less than 11.0 you will need to install KB949914 on the server to stop your clients crashing.

Where’s my MSI?

Posted by Jim Moyle on June 18th, 2009
When implementing a new VDI or terminal server project, the biggest stumbling block is not usually the solution framework, be that VMware, Microsoft or Citrix.  It’s the applications.
It’s those odd one or two apps that have either been created in house, are cheap bespoke applications or an app so old that it’s ceased being developed and is now out of support.
If the application is old and out of support I can’t blame the vendors, it’s the customer who should never have gotten themselves into that situation.  It’s the other two situations that need to be looked at.

Small application vendors need to raise their game, it’s no longer good enough to code an application, check it works on your local copy of XP or Vista and sell it to the customer.  Terminal services has been around fifteen years, and Application Virtualisation five years, these are no longer new technologies.  If I phone up a vendor and ask them what’s the correct way to install their application on terminal services or App-V, I don’t want to hear ’sorry that isn’t supported’.

In the past, I’ve had an application vendor hand me a ten sheet document with installation instructions for their app on TS, it went like this:
Create user X,
Assign Y and Z rights to User X
Install weird application service
Add User X to application service
Find Reg key HKLMSoftwareVendorxxxxxxxxxxxxxxxxxx-xxx-xxxxxxxxxxxxx and create DWORD value zzz IMPORTANT! see note
Once all these steps are finished, run the application and click the buttons m through p
Once done install the plug-in as normal.
note:
If you cannot find the regkey DO NOT install weird application service, create ODBC connection as shown on page 9

etc.

In my opinion the customer should have refused to accept this and asked the vendor to finish the application.
The reason that I want vendors to provide MSIs is that they have several advantages over other methods of installation:

  • Database driven instead of script driven
  • The application is installed in an administrative context
  • MSI provides a standard package format
  • Transactional install and rollback
  • Customisation via MST files
  • Many tools available

The tools part is starting to get really interesting, Apptitude have released their App-DNA product, which will test whether your app is suitable for Citrix, App-V, Windows 7, x64 and more.  If you have an MSI, it only needs to look at the MSI tables, you don’t even have to install the application to get the report.

Acresso, the folks who make Admin Studio, have developed a new feature which allows direct conversion from an MSI to an App-V, Citrix Streaming or VMware ThinApp package.

Both the above technologies can drastically reduce the time taken to implement new application delivery methods.  To best take advantage of both tools you need applications provided in an MSI format.

The main reason that I have found applications not being delivered in the correct format is that organisations have not realised that it is vital that the IT department of any organisation is involved in the decision making process when it comes to purchasing new applications, at the very least they need to set the minimum standards required:

  • The application should be provided in an MSI format
  • The vendor must suport multi user OS deployment
  • The vendor must support application virtualisation/streaming

If you are an application vendor and it’s ‘too much effort’ to support the above minimum standards, I would suggest you are cutting yourself off from a large and growing sector of the market.

If you develop applications in-house or are purchasing a bespoke product, there is no reason why standards should slip, apply the same set of rules to these as you would to an off the shelf product.  A bit more development time, is going to save you a whole lot of heartache in the future.

Citrix Streaming vs Application Installation best practice

Posted by Jim Moyle on June 3rd, 2009

Citrix say that best practice is to always stream your applications and only to install them as a last resort, I think there are at least a few occasions where the right thing to do isn’t to stream first and I thought I’d have a go at looking at those situations.

Last week I watched a webinar by Daniel Feller who is the “Server, desktop and application virtualization senior architect from Citrix” and he went into why it might be a good idea to stream all your apps.  He did say that since it normally wasn’t possible to stream all apps, mixed mode environments were what you would expect, with some streamed and some installed applications.

If you want to watch the webinar its recorded here TechTalk: Fact vs. Fiction: The Truth about App Compatibility & Citrix.

I like to keep things as simple as possible and anticipating using two technologies to put apps onto a Citrix server seems the wrong way to me, I’d much rather just use one.

As streaming can’t cope with drivers, services or apps that license based on MAC address you are likely to get at least a few that are not suitable for streaming.

Installing has a much higher hit rate than Streaming, most of the issues around multi user apps have now been solved including DLL Hell.

If you can get all your apps installed and working, why would you employ streaming?  This doesn’t mean I’m in favour of application silos, I mean if you can get all of your apps installed on the same server.  The apps will tend to work as they should as they are installed ‘naturally’.  Of course you should then package them for distribution, but that’s a whole other post.
Daniel put up the following slide near the end of his presentation:

I’d say your first impulse should be to install your apps, if you think you can get them all without any silos.  So columns one and two should be reversed.

If you need help getting your apps to work, have a look at this application validation toolkit

When installing applications you need a reliable way to build and re-build servers, re-install and update apps, while it is possible to script, a more reliable method should be used. You could use a generic server build tools or there are more specialist advanced building tools available from Citrix partners.

On a separate note, if you are interested in VDI or Terminal server solutions you could do a lot worse than look at Terminal Server and XenApp tuning tips recently published by Pierre Marmignon


Copyright © 2007 JimMoyle.com. All rights reserved.