Xenapp AntiVirus Exclusions

Reading Time: 2 minutes

The following antivirus exclusions should be applied to all Citrix infrastructure servers:

– Set real-time scanning to scan local drives only and not network drives
– Disable scan on boot
– Remove any unnecessary antivirus related entries from the Run key
– Exclude the pagefile(s) from being scanned
– Exclude IIS log files from being scanned
– Exclude Windows event logs from being scanned

Below are the recommended antivirus exclusions, by Citrix product:

Citrix Profile Manager Agent:

– Do not scan on open or status-check operations
– UserProfileManager.exe

EdgeSight Agent:

– <AllUsersProfile>\Application Data\Citrix\System Monitoring\Data
– \ProgramFiles\Citrix\System Monitoring\Agent\Core\rscorsvc.exe
– \ProgramFiles\Citrix\System Monitoring\Agent\Core\Firebird\bin\fbserver.exe


– \CommonProgramFiles\\Citrix\System Monitoring\Server\RSSH
– \ProgramFiles\Citrix\System Monitoring\Server\EdgeSight\scripts\rssh
– \ProgramFiles\Citrix\System Monitoring\Server\EdgeSight\Pages
– \ProgramFiles\Microsoft SQL Server\MSSQL\Reporting Services
– \ProgramFiles\Microsoft SQL Server\MSSQL\Data
– \SystemRoot\SYSTEM32\Logfiles

Provisioning Services Server:

– Exclude scanning of Local vDisk Store
– \Windows\System32\drivers\CvhdBusP6.sys
– \Windows\System32\drivers\CfsDep2.sys
– \Program Files\Citrix\Provisioning Services\BNTFTP.EXE
– \ProgramData\Citrix\Provisioning Services\Tftpboot\ARDBP32.BIN
– \Program Files\Citrix\Provisioning Services\StreamService.exe
– \Program Files\Citrix\Provisioning Services\StreamProcess.exe
– \Program Files\Citrix\Provisioning Services\soapserver.exe


– Exclude scanning of Write Cache
– \Program Files\Citrix\Provisioning Services\BNDevice.exe
– \Windows\System32\drivers\bnistack6.sys
– \Program Files\Citrix\Provisioning Services\TargetOSOptimizer.exe
– \Windows\System32\drivers\CfsDep2.sys
– \Windows\System32\drivers\CVhdBusP6.sys

Target – Personal vDisk:

– CTXPVD.exe
– \Program Files\Citrix\Personal vDisk\BIN\WIN7\

XenApp Controller:

– Windows\system32\csrss.exe
– Windows\system32\winlogon.exe
– Windows\system32\userinit.exe
– Windows\system32\smss.exe
– Program Files\Citrix\Group Policy\Client-Side Extension\CitrixCseEngine.exe
– Program Files (x86)\Citrix\System32\wfshell.exe
– Program Files (x86)\Citrix\system32\ctxxmlss.exe
– Program Files (x86)\Citrix\System32\CtxSvcHost.exe
– Program Files (x86)\Citrix\system32\mfcom.exe
– Program Files (x86)\Citrix\System32\Citrix\Ima\ImaSrv.exe
– Program Files (x86)\Citrix\System32\Citrix\Ima\IMAAdvanceSrv.exe
– Program Files (x86)\Citrix\HealthMon\HCAService.exe
– Program Files (x86)\Citrix\Streaming Client\RadeSvc.exe
– Program Files (x86)\Citrix\Streaming Client\RadeHlprSvc.exe
– Program Files (x86)\Citrix\Independent Management Architecture\RadeOffline.mdb
– Program Files (x86)\Citrix\Independent Management Architecture\imalhc.mdb

Session Host:

– \Windows\system32\spoolsv.exe
– \Windows\system32\csrss.exe
– \Windows\system32\winlogon.exe
– \Windows\system32\userinit.exe
– \Windows\system32\smss.exe
– \Program Files\Citrix\Group Policy\Client-Side Extension\CitrixCseEngine.exe
– \Program Files (x86)\Citrix\System32\wfshell.exe
– \Program Files (x86)\Citrix\system32\CpSvc.exe
– \Program Files (x86)\Citrix\System32\CtxSvcHost.exe
– \Program Files (x86)\Citrix\system32\mfcom.exe
– \Program Files (x86)\Citrix\System32\Citrix\Ima\ImaSrv.exe
-\Program Files (x86)\Citrix\System32\Citrix\Ima\IMAAdvanceSrv.exe
– \Program Files (x86)\Citrix\HealthMon\HCAService.exe
– \Program Files (x86)\Citrix\Streaming Client\RadeSvc.exe
– \Program Files (x86)\Citrix\Streaming Client\RadeHlprSvc.exe
– \Program Files (x86)\Citrix\XTE\bin\XTE.exe
– \Program Files (x86)\Citrix\Independent Management Architecture\RadeOffline.mdb
– %AppData%\ICAClient\Cache (if using pass-through authentication)
 XenClient Synchronizer:

