|
http://www.ingmarverheij.com/the-citrix-ica-file-explained-and-demystified/
http://support.citrix.com/proddocs/topic/ica-settings/ica-settings-wrapper.html
Written by Ingmar Verheij on juli 25th, 2012. Posted in Citrix, 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
To 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).
In 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
The name is correlated to the key HKEY_CLASSES_ROOT\ 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:
"C:\Program Files (x86)\Citrix\ICA Client\wfcrun32.exe" "%1"
1 |
"C:\Program Files (x86)\Citrix\ICA Client\wfcrun32.exe""%1" |
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:
[WFClient][ApplicationServers][%ConnectionName%]
1
2
3
4
5 |
[WFClient]
[ApplicationServers]
[%ConnectionName%] |
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
[Encoding]InputEncoding = ISO8859_1
1
2 |
[Encoding]
InputEncoding=ISO8859_1 |
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
Example
[WFClient]Version=2RemoveICAFile=YesHttpBrowserAddress=server01.domain.local:80ConnectionBar=1
1
2
3
4
5 |
[WFClient]
Version=2
RemoveICAFile=Yes
HttpBrowserAddress=server01.domain.local:80
ConnectionBar=1 |
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) forall 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 .icafiles. For security reasons, users cannot be authenticated to the server unless this parameter is present and its value set to On, even ifUseLocalUserAndPassword 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 | : | The Fully Qualified Domain Name (for instance server01.domain.local) of the browser serverfollowed by a colon and the port where the XML service is located (default port is 80) | : | 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]
Containsone (or more) connections that are stored in the file. The “more” connections is a legacy option used in the Program Neighborhood that hasbeen 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
[ApplicationServers]Desktop=
1
2 |
[ApplicationServers]
Desktop= |
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
[Desktop]Address=DesktopInitialProgram=#DesktopCGPAddress=*:2598ClientAudio=OnDesiredColor=8TWIMode = TrueConnectionBar=1TransportDriver=TCP/IPWinStationDriver=ICA 3.0Compress=OnEncryptionLevelSession=Encrypt
1
2
3
4
5
6
7
8
9
10
11
12 |
[Desktop]
Address=Desktop
InitialProgram=#Desktop
CGPAddress=*:2598
ClientAudio=On
DesiredColor=8
TWIMode=True
ConnectionBar=1
TransportDriver=TCP/IP
WinStationDriver=ICA3.0
Compress=On
EncryptionLevelSession=Encrypt |
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) | :443 | An explicit server is specified as the SSL relay server (for instance an Citrix Access Gateway). |
- TransportDriver
- Description:This parameter specifies the transport protocol to use to connect to the specified connection or application set. This name must correspond to one of the transport drivers specified in the TransportDriver sectionof Module.ini.
- Possible values:
Value | Description | TCP/IP | The Tranmission Control Protocol (TCP) / Internet Protocol (IP) protocol is used to transport the ICA traffic (Default) | IPX | The Internetwork Packet Exchange (IPX) protocol is used to transport the ICA traffic | SPX | The Sequenced Packet Exchange (SPX) protocol is used to transport the ICA traffic | NetBIOS | The Network Basic Input/Output System (NetBIOS) protocol is used to transport the ICA traffic. |
- 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 capturedevices (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 | Truecolor (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 | Theremote 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
[Compress]DriverName=PDCOMP.DLLDriverNameWin16=PDCOMPW.DLLDriverNameWin32=PDCOMPN.DLL
1
2
3
4 |
[Compress]
DriverName=PDCOMP.DLL
DriverNameWin16=PDCOMPW.DLL
DriverNameWin32=PDCOMPN.DLL |
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 EncryptionLevelSessionsetting in the %ConnectionName% section. The name of the section equals the value of the EncryptionLevelSession setting.
Example 1
[Encrypt]DriverNameWin32=PDCRYPTN.DLLDriverNameWin16=PDCRYPTW.DLL
1
2
3 |
[Encrypt]
DriverNameWin32=PDCRYPTN.DLL
DriverNameWin16=PDCRYPTW.DLL |
In the first example the default drivers used for encryption (SecureICA) are specified.
Example 2
[EncRC5-0]DriverNameWin16=PDC0W.DLLDriverNameWin32=PDC0N.DLL[EncRC5-40]DriverNameWin16=PDC40W.DLLDriverNameWin32=PDC40N.DLL[EncRC5-56]DriverNameWin16=PDC56W.DLLDriverNameWin32=PDC56N.DLL[EncRC5-128]DriverNameWin16=PDC128W.DLLDriverNameWin32=PDC128N.DLL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
[EncRC5-0]
DriverNameWin16=PDC0W.DLL
DriverNameWin32=PDC0N.DLL
[EncRC5-40]
DriverNameWin16=PDC40W.DLL
DriverNameWin32=PDC40N.DLL
[EncRC5-56]
DriverNameWin16=PDC56W.DLL
DriverNameWin32=PDC56N.DLL
[EncRC5-128]
DriverNameWin16=PDC128W.DLL
DriverNameWin32=PDC128N.DLL |
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?
.ICAfiles 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
Whenyou launch a published application / desktop via the web portal supplied by Citrix (WebInterface, StoreFront or VDI in a box) a defaultconfiguration 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.
Sinceboth WebInterface and StoreFront are integrated in Microsoft Internet Information Services (IIS) the configuration is stored in a directory inthe %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
Ifyou 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.
Itis important that the name of the connection (%ConnectionName%) is exactly as it is shown in the application set of the management console.
Example
[ApplicationServers]Desktop - Windows 7=[Desktop - Windows 7]TWIMode=OffDesiredHRES=1440DesiredVRES=800
1
2
3
4
5
6
7 |
[ApplicationServers]
Desktop-Windows7=
[Desktop-Windows7]
TWIMode=Off
DesiredHRES=1440
DesiredVRES=800 |
How can I create an .ICA file?
Well, there are a number of options:
- Manual
- Citrix ICA File Creator – CTX113472
- 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 developerswho where willing to build a version that supported 125% DPI (and JamesDenne – @JimmyLeroux – for contacting them).
Comments
Did I miss anything or do you have a suggestion? Let me know in the comments.
Related articles:
- “Citrix Receiver – Security Warning”…
- (Non)paged memory pool limit, it might be smaller then you…
- RES software on MySQL
- My speedometer is lying!
- How to install ipkg on Synology NAS (DS212+)
Ingmar Verheij
IngmarVerheij works for PepperByte as a Senior Consultant. His work consist of designing, migrating and troubleshooting Microsoft and Citrix infrastructures. He is working with technologies like Microsoft RDS, user environment management and (performance) monitoring.
More Posts - Website
Follow Me:
Tags: Citrix, demystified, hdx, ica
Comments (9)
Gav
20 augustus 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….
Ourusers 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 acopy 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 ishappening 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.
Reply
Ingmar Verheij
20 augustus 2012 at 12:57| #
Hi Gav,
Have you tried setting AlwaysSendPrintScreen=On in the [WFClient] section?
Turnson 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
Reply
Gav
21 augustus 2012 at 01:04| #
Hey Ingmar,
I tried setting the “AlwaysSendPrintScreen” key with a new string valuewith 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 accessthe local machines clipboard….or make the citrix session pass the printscreen 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.
Reply
Ingmar Verheij
21 augustus 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
Reply
Gav
22 augustus 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 differentcomputers all the time….so getting them the ICA file is a pain. How cani 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
Reply
Ingmar Verheij
22 augustus 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 tolocate the file.
Regards,
Ingmar
Reply
Gav
23 augustus 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
Reply
Walt
31 augustus 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’san 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).
Reply
Frederic Serriere
17 januari 2013 at 10:17| #
Hi,
Iam 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 donot 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
Reply
|
|