The Citrix ICA file explained and demystified

Written by Ingmar Verheij on July 25th, 2012. Posted in Citrix, Demystified, XenApp (Presentation Server), XenDesktop

The Citrix Receiver (XenApp plugin / Online plugin / ICA Client / WinFrame client) has a file association with the .ICA extension. This means that each time you open a file with the .ICA extension the Citrix Receiver is launched to interpret the file (and act upon the content of the file).

In this article I’ll explain how the .ICA file is constructed, what sections and properties are commonly used and how you can create the file.


ICA – Independent Computing Architecture

Client-Server model by GartnerTo start at the beginning, ICA stands for Independent Computing Architecture. It is a protocol used in Citrix XenApp / XenDesktop (or previously Presentation Server, MetaFrame, WinFrame) to separate the application logic (which runs on a remote system, usually in a datacenter) and the presentation (on the client).

In a nutshell what this protocols does is sending input from the client (like keyboard, mouse, audio, etc.) to the remote system and receive the output (like video, sound, etc.) from the remote system via the network. On the client (a workstation, laptop or thin client) a piece of software is used to handle this traffic. At the moment of this writing the Citrix Receiver is used.

Files with the extension .ICA contain information required  to connect to the remote system, including session properties and (optionally) authentication.

 

.ICA File

File Type Association (FTA)

Files with an .ICA extension are associated with a Citrix ICA client. This is done via a File Type Association (or FTA).

HKEY_CLASSES_ROOT\.icaIn the registry hive HKEY_CLASSES_ROOT a key with the name .ica specifies the name of the file type and the content type.

  • Name: Citrix.ICAClient.2.7
  • ContentType: application/x-ica

HKEY_CLASSES_ROOT\Citrix.ICA.Client.2.7The name is correlated to the key HKEY_CLASSES_ROOT\<key name> and describes how the file is handled, what icon to show, what items should be visible in context menu etc.

In the shell\open\command key the default value shows what executable to run when a file with the .ICA file extension is launched. In my case:

 

 

Basic structure

.ICA files are stored in plain text with ISO/IEC 8859 encoding (except for older ‘legacy’ clients) so they can easily be viewed and edited in a basic text editor. The content is stored in the INI file format with a basic structure composed of “sections” and “properties”.

Properties are stored in separate sections, recognizable by the square brackets [ and ]. In a basic ICA file the following three sections are present:

Each section has properties (or settings) assigned, some of there are mandatory but most are optional. In the next sections I’ll explain the most common settings and the not-so-common settings that are available.

 

Properties per section

Each section contains a list of properties (or settings) that can be set. I’ll describe the most common settings per section, a larger (not complete) list of properties can be found in the ICA Settings Reference on Citrix eDocs.

 

[Encoding] (Optional)

This section contains setting(s) that describe how the file is encoded.

Example

In the example the .ICA file is stored in the default encoding, ISO8859_1.

Settings
  • InputEncoding
    • Description: Describes the character encoding type of the .ica file. This information is used by the client to convert and understand the .ica file if the Web server that created it used an encoding type that is different from that of the the client.
    • Possible values:
      Value Description
      ISO8859_1 ISO/IEC 8859 is a joint ISO and IEC series of standards for 8-bit character encodings (Default, according to Citrix eDocs)
      SJIS Shift_JIS is a character encoding for the Japanese language
      EUC-JP Extended Unix Code (EUC) is a multibyte character encoding system used primarily for Japanese, Korean, and simplified Chinese.
      UTF8 UCS Transformation Format – 8 bit is a variable-width encoding that can represent every character in the Unicode character set (Default for WebInterface launch.ica)


[WFClient]

In this section the client is configured. WFClient stands for WinFrame client, so it goes way back Knipogende emoticon

Example

In the example a server with the name server01.domain.local is contacted on port 80 to supply details about the server or published application / desktop that is supplied in the [ApplicationServers] section. During the connection the Desktop Viewer is used and a Connection Bar is shown. After the connection is broken the .ICA file is removed.

Settings
  • AlwaysSendPrintScreen
    • Description: Enables or disable using the Print Screen key on the keyboard while the ICA session is running with seamless application.
    • Possible values:
      Value Description
      On Print Screen key can be used
      Off Print Screen key cannot be used (Default)

  • CDMAllowed
    • Description: Specifies whether Client Drive Mapping (CDM) is allowed or not.
    • Possible values:
      Value Description
      True Allow Client Drive Mapping (Default)
      False Disallow Client Drive Mapping

  • ConnectionBar
    • Description: Enables or disable the use Desktop Toolbar (and the Desktop viewer) for all connections in the .ICA file. More details can be found here.
    • Possible values:
      Value Description
      0 The ICA Client (wfcrun32.exe) is used instead of the Desktop viewer (cdviewer.exe) (Default)
      1 The desktop viewer (cdviewer.exe) is used instead of the ICA client (wfcrun32.exe).

  • EnableSSOnThruICAFile
    • Description: Specifies whether or not to use the same user name and password the user used to log on to the client device for authentication through .ica files. For security reasons, users cannot be authenticated to the server unless this parameter is present and its value set to On, even if UseLocalUserAndPassword and SSOnUserSetting are specified in the .ica file.
    • Possible values:
      Value Description
      On / True / 1 / Yes Use same username and password
      Off / False / 0 / No Do not use same username and password (Default)

  • HttpBrowserAddress
    • Description: Specifies the location of the browser server (usually the data collector since it holds the most accurate information of the farm).
    • Possible values:
      Value Description
      <FQDN>:<port> The Fully Qualified Domain Name (for instance server01.domain.local) of the browser server followed by a colon and the port where the XML service is located (default port is 80)
      <IP>:<port> The IP address of the browser server followed by a colon and the port where the XML service is located (default port is 80)

  • RemoveICAFile
    • Description: Specifies whether or not the ICA file should be deleted after the session is finished. The setting is set either by Off, False, no or 0 (or the opposite value)
    • Possible values:
      Value Description
      Off  /  False  /  no  /  0 Does not remove ICA file (Default)
      On  /  True  /  yes  /  1 Removes ICA file
  • Version
    • Description: The version of the ICA file structure.
    • Possible values:
      Value Description
      2 Version two of the ICA file structure. No other version is known? (Default)
 

 

