One of the drawbacks to using MetaFrame XP in large environments is that the Citrix ICA client software must be installed and configured on every single client device that accesses your applications. This can cause problems whenever Citrix releases new versions of their client software, because you will need to find a way to update the software on all of your client devices.
Fortunately, MetaFrame XP supports ICA client auto update, which allows you to keep the ICA client software on your workstations up-to-date automatically. To use this, copy the new ICA clients to a MetaFrame XP server. Then, as users launch ICA sessions, their local ICA client software is updated automatically with the new client software from the server.
Advantages of Using Client Auto Update
- Easy way to keep client devices up to date.
- Works with many ICA platforms.
- Automatically restores the old client version if update problems occur.
- Automatically detects old clients.
- Clients are updated with no end user intervention.
Disadvantages of Using Client Auto Update
- "All or nothing" approach.
- Client auto update only updates clients. It cannot be used to install new clients.
How ICA Client Auto Update Works
In order to use ICA client auto update, configure a database containing all of the ICA client installation files and their associated update settings. Then, whenever a user launches an ICA session on a MetaFrame XP server that has client auto update enabled, the server queries the user's ICA client software to determine its version number and operating system platform.
The MetaFrame XP server then checks the user's ICA client version information against the database of available ICA clients and platforms. If the client version is the same as an entry in the database, the user's logon. However, if the server finds that it has a newer version of the ICA client software, the ICA client auto update process begins.
The exact steps that take place to update the user's ICA client software depend on how you configure the client auto update options in the database. These options include whether the user is notified, whether the update is mandatory, and whether the user is able to continue with their ICA session while the new client software is downloaded in the background.
Once it is determined that new ICA client software should be deployed to the user, the request is forwarded to the client update database. Each MetaFrame XP server can have its own copy of this database, or, multiple servers can share the same database located on a network share, depending on your configuration.
The new ICA client software is downloaded from the client update database over the existing ICA protocol connection. This means that ICA client auto update works over any protocol and any connection type.
Once the download is completed, an updater program is launched that updates the user's old ICA client software to the new client software. Just in case there are any problems with the update, the old ICA client files are retained on the client device in a folder called "\backup" under the root of the ICA client folder.
Configuring ICA Client Auto Update
Configuring ICA client auto update in your MetaFrame XP environment is fairly straightforward. As we discussed in the previous section, the client update options are configured as part of the client update database itself. There are only a few steps that you need to take to begin using ICA client auto update:
- Configure the MetaFrame XP server to use a client auto update database.
- Unpack and prepare your ICA client source installation files for the database.
- Add the ICA client source installation files to the database.
- Configure the database options for your ICA client installation.
Let's take a look at each of these steps in depth.
Step 1. Configure your MetaFrame XP Servers
In order to use ICA client auto update features, you need to have at least one ICA client auto update database in your server farm. All ICA client auto update functionality is configured with the "ICA Client Update Configuration" utility on your MetaFrame XP server (Start | Programs | Citrix | MetaFrame XP | ICA Client Update Configuration). This utility allows you to configure the ICA client database, add new clients to the database, and configure the various client auto update options.
When you installed MetaFrame XP, you were given the option of installing an ICA client auto update database. If you chose to install this option, the client database was installed locally on the server in the %systemroot%\ica \clientdb\ folder.
If you chose not to install the client update database when you installed MetaFrame XP, or if you want to create a new client update database that is located in a central network location, then you can do that with the ICA Client Update Configuration utility.
If you create a new client update database (Database | New) that you want to use as the default for the current MetaFrame XP server, you need to set the new database as the "default" client update database (Database | Set Default... | Set as Default Database on Local Machine checkbox).
If you have already created a new client update database and you just want to configure the current MetaFrame XP server to use this database instead of its local default client update database, then you can use the ICA Client Update Configuration utility on that server to open the database (Database | Open | Browse to existing client update database) and then set it as the server's default. Using this method, you can configure multiple servers to point to one update database. This is nice in larger environments because you only need to maintain and configure one copy of the database.
If you have a lot of MetaFrame XP servers that you want to point to the same client update database, you can easily configure them by double clicking the domain name and selecting the servers that you want to set, holding down the CTRL key to select multiple servers (Database | Set Default...).
Once you configure your MetaFrame XP servers to point to their respective client update databases (whether they share databases or each use their own), you can begin updating the properties and contents or the databases themselves.
Step 2. Unpack and Prepare the ICA Client Installation Files
To begin using the ICA client auto update database you need to add ICA client software to that database. Unfortunately, the client update database requires that the ICA client installation files be in their native format. As you recall from previous sections, all of the ICA client installation programs from Citrix come packaged into single file installs. You must first unpack all of the source files from the ICA client package. The exact procedure for doing this was outlined in the previous sections of this chapter.
Step 3. Add the ICA Client Files to the Database
Once your ICA client source installation files have been unpacked, add them to the client update database. To do this, use the ICA Client Update Configuration utility (Client | New) to browse to the update.ini file in the ICA client's installation files. This .INI file contains the settings and information for that ICA client that is needed for the client update database.
By using this update.ini file, you save time when you add new ICA clients to the client update database, because many of the "New ICA Client" wizard's questions are prepopulated with answers based on information contained in the update.ini file.
Let's look at a sample update.ini file. This sample is from the 32-bit Windows ICA client, version 6.30.1050.
ClientDescription=Citrix ICA Win32 Client
UpdateDescription=Citrix ICA Client Version 6.30
Figure 10.11: A sample update.ini file
As you can see, all of the information and instructions for adding new ICA clients to the client update database are contained in this sample update.ini file. You can add as many different ICA clients to the database as you want. In fact, you can even add multiple copies of the same ICA client for the same platform to a single database. If you do this, you can only have one ICA client for each platform "enabled" at a time (see the next section for a description of this). However, by having multiple instances of the same ICA client in a single client update database, you have the flexibility to quickly enable and disable different ICA clients with different options.
If you ever want to remove an old ICA client from the client update database, you can also do this with the ICA Client Update Configuration utility. (Client | Delete)
Step 4. Configure the Database Options
Once you have the ICA client installation source files added to the client update database, you need to configure the options that will be used when users' ICA clients are updated. There are two places that you can configure client update options, depending on what you want the options to affect. If you want to configure global options that apply to all clients in the client update database, then you need to configure the options via the Database | Properties menu in the ICA Client Update Configuration utility. If you want to configure options that only apply to one specific ICA client within the database, then you need to highlight that client and choose Client | Properties. In case of conflict, options configured at the individual client level will always take precedence over those default options specified at the global database level.
Let's take a look at the client update options that are available.
Enabling and Disabling Clients
When editing the properties of the client update database, you can specify whether that database is enabled or disabled. Disabling a database is a simple way to disable ICA client auto update functionality. In the real world, many people disable the entire database after all the users' ICA clients have been updated.
You can also disable individual ICA clients within the database by editing the properties of the client itself. If you have multiple copies of the same client in a single database, you will only be able to have a single copy enabled at a time.
Client Download Mode
The client download mode options allow you to specify the level of input that a user has when a new ICA client needs to be downloaded.
- Ask user. This setting informs the user that a newer ICA client is available and asks them if they would like to download it or if they would like to do it at a later time. This setting is not recommended because many users will always choose the "later" option, causing them to never receive the new ICA client software.
- Notify User. The notify user setting informs the user that a newer version of the ICA client software is available and it immediately begins downloading the software from the client update database to the user's client device, whether the user likes it or not.
- Transparent. This setting causes the new ICA client software to be downloaded to the user's client device without their knowledge. No indication whatsoever is provided to the user.
The version checking option allows you to specify the conditions when the new ICA client software will be installed onto the client device.
- Update older client versions only. As its name implies, with this setting, the auto update process will only be invoked if the user's ICA client software is older than the version of the software in the client update database. This is the setting that most people use in the real world.
- Update any client version. This setting will cause the ICA client software to update any version. This will essentially cause the software to be updated every time the user connects. Normally, this option is used only if you have deployed a new version of the ICA client software that caused trouble and need to force the update client update to install an older version of the ICA software on top of the newer version.
The update mode options allow you to specify how the ICA client software interacts with the user's current ICA session.
- Force Disconnection. When this is enabled, users are required to disconnect and complete the update as soon as the new ICA client download is complete. Otherwise, users have the option of disconnecting, but they are not forced to.
- Allow background download. As long as this is enabled, users will be able to use their ICA applications while the new ICA client is downloading. If you uncheck this box, your users will have to sit and do nothing while they wait for the ICA client to download.
In the real world, the "force disconnection option" is only enabled and the allow "background download" is only disabled if there is some kind of problem with the users' current ICA client that requires a new client before the users can continue. These cases are rare, and the default settings can usually be used.
Log Download Clients
If you choose to log the downloaded ICA clients, an event log item will be created for every client that is updated. This can be annoying, but is a nice feature to have for troubleshooting purposes.
Logs Errors during Download
This option only logs the errors that occur during ICA client downloads. This log item is enabled by default, and it is a good idea to keep it enabled. It will only fill the event log if you have problems, and if you have enough problems to fill the event log, then you definitely want to know what's going on.
Maximum Number of Simultaneous Updates
You can specify a maximum number of concurrent client updates that can occur per MetaFrame XP server. Technically, this setting defines the number of concurrent downloads. If this number is reached, new users can log on but they will not receive an updated version of the ICA client.
This is useful in large environments where many users log on at the same time. It prevents your ICA client database network shares from becoming overloaded with users downloading the client.