– \Program Files\Citrix\Synchronizer|

XenDesktop Controller:

– \Windows\system32\csrss.exe
– \Windows\system32\winlogon.exe
– \Windows\system32\userinit.exe
– \Windows\system32\smss.exe

Controller – pre-XenDesktop 7.x:

– \Program Files\Citrix\Group Policy\Client-Side Extension\CitrixCseEngine.exe
– \Program Files (x86)\Citrix\System32\wfshell.exe
– \Program Files (x86)\Citrix\system32\ctxxmlss.exe
– \Program Files (x86)\Citrix\System32\CtxSvcHost.exe
– \Program Files (x86)\Citrix\system32\mfcom.exe

Windows Server OS Machines – XenDesktop 7.x:

– \Windows\system32\spoolsv.exe
– \Windows\system32\csrss.exe
– \Windows\system32\winlogon.exe
– \Windows\system32\userinit.exe
– \Windows\system32\smss.exe
– \Program Files\Citrix\Group Policy\Client-Side Extension\CitrixCseEngine.exe
– \Program Files (x86)\Citrix\System32\wfshell.exe
– \Program Files (x86)\Citrix\system32\CpSvc.exe
– \Program Files (x86)\Citrix\System32\CtxSvcHost.exe

Soure and for more info – Citrix Consolidated List of Antivirus Exclusions

Replicating print driver xenapp 6.5

Reading Time: < 1 minute

Launch Powershell on a source server (ZDC server often used) as administrator. Ensure the status bar states ‘administrator’

Note, if copying the command from point 8 below, you may need to reenter the speech marks ( ” )

1) UNC path to your print server and install the printer. This will allow for the print driver to be installed on your source server (ZDC)
2) Type: Set-ExecutionPolicy RemoteSigned
3) Press Enter twice
4) Type the letter ‘Y’ and enter
5) Type: Add-PSSnapIn Citrix.*
6) Press Enter
7) Type Get-XAPrinterDriver –Servername XenappServername (Where XenappServername is your source server e.g. ZDC) – This command will list all drivers installed on your source server. Including the new driver)
8) Finally, type: Add-XAAutoReplicatedPrinterDriver “Print Driver Name” -SourceServerName XenappServername (Where XenappServername is your source server e.g. ZDC)
9) To display a list of drivers currently within your replication list type: Get-XAAutoReplicatedPrinterDriver
10) Replication throughout the farm can take up to 20 minutes

Installing Xenapp 6.5 instructions

Reading Time: 4 minutes

Before going through these instructions, ensure you have created your Citrix IMA database, have decided what farm name and zone name you are going to use if this is going to be the first Xenapp server within the farm.

Personally, i would setup in the following order, just so you have an idea of what needs to be done:

1) SQL server – create IMA database
2) Setup up licensing on an existing or dedicated server (probably existing). This role can be installed by launching setup from the Xenapp media, installing common components and then installing licensing. Import your license you purchased from Citrix.
3) Setup a dedicated server for ZDC
4) Install first Xenapp server, the first server will always be selected as most prefered for ZDC. This can be changed later by right clicking your zone within your farm (via app centre)
5) Install additional Xenapp servers if required and add to existing farm
6) Install web interface on dedicated server. This can be done by launching setup and installing common components

1) Launch Xenapp 6.5 setup from your media

Xenapp 6.5

2) If prompted click yes to installing .net SP

3) Click Add server roles


4) On the next screen, select your Xenapp edition. Platinum, Enterprise or Advanced, depends on what you have purchased.

5) Accept the agreement and click next

6) Click Xenapp and next (Assuming it’s just a Xenapp server)


7) On the next screen, click the required components. The top three are ticked by default. The optional component  is the XML service IIS integration.

The Citrix XML service is a component of Citrix XenApp and XenDesktop that is used to total available resources and provide secure tickets for users who use the WebInterface or CloudGateway. The Citrix XML service is mainly used to provide users access to their applications and desktops via a web portal, leveraging the services of WebInterface.