[ApplicationServers]

Contains one (or more) connections that are stored in the file. The “more” connections is a legacy option used in the Program Neighborhood that has been removed in version 11.1 – CTX121727 (june 2009), the connections where stored in the appsrv.ini which had the same structure as the ICA file.

Example

In the example a connection with the name Desktop is present. When the .ICA file is executed by the client software, the properties are read in [Desktop].

Settings
  • %ConnectionName%

    • Description: The name of the connection, the properties of this connection are located in the section with the name name (%ConnectionName%). Depending on the version of the client this name is (shortly) visible for the user during the connection phase.
    • Possible values: None
 

 

[%ConnectionName%]

The section has the name of the connection that is supplied in the ApplicationServers ‘list’. In this section the properties are set for the connection. This is the most extensive list and therefore segregated in separate areas.

Example

In the example the settings for the connection Desktop are supplied. A seamless connection will be made to the published application Desktop with a connection bar (and the Desktop Viewer) visible. Both Session Reliability as Client audio are enabled. The connection is made with compression and encryption enabled whose details are specified in section [Compress] and [Encrypt].

Settings – General

This area describes the general properties of the connection.

  • Address

    • Description: Specifies where the Citrix client should connect to
    • Possible values: 
      • Connect directly to server: The FQDN of the Citrix XenApp / XenDesktop server
      • Connect to published application / desktop : The name of the published application / desktop
      • Connect via WebInterface / CloudGateway: A semicolon (;) separated string containing the application / desktop to connect to, the secure ticket authority (STA) and the secure ticket (or token). The user can click an application / desktop and will effectively download a launch.ica which will be processed by the Citrix client (receiver).
  • CGPAddress
    • Description: Enables or disables Session Reliability
    • Possible values:
      Value Description
      *:2598 Session Reliabilty is used (connection is made on port 2598)
      (empty) Session Reliability is not used (connecion is made on port 1494)
  • Compress
    • Description: Specifies whether the ICA traffic needs to be compressed before its transported.
    • Possible values:
      Value Description
      On ICA traffic is send compressed. The driver used to compress is specified in section [Compress]
      Off ICA traffic in send uncompressed

  • InitialProgram
    • Description: Specifies what application to launch
    • Possible values:
      • Connect directly to server: The location to the executable to launch. If the value is empty the default shell is loaded.
      • Connect to published application / desktop : A hash-sign (#) followed by the name of the published application / desktop
  • Launcher 
    • Description: Specifies the name of launch mechanism (that is, the client launcher name). This parameter is used to launch multiple ICA windows from the startup folder at logon time.
    • Possible values:
      Value Description
      ICA Client Launched using the ICA client (default)
      WI Launched through the Web Interface
      PN Launched through the Program Neighborhood client (deprecated)
      PNAgent Launched through the Program Neighborhood agent
      MSAM Launched through the Metaframe Secure Access Manager
      Custom Launched through a custom client
  • LaunchReference 
    • Description: Reference token for a specific session on a Citrix XenApp server. This enables the Citrix SmoothRoaming feature, it directs the user to the same server as it has an existing session.
    • Possible values:  Reference token for a specific session on a server (generated by the WebInterface).
  • LogonTicket 
    • Description: Specifies client authentication token for web interface. The client handles an authentication token in the form of an opaque LogonTicket with an associated interpretation defined by the LogonTicketType. This functionality can be disabled by clearing the Web Interface 4.5 and above check box.
    • Possible values: A token in the form of a serialized string provided by the WebInterface
  • LogonTicketType 
    • Description: Specifies the logon ticket type for "Web interface authentication ticket". Use this policy to control the ticketing infrastructure used when authenticating through the Web Interface. The client handles an authentication token in the form of an opaque LogonTicket with an associated interpretation defined by the LogonTicketType. Citrix STA versions are described in CTX108302.
    • Possible values:
      Value Description
      0 No ticket (default)
      1 Secure Ticket Authority (STA) version 1 ticket
      2 Secure Ticket Authority (STA) version 4 ticket
      CTXS1 Secure Ticket Authority (STA) version 4 ticket (?)
  • PersistentCacheEnabled
    • Description: This parameter specifies whether or not to use the persistent disk cache. The persistent disk cache stores commonly used graphical objects such as bitmaps on the client device’s hard disk.
    • Possible values:
      Value Description
      On The persistent cache is enabled
      Off The persistent cache is disabled (Default)

  • SessionSharingKey 
    • Description: Specifies the session sharing key. The sharing key is a combination of all attributes that allows you to reuse an existing session: colors, encryption, audio, credentials and farm. If any of these attributes are different (not 100% identical), a new session is created. For more information read the article of Thomas Koetzing about this topic.
    • Possible values:
      • Web Interface 4.6 and before : colors – encrypt – audio – domain – user  farm
      • Above Web Interface 4.6: A serialized string containing the same information
  • SSLEnable
    • Description: Specifies whether or not SSL is enabled. When SSL is enabled all ICA traffic (1494 or 2598) is tunneled via a secure socket layer (SSL) tunnel via port 443 (by default).
    • Possible values:
      Value Description
      On ICA traffic is tunneled via SSL
      Off ICA traffic is not tunneled via SSL (Default)
  • SSLProxyHost
    • Description: Specifies the hostname of the SSL proxy when SSLEnable is set to ‘On’.  This value is not present when traffic is not tunneled via SSL. The name on the certificate has to match the hostname (FQDN).
    • Possible values:
      Value Description
      *:443 It is assumed that all Citrix server in the farm have their own SSL relay, the SSL relay is the same as the Citrix server. (Default)
      <FQDN>:443 An explicit server is specified as the SSL relay server (for instance an Citrix Access Gateway).
  • TransportDriver
  • UseAlternateAddress
    • Description: This parameter is useful in performing Network Address Translation (NAT). If set to 1, it defines whether to use the alternate address for ICA connectivity across a firewall or a router.
    • Possible values:
      Value Description
      0 Do not use the alternate address for firewall connection option (Default)
      1 Use alternate address for firewall connection option.

  • WorkDirectory
    • Description: Specifies the working directory for the InitialProgram
    • Possible values:
      • Connect directly to server: The working directory of the program to execute (instead of the default shell)
      • Connect to published application / desktop : Not used
  • WinStationDriver
    • Description: Specifies what winstation driver to use, the driver where all ICA (including virtual channels) traffic flows through
    • Possible values:
      Value Description
      ICA 3.0 The only valid value is ICA 3.0. Previous versions where used before WinFrame (Windows NT 3.5). (Default)

 

Settings – Audio

This area describes the settings that relate to audio [HDX].

  • AudioBandwidthLimit
    • Description: Specifies the audio bandwidth limit and, by extension, the audio quality for the connection. Higher audio quality requires more bandwidth. 
    • Possible values:
      Value Description
      0 High quality (1.4 Mbps)
      1 Medium quality (64 Kbps) (Default)
      2 Low quality (4 Kpbs)
  • ClientAudio
    • Description: Specifies whether or not to enable client audio mapping.
    • Possible values:
      Value Description
      On Enables client audio mapping
      Off Disables client audio mapping (Default)
  • EnableAudioInput
    • Description: Enable access to audio capture devices. Use this policy to enable and restrict the remote application or desktop access to local audio capture devices (like microphones).
    • Possible values:
      Value Description
      True Allow the use of audio capture devices
      False Disallow the use of audio capture devices
  • EnableRtpAudio
    • Description: Enables or disables the real-time transport of audio over UDP.
    • Possible values:
      Value Description
      True Enables Rtp Audio (Default)
      False Disables Rtp Audio
  • SpeedScreenMMAAudioEnabled
    • Description: Specifies whether or not audio playback will occur through HDX MediaStream Multimedia Acceleration.
    • Possible values:
      Value Description
      True Audio playback will occur through HDX MediaStream Acceleration(Default)
      False Audio playback will not occur through HDX MediaStream Acceleration

 

Settings – Display

This area describes the settings that relate to display like color depth, resolution and video [HDX].

  • DesiredColor
    • Description: Specifies the preferred color depth for a session.
    • Possible values:
      Value Description
      1 16 colors (Default)
      2 256 colors
      4 High color (16 bpp)
      8 True color (24/32 bpp). This is 32bpp, unless the administrator explicitly prohibits a server from supporting a 32-bit session. In that case, the session is downgraded to 24bpp.
  • DesiredHRES
    • Description: This parameter defines the horizontal window size in pixels.
      • For Citrix Receiver and up : If TWIMode is set to Off / False, this parameter is used.
      • For older Citrix clients: If DesiredWinType is set to Custom, this parameter is used.
    • Possible values: The horizontal window size in pixels (Default : 640). If you set both DesiredHRES and DesiredVRES to 4294967295 the session will always launch in full screen (thanks Andrew Morgan).
  • DesiredVRES
    • Description: This parameter defines the vertical window size in pixels.
      • For Citrix Receiver and up : If TWIMode is set to Off / False, this parameter is used.
      • For older Citrix clients: If DesiredWinType is set to Custom, this parameter is used.
    • Possible values: The vertical window size in pixels (Default : 480.) If you set both DesiredHRES and DesiredVRES to 4294967295 the session will always launch in full screen (thanks Andrew Morgan).
  • DesiredWinType
    • Description: This parameter specifies the default desired window size for custom connections. This setting is ignored by the Citrix Receiver.
    • Possible values:
      Value Description
      1 640×480
      2 800×600
      3 1024×768
      4 1280×1024
      5 Custom size defined by DesiredHRES and DesiredVRES
      6 Percent
      7 Full Screen
      8 Seamless
  • SpeedScreenMMA   
    • Description: Specifies whether or not to enable the HDX MediaStream Multimedia Acceleration.
    • Possible values:
      Value Description
      On The remote video option allows the server to directly stream certain video data to the client (if the client has the appropriate codecs). (Default)
      Off The video is always rendered on the client.

  • TWIMode
    • Description: Specifies whether or not to use seamless mode for the connection.
    • Possible values:
      Value Description
      On / True Enables the seamless mode for the connection
      Off / False Disables the seamless mode for the connection (Default)

 
Settings – Security

This area describes the settings that relate to security.

  • ClearPassword
    • Description: The parameter specifies the password for the supplied credentials in clear text. This is less safe than the encrypted Password setting.
    • Possible values: A password.
  • EncryptionLevelSession
    • Description: Specifies the encryption level of the ICA connection (SecureICA). Since the Citrix Receiver a section with the corresponding name should be provided including the drivers.
    • Possible values:
      Value Description
      Basic Basic (Default)
      EncRC5-0 RC5 (128 bit – Logon Only)
      EncRC5-40 RC5 (40-bit)
      EncRC5-56 RC5 (56-bit)
      EncRC5-128 RC5 (128 bit)
      Encrypt Basic
  • Domain
    • Description: This parameter specifies the user domain for the supplied credentials.
    • Possible values: The name of the domain for the supplied credentials.
  • Password
    • Description: This parameter specifies the password for the supplied credentials. The password must be encrypted.
    • Possible values: An encrypted password. Remko Weijnen has written a tool to Encode (and decode) Citrix Passwords, you can find the tool here.
  • UseLocalUserAndPassword
    • Description: Specifies whether or not to use the same user name and password the user used to log on to the client computer for authentication to the Citrix server. SSOnUserSetting must be set to On.
    • Possible values:
      Value Description
      On Use pass-through authentication.
      Off Does not use pass-through authentication (Default)
  • Username
    • Description: This parameter specifies the username for the supplied credentials.
    • Possible values: The username for the supplied credentials.

 

[Compress]

Contains the name of the drivers use for compression as specified in the Compress setting in the %ConnectionName% section.

Example

In the example the default drivers used for compression are specified.

Settings
  • DriverName 
    • Description: This parameter specifies the name of the DOS driver file to load.
    • Possible values:
      Value Description
      PDCOMP.DLL The default driver file for used for compression (Default)
  • DriverNameWin16
    • Description: This parameter specifies the name of the Win16 driver file to load.
    • Possible values:
      Value Description
      PDCOMPW.DLL The default driver file for used for compression (Default)
  • DriverNameWin32 
    • Description: This parameter specifies the name of the Win32 driver file to load.
    • Possible values:
      Value Description
      PDCOMPN.DLL The default driver file for used for compression (Default)

 

[Encryption]

Contains the name of the drivers use for encryption (SecureICA) as specified in the EncryptionLevelSession setting in the %ConnectionName% section. The name of the section equals the value of the EncryptionLevelSession setting.

Example 1

In the first example the default drivers used for encryption (SecureICA) are specified.

Example 2

In the second example the drivers for each encryption level (SecureICA) are specified in a separate section.

Settings
  • DriverNameWin16
    • Description: This parameter specifies the name of the Win16 driver file to load.
    • Possible values:
      Value Description
      PDCRYPTN.DLL The default driver file used for used for encryption (Default)
      PDC0W.DLL The driver file used for RC5 (128 bit – Logon Only) encryption.
      PDC40W.DLL The driver file used for RC5 (40-bit) encryption.
      PDC56W.DLL The driver file used for RC5 (56-bit) encryption.
      PDC128W.DLL The driver file used for RC5 (128 bit) encryption.
  • DriverNameWin32
    • Description: This parameter specifies the name of the Win32 driver file to load.
    • Possible values:
      Value Description
      PDCRYPTW.DLL The default driver file used for used for encryption (Default)
      PDC0N.DLL The driver file used for RC5 (128 bit – Logon Only) encryption.
      PDC40N.DLL The driver file used for RC5 (40-bit) encryption.
      PDC56N.DLL The driver file used for RC5 (56-bit) encryption.
      PDC128N.DLL The driver file used for RC5 (128 bit) encryption.

 

 

When are .ICA files used?

.ICA files are used in many applications that allow you to connect to a Citrix XenApp / XenDesktop environment. Most common used are the Citrix Web Interface and the Citrix CloudGateway, but third party applications like Denamik LoadGen use .ICA files as well. Usually the use of .ICA files is temporarily and hidden for the end user, which is a good thing.

 

Web portal default configuration

When you launch a published application / desktop via the web portal supplied by Citrix (WebInterface,  StoreFront or VDI in a box) a default configuration is applied. You can alter the default configuration to meet your needs, if it isn’t available in the management console (most settings are not configurable via the management console). The default configuration is stored in a default.ica file.

The location of the default.ica depends on the platform you’re using and the name of the site.

Citrix Web Interface ManagementSince both WebInterface and StoreFront are integrated in Microsoft Internet Information Services (IIS) the configuration is stored in a directory in the %SystemRoot%\inetpub (default location). For each site a directory is created which you specified when you created the site.

Assuming you’ve used the default site name, these are the locations where the default configuration is stored:

Platform Version Type Location
Web Interface 5.x XenApp \inetpub\wwwroot\Citrix\XenApp\conf
  4.5 / 4.6 XenApp \inetpub\wwwroot\Citrix\AccessPlatform\conf
  4.0 XenApp \inetpub\wwwroot\Citrix\MetaFrame\conf
  All XenApp services / PNAgent \inetpub\wwwroot\Citrix\PNAgent\conf
StoreFront All All \inetpub\wwwroot\Citrix\Store\App_Data
VDI in a box All All /home/kvm/install/servlet_container/webapps/

dt/WEB-INF/etc/proto.ica (not default.ica!)

Thanks Andrew Morgan for locating the default configuration for Storefront services and VDI in a Box.


Change specific published application / desktop

If you want to change the setting / behavior  of a specific published application / desktop you need to add the published resource in the [ApplicationServers] section and add a [%ConnectionName%] section with the required settings.

It is important that the name of the connection (%ConnectionName%) is exactly as it is shown in the application set of the management console.

Example

 

 

How can I create an .ICA file?

Well, there are a number of options:

  1. Manual
  2. Citrix ICA File Creator – CTX113472
  3. Citrix Quick Launch – CTX122536

The first option, manual, is of course an option but it’s quite some work for an easy task. Keep in mind that the Citrix Receiver (or older clients) are rather restrictive with the information it returns. If there’s an (syntax) error in the ICA file… well, in most cases you need to sort that our yourself.

The second option, the Citrix ICA File Creator, is a less time consuming option than creating it manually but is a bit clunky. It works, but it’s not the best tool (and unsupported).

The third option is the Citrix Quick Launch tool ,which is also provided by Citrix (and unsupported, btw), and is built to offer some features of the deprecated Program Neighborhood (CTX121727). IMHO this is the best way of building ICA files Not only  because it offers the most features (it is recently updated) but also because you can connect and test the connection immediately!



PS: The Citrix Quick Launch works even on desktops with 125% DPI (default with a resolution of 1920×1080 on my laptop)! So kudos to the developers who where willing to build a version that supported 125% DPI (and James Denne – @JimmyLeroux – for contacting them).

 

Comments

Did I miss anything or do you have a suggestion? Let me know in the comments.

Ingmar Verheij

At the time Ingmar wrote this article he worked for PepperByte as a Senior Consultant (up to May 2014). His work consisted of designing, migrating and troubleshooting Microsoft and Citrix infrastructures. He was working with technologies like Microsoft RDS, user environment management and (performance) monitoring. Ingmar is User Group leader of the Dutch Citrix User Group (DuCUG). RES Software named Ingmar RES Software Valued Professional in 2014.

More Posts - Website

Follow Me:
TwitterLinkedInGoogle Plus

Tags: , , ,

Comments (49)

  • Gav
    20 August 2012 at 09:23 |

    Hi ingmar,
    Great article.
    Not sure when it was posted as it only lists the day and month at the top of article so not sure if you will respond to this…. 🙁

    Our users run a seamless full desktop session to our citrix server – but when they press the print screen key, or alt Print screen, nothing in the seamless desktop session is captured to the full desktop clipboard…..instead, if you press print screen then log off the citrix session then paste into paint.exe from the local client, it will paste a copy of what was on the seamless desktop at the time you pressed print screen…….so the print screen is capturing the correct data (i.e. what is happening in the citrix session) but it is storing it in the local PCs clipboard memory and not the clipboard that is avaliable to the citrix session. Can we make it so the citrix session can have access to the local clipboard memory or is there another way to get print screen functionality happening inside our citrix sessions? Issue at the moment is, when we press paste in side the citrix session after pressing print screen, nothing pastes into word/paint…..but log out of the citrix session and paste into paint/word on the local PC and our print screen appears.

    At the moment we are using PS4.5 and ICA client v10. We are using this reg key as a work around at the moment…it turns the f12 key into a print screen key and that is working for us.
    http://support.citrix.com/article/CTX113344/

    Thanks in advance and hopefully you can point me in the right direction.

    • Ingmar Verheij
      20 August 2012 at 12:57 |

      Hi Gav,

      Have you tried setting AlwaysSendPrintScreen=On in the [WFClient] section?
      Turns on or off the ” AlwaysSendPrintScreen” attrtibute in seamless application. By enabling the key, user can use the ” Print Screen” key on the keyboard while an ICA session is running with seamless application.

      Regards,
      Ingmar

      • Gav
        21 August 2012 at 01:04 |

        Hey Ingmar,
        I tried setting the “AlwaysSendPrintScreen” key with a new string value with the data value of “On” – that is in HKLM-software-citrix….WFClient. I restarted PNA and tried connecting to the seamless desktop again but the print screen key still was not pasting from the clipboard into the citrix session.
        Howerver it seems that the print screen key is working and being passed to the citrix session but the print screen image is being placed in the local computers clipboard….because when i minimise down to the local machine and paste into word…the print screen of the seamless session is shown. It seems that the print screen functionality is working….but the seamless session cannot get access to the local clipboard….how can i enable that? How can i allow the seamless full desktop session to access the local machines clipboard….or make the citrix session pass the print screen key into the citrix session so that the full desktop/server clipboard is used to store the print screen image.
        Not sure why this is not working or what others have done to resolve this print screen functionality.

        • Ingmar Verheij
          21 August 2012 at 18:07 |

          Hi Gav,

          The “AlwaysSendPrintScreen” needs to be set in the ICA file (hence the title of the article), not in the registry. You can set this in the default ICA file of the XenApp services site.

          If the content of your local desktop is paste into the Citrix session you’ve enabled clipboard redirection, so it works as designed.

          Ingmar

  • Gav
    22 August 2012 at 01:30 |

    Hi Ingmar,
    Sorry – i applied your setting to the ICA file as you explained (from the web interface, i right clicked the ‘desktop’ app then saved to desktop to get an ICA file that i can modify) – i added the key you mentioned AND IT DID WORK!!! now when the user presses the print screen or alt print screen key the correct thing is pasted INSIDE the citrix session! THANK YOU :)…..but wondering if you can explain or tell me how i can make this ‘key’ a permanent part of the published desktop app? Can i modify the ICA file on the servers that are given out to the clients when they access the published app list? Reason being is that when i save a copy of this ICA file, i have to modify the server IP address – we have 3 citrix servers to i dont want to direct all sessions to the one server – i want the citrix server to manage the load…..i also dont want to have to maintain this separate ICA file as users connect to us from different computers all the time….so getting them the ICA file is a pain. How can i add this key to the ICA file that is given out by the citrix servers? Where is the ICA file that the server gives out constructed from? Does it just build the ica file at the time the user clicks the published desktop and bases the contents off the settings i apply when i created the app with the citrix management console? Can i set this key anywhere in the CMC so that it applies to the ICA file that the server gives out for this full desktop?

    Thanks Ingmar

    • Ingmar Verheij
      22 August 2012 at 08:46 |

      Hi Gav,

      Glad to hear the proposed solution worked!
      There’s no need to change the ICA file manually. You can change the default settings that are applied by the WebInterface (the service that communicates with the PNagent) by setting the appropriate setting in %systemroot%\inetpub\wwwroot\Citrix\PNAgent\conf\default.ica.
      The location migth be different if you’ve changed the location of the IIS website or named the site differently, but I’m sure you’ll manage to locate the file.

      Regards,
      Ingmar

      • Gav
        23 August 2012 at 05:00 |

        Hi Ingmar,
        I found the ICA files you mentioned – the default.ica files and made the changes in there. The settings were then successfully applied to sessions that were started from the Citrix Web Interface…..HOWEVER, the settings did not apply to sessions launched via the PNA! I did a little more digging around and just in case someone else stumbles upon this issue, i did manage to get it working. In order for the sessions launched via PNA to correctly use the print screen and other windows keys, i had to edit the config.xml file of the PNA in the CMC. Access the CMC – expand web interfaces – find your PNA site – expand that to get your config.xml file – right click it and choose change session options – in here choose client resources and then under ‘targets of windows key combinations’ make sure the only one that is ticked is ‘in full screen desktop’. Our problem all along was that all of these tick boxes were selected, the PNA clients were all set to choose the default setting and because all of these were ticked here, i assume it just selected the first item in this list as the default which is ‘on the local desktop’!!

        So i have now modified the ica file to include the key you mentioned – that fixed the problem for sessions launched from the web interface…and i have also modified the PNA config file to fix the issue for sessions launched internally via PNA.

        Thanks again for your input, assistance and fast response Ingmar 🙂

  • Walt
    31 August 2012 at 16:19 |

    Excellent work, Ingmar. It’s non-trivial to find info on ICA files, and you’ve done us a great service.

    Here’s an additional attribute you might consider documenting: “Clearpassword”. It’s the same as Password, but it doesn’t need to be encrypted (so Remko’s tool you referenced isn’t needed).

  • Frederic Serriere
    17 January 2013 at 10:17 |

    Hi,

    I am trying to get the ICA File Creator tool hidden in the Citrix KB as Citrix Quick Launch is the preferred method to create ICA files and I do not maintain ICA File Creator anymore.

    Well spotted for the 125% DPI support as I personally don’t use it therefore I did not realized it was that needed !!

    Thanks for the feedback

    Frederic

  • Jesse
    11 April 2013 at 17:58 |

    Great article, can you tell me if you can change settings for the flash optimization to be on, as well as the file access settings via the default.ica. I see settings for the mic but not for the webcam, does setting the mic also change the webcam?

  • Mikko
    31 May 2013 at 11:01 |

    Hi,

    Is it possible to create an ICA file that connects a web interface requesting for published application resource from another Farm (added to the WI) and then connects to provisioned XenApp server?

    I can only get this working with a specific server or dynamically within the servers of the farm that provides the WI.

    But if I add another farm to the WI, I cannot create a working ica file which would connect the WI requesting the published app on this other farm.

    I am using the Citrix Linux receiver. In the wfcmgr I can see all apps from both farms in the XenApp view. But with the Connection view I only see the apps from the farm that provides the WI. Same issue when trying with the Citrix Quick Launch – I only see applications from the first farm, not from the second farm that is added to the WI (note: for both the XenApp Web Sites and the XenApp Services Sites).

    Note: I can see all the applications from both farms when logging in with the browser to the XenApp web site.

    • Ingmar Verheij
      7 June 2013 at 16:32 |

      No, you can’t. The ICA file can only connect to a Citrix XenApp worker server or a XenDesktop VDA and connect to a session.

  • 4 June 2013 at 09:07 |

    Spot on with this write-up, I honestly think this web site needs far more
    attention. I’ll probably be returning to read through more, thanks for the information!

    • Mikko
      27 June 2013 at 19:48 |

      Hi, thanks for the reply.

      You mention it is possible for XenDesktop VDA. I have not been able to do that either. What I have tried doing is started a xendesktop session from the wfcmgr and saved the temporary ica file and the commandline used with wfica.

      Trying to use the exact same command and the preserved .ica file does not work. I’ve tried also to tweak the .ica file and find a working version.

      Seems that there are some session specific things in the temporary file.

  • Rama Nerella
    12 July 2013 at 20:27 |

    Dear Ingmar: For my LoadRunner Citrix testing, I am having to use ICA files. If I wish to execute a single script for ten users, then I am duplicating the script nine times, creating ten ica files, that is, one user per ica file. I am unable to comprehend the most effective way of achieving this goal. Please help. Thanks, Rama 314-956-6030 USA

    • Ingmar Verheij
      16 July 2013 at 14:45 |

      Hi Rama,

      That sounds quite cumbersome, I can’t think of a situation where you have to test thousands of users. Isn’t there a better implementation with LoadRunner? You might want to look at Denamik LoadGen?

      If you want to use ICA files with a different username in each file you’d probably have to write a batch / vbscript / powershell script. Shouldn’t be to difficult?

      Cheers
      Ingmar

      • Uga
        16 April 2015 at 14:06 |

        Thanks, Ingmar for your valuable inputs.

        We have .NET application hosted on Citrix XenApp(v6.5).

        We are planning to do load test for that. We have looked into Denamik LoadGeb. It is a commercial tool.

        Is their any open source tools to do load test?

        Many Thanks,

        Uga

  • Rama Nerella.
    19 July 2013 at 19:41 |

    Dear Ingmar: Thnank you for taking the time to answer my question. I may implement one of your proposed solutions. Similarly if I happen to come up with something else that works, I will let you know. Have a great weekend! Rama

  • Adarsha
    20 September 2013 at 03:05 |

    Dear Ingmar,

    I Want to make icaclient.visible = tr
    ue as like as ie.visible =true; please let me know; which property I have to use in icaclient?
    i have written one small script to login to the server using ica client; manually script is working fine; when i schedule script in task scheduler and enabled user is loged in or not option in task scheduler; could not able to connect to the system. if i enabled; user is loged only option ica client is connecting to the system. please give your valuable ideas;

    Thanks in advance;

    Adarsha.

    • Adarsha
      20 September 2013 at 04:34 |

      Continue…of my last comment; sorry; i want to make icaclient.vidible = false as like as ie.visible= false

      • Ingmar Verheij
        23 September 2013 at 12:14 |

        I suppose your automating the connection using the ICA client as an ActiveX object, is that correct?
        What exactly is it that you want to achieve?

  • Sune
    7 November 2013 at 10:49 |

    Hi Ingmar
    Do you know if its possible in one of the ini files for receiver to block the startmenu integration from storefront? we only want the applications to be visible in receiver, not in the startmenu, but the shortcuts gets created when a user subscribes to an app no matter what i do it seems

    • Ingmar Verheij
      8 November 2013 at 15:52 |

      Are you using the Citrix Receiver or Citrix Receiver Enterprise (Legacy PNA)?

  • kumar
    3 January 2014 at 11:37 |

    Hi Ingmar,

    Thanks for the valuable information posted. I have and issue state below please reply me on my mail id.

    ISSUE

    APPSRV.INI In this script, when we trying to add more than one ip address i.e
    LocHttpBrowserAddress=
    ;LocHttpBrowserAddress2= ====>New Added IP address.
    it was not workng and we were not able to access the Address2, Could please suggest on this.

    Thank you in Advance.

    BR//
    Kumar.

  • Jorge
    24 February 2014 at 18:51 |

    Do you know how I could check the ICA compression and encryption settings?

    • 6 March 2014 at 08:38 |

      What is it that you want to check? What compression/encryption is used in a session?

  • mohammad reza
    18 May 2014 at 13:17 |

    Hi
    Open OLE clipboard null parameter, which under normal conditions does it work?
    Thanks

  • Audie Nicdao
    30 May 2014 at 15:58 |

    Hi Ingmar
    Audie from Nashville, Tennessee USA

    question:
    My users login to CITRIX using their Network Login
    Once logged in, they click on an APP called NewLeaf (Pharmacy software)

    Inside this software it calls an external vendor called ApproveRX. It provides the FORMS that the user can retrieve, but gets a message “Failure to retrieve pre-filled form from ApprovRx”.

    when I login as an ADMIN, everything works fine.

    hoping I have explained enough for you to see my issue.

    Thank you

    Audie Nicdao

  • Piyush
    20 June 2014 at 20:39 |

    Thank you so much for this Article. Really very helpful. Appreciate your time you took to share with us. Thanks again.

  • Ana
    6 August 2014 at 10:17 |

    Hi Ingmar,
    Using LoadRunner and ICA config files, the AUT crashes when the number of users increases. What parameters in the ICA config file may need to be changed/increased?
    Thank you
    Ana

    • 7 August 2014 at 12:10 |

      There are no specific parameters for multiple sessions. You might want to check at HP for stability issue with LoadRunner.

  • 13 September 2014 at 17:47 |

    Having read this I believed it was rather enlightening.
    I appreciate you spending some time and effort to
    put this content together. I once again find
    myself personally spending way too much time both reading and commenting.

    But so what, it was still worth it!

  • Paolo
    22 September 2014 at 19:39 |

    Hello Ingmar,

    Thank you for your useful post!!

    I want to manipulate the ICA encryption level. After I “Enable SEcureICA” on the delivery group, use a policy applied to that delivery group to set the encryption at RC5-56 (for example), the encryption level on the client (as seen by Citrix Connection Center) is still RC5-128 (not RC5-56 like I want) so it seems like the policy isn’t working. We want to do testing with all the encryption levels.

    Article below suggests there may be 128 bit encryption on the client that’s overriding the 56 bit encryption? Do you know how I would address this and properly manipulate the encryption?

    Thanks!
    Paolo

    http://support.citrix.com/proddocs/topic/xenapp-xendesktop-75/cds-policies-multiple-rho.html

  • Satish
    8 October 2014 at 12:28 |

    How to enable pass-through mechanism in Linux citrix receiver 13.1 ?

  • Chris
    10 October 2014 at 14:47 |

    In the section “If you want to change the setting / behavior of a specific published application / desktop you need to add the published resource in the [ApplicationServers] section and add a [%ConnectionName%] section with the required settings.

    It is important that the name of the connection (%ConnectionName%) is exactly as it is shown in the application set of the management console.”

    Is there a way to use a wildcard for the application name? If i have a bunch of applications launching and each new user gets assigned a number, lets say “Windows 7 User-0001” the next “Windows 7 User-0002”. Can I use a wildcard to say “Windows 7 User-****=” then create a section called [Windows 7 User-****]

  • John
    23 November 2014 at 19:53 |

    Hi

    I am currently building a macro to pull listed information from an application in a Citrix Seamless Window, originally I was able to pull from the Window Title but all the information I need is truncated. Is there a way to pull the information using any kind of scripting, PowerShell, VBScript, JScript…? I have been researching for weeks and have yet to find a viable solution.

  • Dave
    19 January 2015 at 05:12 |

    Is there a specific port that an XML broker users to enumerate applications?

    I have an ICA file that runs just fine on an environment in the same LAN as the XML broker, web interface server, etc., but it fails when I try to run the same file from a satellite office that has a site to site VPN configured.

    When running the Citrix Quick launch utility on the main network, I can select “to published applications” and see the full list of published applications enumerated in the drop down menu. When I’m on a workstation at the satellite office, however, and try to use the quick launch utility pointed at the same XML broker IP address, I get an error message stating “Error: could not get the list of published applications” when I select the ‘to published application’ radio button.

    I can telnet to the IP address I’m using in CQL from the satellite office over port 80– which is what is being used as the XML port for the farm on the web interface– and can also launch applications using the online plug-in from the satellite workstation.

    I can also get a published desktop session by checking the ‘to XenApp’ radio button in the Choose connection type section of the quick launcher.

    Is there an additional route that needs to be configured on the VPN perhaps, a specific port that needs to be opened on either side, or is there something else going on?

  • Magnus
    10 February 2015 at 19:50 |

    Hi Ingmar
    I am trying to disable the short cut keys that Citrix has reserved (like Shift +F2) or remap them to different keys as this is interferring with some of our applications (like bloomberg) that run either in Xendesktop (5.6) or XenApp (6.5). I tried updating the default.ica in the storefront(2.5) and that doesnt seem to be working. Any ideas on how I can do this?

  • 6 April 2015 at 08:43 |

    When i pass the KeyboardLayout = Russian in wficlient.ini, in windows it shows the russian language selection bar, but does not reflect the russian language only english language is printed??? Am I missing something ???

  • 21 April 2015 at 01:58 |

    Hi,

    Is it possible to get the actual path to the application executable (c://program files…/notepad.exe) from the ica file?

  • Bob
    8 May 2015 at 03:30 |

    Hi Ingmar,
    Our system got upgrade and now it doesn’t have an option to choose the resolution, it wants to open everything full screen. Do you know of any way to change the config of Citrix Receiver so that it overrides what is in the .ica file?

  • Loknadh
    17 September 2015 at 20:11 |

    Superb Igmar,
    Can you please tell me any 5 things that launch.ica carries when it is launched

    Thank you,
    Loknadh Annavarapu

  • Ralse
    8 October 2015 at 11:24 |

    How do you capture an ICA file that automatically launches the remote app?
    I have some ICA files already in case the portal is down, the ICA file still works to get in.
    However, they changed the IP addresses and I can’t seem to find the new ones.
    If I could capture the ICA file I could find out the new IP addresses?

  • DDPGBG
    24 October 2015 at 15:33 |

    Thank you. This gave me a lot of insight into the cranky little file known as launch.ica.

  • Gabriel
    18 March 2016 at 13:36 |

    I’m using Linux Thinstation as a test OS (potentially will be put into production) and trying to set up Citrix to auto-connect to our Citrix environment and then auto-launch the desktop.

    Under the [%ConnectionName%] I see there is an “Address” and an “InitialProgram”. How do I use these properly? Do I put the Address as the FQDN and then the InitialProgram to #MyDesktop?

  • Guru Gali
    2 August 2016 at 16:03 |

    Great stuff. Comprehensive and covered in detail. thanks for the article.

Leave a comment

*

Donate

%d bloggers like this: