Understanding ICA File Contents
The Citrix XenApp Server usually provides a web interface for the published application(s) it hosts. Selection of a particular application icon from inside the web browser results in the downloading and caching of the ICA file. Then, the Citrix client is invoked using the settings defined in the ICA file.
You can create or modify an existing ICA file for use with Citrix Virtual Users, but it must conform to the file format described here. Below is an example of an ICA file describing fictitious connection settings for a Microsoft PowerPoint application hosted on a Citrix platform.
Depending on how the administrator has configured the XenApp Server environment, the ICA file will contain one or more entries without values in the [ApplicationServers]
block. For the example below, there is only a single entry for the application Microsoft PowerPoint. Each entry in the [ApplicationServers]
block will have its own block containing the application settings.
[ApplicationServers]
Application1=
Application2=
[Application1]
...
[Application2]
...
Testing the ICA file
If your operating system is configured with a file association to launch .ica
files with Citrix Workspace, then double-clicking the ICA file will automatically attempt to connect to the application. This can provide a quick way of testing that your ICA file is valid before using it with Citrix Virtual Users.
Citrix Workspace is the most common Citrix client, but not the only one. Citrix Virtual Users also act as Citrix clients and can use an ICA file to connect to a Citrix server.
If the ICA file you are using contains the key RemoveICAFile
and this is set to yes
, then launching the Citrix client will result in the file being deleted from the file system after the Citrix session ends. To prevent the file being deleted, either comment out the RemoveICAFile
line or set the value to no
.
# RemoveICAFile=yes
or
RemoveICAFile=no
Lines beginning with a hash #
character are treated as comments and ignored by the Citrix client.
Modifying ICA properties in a virtual user script
The ICA properties can be set from within a Citrix Virtual User script using the method:
SetIcaProperty(string property, string value);
For example:
SetIcaProperty("FontSmoothingType", "1");
Example ICA file
Each line in the file is explained below.
[Encoding]
InputEncoding=UTF8
[WFClient]
RemoveICAFile=yes
TcpBrowserAddress=91.208.99.13
TransparentKeyPassthrough=Local
TransportReconnectEnabled=On
Version=2
[ApplicationServers]
Microsoft PowerPoint=
[Microsoft PowerPoint]
Address=91.208.99.13:1494
AutologonAllowed=ON
BrowserProtocol=HTTPonTCP
ClearPassword=w0rdhash#
ClientAudio=On
DesiredColor=8
DesiredHRES=1024
DesiredVRES=768
Domain=TESTTEAM
EncryptionLevelSession=EncRC5-128
FontSmoothingType=0
FontSmoothingTypePref=1
InitialProgram=#PowerPoint
Password=
ScreenPercent=100
SSLCiphers=all
SSLEnable=Off
SSLProxyHost=\*:443
TransportDriver=TCP/IP
UILocale=en
Username=ptestuser
WinStationDriver=ICA 3.0
[Compress]
DriverNameWin32=pdcompn.dll
Example ICA file explained
[Encoding]
This block defines the character encoding type of the ICA file.
InputEncoding=UTF8
Describes the character encoding type of the ICA file. This information is used by the Citrix client to convert and understand the ICA file data should the Metaframe web server use a different encoding type to that of the the Citrix client.
[WFClient]
This block defines the WinFrame Client.
RemoveICAFile=yes
Specifies whether or not the ICA file should be deleted after the Citrix session has finished.
Setting the value to no
may be useful whilst developing the Citrix script so the client can be launched quickly (by double clicking the ICA file) without the file being deleted when the Citrix session has ended.
TcpBrowserAddress=91.208.99.13
The IP address of the Citrix server.
If the Address
field is not present.
TransparentKeyPassthrough=Local
Determines how the mapping of certain Windows key combinations are used during the Citrix session.
TransportReconnectEnabled=On
Specifies whether Auto Client Reconnect is enabled or not.
Version=2
Specifies the WinFrame Client version number.
[ApplicationServers]
This block defines each application hosted on Citrix to which you have been granted access.
Microsoft PowerPoint=
The first application in the block. The names of each application are defined by the Administrator. These fields do not have values.
[Microsoft PowerPoint]
This block defines the first application in the [ApplicationServers]
list. The ICA file will always contain one or more application blocks which map to each application in the list.
Address=91.208.99.13:1494
The address of the remote Citrix server. For TCP/IP connections this can be the DNS name or IP address of the Citrix server, or in some cases the name of a published application. For IPX, SPX, and NetBIOS connections it can be the name of a Citrix server or the name of the published application.
The port is sometimes included with the address of the Citrix server but this is not mandatory.
AutologonAllowed=ON
Specifies whether or not auto-logon is allowed for Secure ICA clients. If this field is set to OFF
the user will need to enter their username, domain and password every time a connection attempt with the Citrix server is made.
BrowserProtocol=HTTPonTCP
Specifies the network protocol used for ICA browsing. This defaults to UDP
although when connecting from the internet this would almost certainly be set to HTTPonTCP
by the administrator.
ClearPassword=w0rdhash#
Specifies the clear text (unencrypted) password for the user account. This is an optional field.
To use a clear text password, the Password
field must be unset, i.e.
Password=
ClientAudio=On
Specifies whether or not client audio mapping should be enabled.
DesiredColor=8
Integer field specifying the preferred color palette depth for a session:
1
= 16 color2
= 256 color4
= high color8
= true color (32-bit)
DesiredHRES=1024
Specifies the horizontal window size in pixels.
If the ScreenPercent
field is not present - ScreenPercent
will take precedence if it is.
DesiredVRES=768
Specifies the vertical window size in pixels.
If the ScreenPercent
field is not present - ScreenPercent
will take precedence if it is.
Domain=TESTTEAM
Specifies the domain to log on to.
EncryptionLevelSession=EncRC5-128
Specifies the encryption level to be used for the Citrix connection:
EncRC5-40
EncRC5-56
EncRC5-128
FontSmoothingType=0
Recommended setting is 1
(turn off font smoothing).
An integer field specifying the font smoothing type for the session. The value is only set after connection once the session has been established. The local Windows ClearType setting must be on for FontSmoothing
to be enabled.
FontSmoothing/Cleartype tends to make image matching of text less reliable due to the different ways terminals can render the ClearType text.
FontSmoothingTypePref=1
Recommended setting is 1
(turn off font smoothing).
Used as a default if FontSmoothingType
is set to zero.
InitialProgram=#PowerPoint
Specifies the name and/or path of the published application to be automatically launched when the connection is established. This may or may not include command line parameters.
If the name of the published application is already specified in the Address
field, then the name of the published application must be prefixed with a hash character (#
). Here the published application name must be entered exactly as it appears in the Address
field (case sensitive).
Password=
Specifies the password for the user account. This is an optional field. The password, if used, must be encrypted.
To enter an encrypted password into the ICA file, use the Citrix ICA Client Remote Application Manager's New Entry wizard to create a remote application entry. When you are prompted for the username and password, enter the password that you want to use in the ICA file.
- Finish the New Entry wizard.
- Open the file
APPSRV.INI
in the Windows directory and locate the entry you just created. - Copy the encrypted password value and paste it into the ICA file.
ScreenPercent=100
Specifies the size of the window as a percentage of the client desktop size. Takes precedence over DesiredHRES
/VRES
fields and is available only when lauching the Citrix session from the Citrix Web Client.
SSLCiphers=all
Used when the platform supports multiple SSL cipher suites. This parameter determines which cipher suite(s) the client is permitted to use to establish a succesful SSL connection.
SSLEnable=Off
Specifies whether or not SSL is enabled.
SSLProxyHost=\*:443
Specifies the server name value. By default, this parameter is not present, or, if it is present, the value is set to \*:443
.
TransportDriver=TCP/IP
The data transport type. Usually TCP/IP
, but can also be IPX
, SPX
, or NetBIOS
.
UILocale=en
The language of the WinFrame user interface on the Citrix Client PC.
Username=ptestuser
Specifies the name of the user account used as part of the logon credentials.
WinStationDriver=ICA 3.0
Defines the version of the ICA presentation/XenApp server protocol.
[Compress]
This block defines the compression driver to use.
DriverNameWin32=pdcompn.dll
Specifies the name of the Win32 driver file to load for the specified driver. The pdcompn
library is the compression driver - it is in the [Compress]
block.
For details on other ICA file keys, see the Citrix ICA settings reference.