See screen shot below.


 8) Review prerequistes and click next

9) Click Install and finish when prompted

10) Click reboot


11) After server reboots, logon and launch setup again, click Install Xenapp Server and the below screen will appear giving you the option to resume the install. Click resume install


12) Click install and finish when done

13) Click specify licensing and enter your licensing server details. Test connection. If you have not yet setup a licensing server, click configure later. You can enter licensing server later by launching setup again.


14) On the next screen, select your licensing model. Most likely going to be Xenapp as the other two are Xendesktop.

15) On the next screen click configure


16) Select your option, if this is a new install and your first Xenapp server, you will need to create a new farm.


17) If it’s a new farm enter your chosen farm name. (We will continue with adding the server to a farm which already exists). Click add this server to an existing farm and then add server to an Existing Microsoft SQL server database.

18) Enter your SQL server name and IMA database and enter your service account and password. Test the connection. If it fails, your windows firewall on your SQL server may be the cause.

19) Leave the default of Allow shadowing of user sessions on this server (depends on if this is a requirement). Click next

20)  Click use custom zone name and enter the zone name if it already exists, or enter a new one. The newly created zone name will need to be used on all new xenapp servers added to the farm unless you have different zones.

21) On the remote desktop users tab, you could leave as default but you may want to untick if you control this through group policy.

22) Click next and finish

You may wish to install the latest Citrix rollup pack.

Please note, this procedure was created whilst installing Xenapp on a test environment. Please carry out testing and further checks.

How to recreate citrix local host cache (LHC)

Reading Time: < 1 minute

Clearing the Local Host Cache on a Citrix server can sometimes help resolve many issues on a Xenapp/Citrix server including, if the Citrix IMA service fails to start or the local host cache becomes corrupted.

To recreate the local host cache:

1) Stop the Citrix IMA service
2) Open a command prompt
3) Type: dsmaint recreatelhc
4) Press enter
5) Restart the Citrix IMA service

The server holding the data store server must be available for dsmaint recreatelhc to work. If the data store is not available, the Citrix IMA Service will fail to start.

What does running dsmaint recreatelhc do?

Running the above command will:

1) Set the value at HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\IMA\ RUNTIME\PSRequired to 1. If using 32bit Edition the key is located at HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\IMA\ RUNTIME\PSRequired to 1 on XenApp

2) Deletes the existing local host cache located on your server (Imalhc.mdb)

3) Finally recreates an empty local host cache (Imalhc.mdb)

So if you’re experiencing issues, it’s worth ago.

Difference between a controller and worker Xenapp 6.5

Reading Time: 3 minutes

I received an email from a visitor earlier asking what the difference between a Xenapp controller and worker was. He found that he had eight Xenapp servers in his farm and out of the eight, he had six which he was able to change the election preference on, where as was not able to on the two and they were showing as N/A.

This is due to the two being configured as workers and not controllers. You can check whether a server is a controller or worker by clicking on the server within App Centre, clicking the information tab and looking for session-host mode:

Disabled – Indicates that this server is a controller
Enabled – Indicates that this server is a worker

You can also check if a XenApp 6.5 server is a worker or a controller by browsing the below key via registry HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\IMA\RUNTIME

The DWORD named WorkerRole, you will find value of 0 (zero) which indicates that the server is a controller and if the value is 1 (one) indicates that the server is a worker.

What is the difference:

The difference between a controller server and worker server is based on the options you tick when adding a server to the farm. See screen shot below. Selecting enable session-host mode only would configure the server as a worker.

xenapp controller and worker


A worker is unable to participate in an election. The reason is that it has no data collector role installed. It is also of no use to use a worker as a XML broker because it has no XML service installed.

The below chart will explain the differences without me going into too much detail.


Will I experience issues?

No, the visitor who sent me an email mentioned that two of the eight servers were not allowing him to change the election preference so therefore they are workers. He still has the six servers which are controllers. There would have been an issue if there were two controllers and six workers because if the two controllers were to crash, new users would not be able to log on and disconnected sessions cannot be reconnected. So it is important that you have enough controllers within your Xenapp farm.

Why should I use a worker?

There are many benefits. A few are listed below.

1) A Worker does not take up much bandwidth compared to a controller
2) The startup time of you IMA service is quicker as there is no need to download all the information from the data store. The local host cache on your worker will be much smaller in size compared to the controllers.
3) There will be less replication between the data store and XenApp Servers

Some configure all Xenapp servers as controllers