Wilco van Bragt - LinkeIn Wilco van Bragt - Twitter rssa 

Unattended installation of Citrix XenApp 6.5 Part 2

In the first part I started with the unattended installation of Citrix XenApp 6.5. In that part I showed the preperations, the command and parameters of the installation of the XenApp components. In this part I will continue with the initial setup of the actual XenApp component.

Unattended Initial Setup of Citrix XenApp 6.5

As stated in the first part the installation and configuration is separated within this version. This part describes the initial setup to set-up or join the farm.

The configuration is performed using an executable that is installed in the first phase called XenAppConfigConsole.exe, which can be found at (default) C:\Program Files (x86)\XenApp\ServerConfig.

Also new is that you can specify some commands which are mostly useful when testing the configuration of the parameter lines like /NoStrict (excuting will continue while the options do not apply to the environment) and /Confirm (displays a message before modifying the server).

It’s a bit odd that the parameter for specifying the log file is different with the installation part. Specify the logfile is based on the parameter /LogFilename:file.

Let’s take a look at the available parameters and their dependencies.


This is a required and most important parameter. This specifies what needs to happen with the XenApp server. In total there are four items available: Create (the first server you install will need to create the farm, which will be done with command), Join (the second and following servers will join the Farm with this command), ImagePrep (can be used for preparing the server for images, useful for Provisioning Services) and Leave (Removes the server from the farm).


Required and actually only needed when /Executionmode:Create (so configuring the first server) is being used. The farm will be named with the value defined in this parameter.


Also required and only valid in combination with /Executionmode:Create specified. The account specified will be added as the first Citrix Administrator (the account where you can log on the console with after this unattended configuration).


The name of the zone the server will be added to. Can be used both with Create as Join.


When setting this parameter to True local administrator account (accounts in the local administrator group) will be added as Citrix Administrator. When not specified this action will not be performed.


With XenApp 6.5 Citrix introduced a new feature that server can be configured as an application server only and cannot perform the Data Collector or XML broker Role. When specifying True the server cannot act as Data Collector or XML Broker. Default is False (so both application hosting as data collector/broker role can be done by het server). Can only be used when ExecutionMode is set to Join.

Dependent of the type of database you are using there are several parameters available. When using SQL Express you can use parameters like /SimpleDB, /SqlExpressRootDir:<location> and /ServerName. I will specify a bit more on a dedicated SQL server, which is more obvious to use when you create an unattended installation of Citrix XenApp.


Which this command you specify the location of the DSN file, which mentions the SQL database information to connect to create or join the database (datastore). Required for both Create as Join,


Add this parameter the name of the useraccount need to be specified, which will be used to access the database. When using a Windows account the name should be specified DOMAIN\Username while using SQL only the username need to be specified. Required for Join or Create at the ExecutionMode parameter.


The corresponding password of the user specified at /OdbcUserName. Logically also required like OdbcUserName


You specify if the provided ODBUserName is based on Windows or SQL authentication.


Specifies the name of the existing Citrix License Server, not required you can specify the server also using Citrix policies.


When specifying the Citrix License Server you can also specify the port number the license server is using. Default is port 27000. Not required, this can also been set with Citrix Policies.


Here you can specify the license mode options are XA (XenApp Only), XDC (XenDesktop concurrent user licenses) or XDUD (Xendekstop user or device licenses). Not required.


With this setting you can specify the port number the Citrix XML services uses (by default port 8080, when this parameter is not set).


Here you can specify if the anonymous local user accounts should be created or not.

Remote Desktop User Group options

However I recommend to add users to the Remote Desktop Group via other methods for example GPO there are scenarios where this part should be accomplished via this setup-up . The options available are /AddAnonymousUsersToRemoteDesktopUserGroup:True|False (adding the anonymous accounts to the Remote Desktop User Group), /AddAuthenticatedUserstoRemoteDesktopUserGroup (enables current and future domain accounts in the Windows Users Group to the Remote Desktop User Group) and /AddUsersGroupToRemoteDesktopUserGroup:True|False (add current users forom the local Users Group to the RemoteDesktop Users group).

The /AddUsesrGroupToRemoteDesktopUserGroup is the default s is default when you don’t specify anything during the unattended parameter line. So if you will completely manage the users in the Remote Desktop Users group specify this parameter with the value False.

Session Shadowing Options

For a long time the Session Shadowing configuration was configured on machine level during the installation and could not be changed. This finally can be configured within Citrix Policies, so you don’t need to configure this during the initial setup. However it is still possible and these settings are overwriting settings configured within the GPO. So the advice is not to configure those with the unattended setup, only when regulations require this. The possible parameters are /ProhibitShadowing:True|False, ProhibitRemoteControl:True|False, /ForceShadowPopup:True|False and ForceShadowLogging:True|False.

Other options

The executable offers some more commands, but those are based for using the ExecutationMode:ImagePrep or ExecutationMode:Leave. I’m not going to describe those, because that part does not fell into scope of this article.

Features and Component options

When additional agents are installed during phase one you can configure those agent also with this executable. Available paramters are /SmartAuditorServerName:name, /SsoPluginUncPath:path, /OnlinePluginServerUrl:name_url (Web Interface Server Url), /PcmFarmName:farm (Power and Capacity Management), PcmWorkLoadName:name (Power and Capacity Management), EdgeSightCompanyName:name, EdgeSightServerName:name and /EdgeSightServerPort:port.


Now we have seen all possible commands it’s time to show some examples of using the command line.

The first example is the creating of farm including specifying the license server, license server port, zone name and adding the Users group to the Remote Desktop User Group and log the action in a log file in the directory C: and port.

C:\Program Files (x86)\Citrix\XenApp\ServerConfig\XenAppConfigConsole.exe" /ExecutionMode:Create
/FarmName:VANBRAGT /LicenseServerName:LSSRV.vanbragt.local /LicenseServerPort:27000
/ZoneName:Zone01_VanBragt /AddUsersGroupToRemoteDesktopUserGroup:True /AuthenticationType:sql
/DsnFile:<loc>\xenapp65.dsn /OdbcUsername:xenapp65 /odbcPassword:*******

 The second example is joining a farm with minimum parameters, only the Zone Name is specified

C:\Program Files (x86)\Citrix\XenApp\ServerConfig\XenAppConfigConsole.exe" /ExecutionMode:Join  /ZoneName:Zone01_VanBragt  /AuthenticationType:sql /DsnFile:<loc>\xenapp65.dsn /OdbcUsername:xenapp65 /odbcPassword:*******


With this two part article I described the possibilities to install and configure a Citrix XenApp 6.5 unattended. The first part describes the preparation steps and the actual installation of the product. In this part I described the steps and available parameters to perform the initial configuration by joining or creating farm.