Delivery Controller 7.8

Last Modified: May 19, 2020 @ 8:07 am



Citrix Licensing – If you are going to use an existing Citrix Licensing Server, upgrade it to build 16002.

SQL Databases

  • Citrix blog post Database Sizing Tool for XenDesktop 7 and Bugfix for Database Sizing Tool
  • Citrix article CTX114501 – Supported Databases for Citrix Products
  • There are typically three databases: one for the Site (aka farm), one for Logging (audit log) and one for Monitoring (Director).
    • The monitoring database name must not have any spaces in it. See CTX200325 Database Naming Limitation when Citrix Director Accesses Monitoring Data Using OData APIs
    • If you want Citrix Studio to create the SQL databases automatically, then the person running Studio must be a sysadmin on the SQL instances. No lesser role will work.
    • As an alternative, you can use Citrix Studio to create SQL scripts and then run those scripts on the SQL server. In that case you only need the dbcreator and securityadmin roles.
    • It is possible to create the databases in advance. However, you must use the non-default Latin1_General_100_CI_AS_KS collation. Then use Citrix Studio to configure the database tables.
  • Citrix recommends SQL Mirroring because it has the fastest failover.
    • SQL Mirroring requires two SQL Standard Edition servers and one SQL Express for the witness server.
    • You can setup SQL Mirroring either before installing XenDesktop or after installing XenDesktop. If after, then see Citrix CTX140319 to manually change XenDesktop’s database connection strings How to Migrate XenDesktop Database to New SQL Server.
    • To setup SQL Mirroring, see Rob Cartwright: Configure SQL Mirroring For Use With XenDesktop, XenApp, and PVS Databases.
    • If you try to stretch the mirror across datacenters, the SQL witness must be placed in a third datacenter that has connectivity to the other two datacenters. However, stretching a single XenApp/XenDesktop site/farm and corresponding SQL mirror across datacenters is not recommended.
  • AlwaysOn Availability Groups and SQL Clustering are also supported. However, these features require the much more expensive SQL Enterprise Edition.

Windows Features

  • Installing Group Policy Management on the Delivery Controller lets you edit GPOs and have access to the Citrix Policies node in the GPO Editor. Or you can install Studio on a different machine that has GPMC installed.
  • vSphere Web Client – if you will connect to vSphere Web Client from the Controller machine, Flash Player is only available for IE if you install the Desktop Experience feature. Or you can use Google Chrome.


  • Create a role in vSphere Client. Assign a service account to the role at the Datacenter or higher level.

Delivery Controller Install

  1. A typical size for the Controller VMs is 2-4 vCPU and 8 GB of RAM.
  2. Make sure the User Right Log on as a service includes NT SERVICE\ALL SERVICES or add NT SERVICE\CitrixTelemetryService to the User Right.
  3. On two Delivery Controllers, install the Delivery Controller software from the XenApp/XenDesktop 7.8 media. Download it from XenApp Enterprise, XenApp Platinum, XenDesktop Enterprise, or XenDesktop Platinum, depending on your license. Go to the downloaded XenDesktop 7.8 ISO and run AutoSelect.exe.
  4. Click Start next to either XenApp or XenDesktop. The only difference is the product name displayed in the installation wizard.
  5. On the left, click Delivery Controller.
  6. You can install all components on one server or on separate servers. Splitting them out is only necessary in large environments or if you want to share the components (e.g. Licensing, StoreFront, Director) across multiple farms.
  7. In the Features page, uncheck the box next to Install Microsoft SQL Server 2012 SP1 Express and click Next.
  8. In the Summary page, click Install.
  9. In the Installation Successful page, click Finish. Studio will automatically launch.
  10. Ensure the two Controller VMs do not run on the same hypervisor host. Create an anti-affinity rule.

Create Site

There are several methods of creating the databases for XenApp/XenDesktop:

  • If you have sysadmin permissions to SQL, let Citrix Studio create the databases automatically.
  • If you don’t have sysadmin permissions to SQL then use Citrix Studio to generate SQL scripts and send them to a DBA.

Database Mirroring

If you are not using database mirroring then skip to the next section.

You can setup SQL Mirroring either before configuring XenDesktop or after configuring XenDesktop.

  • If before, then the empty databases (Site, Logging, Monitoring) must use the Latin1_General_100_CI_AS_KS collation, which is not the default.
  • If SQL Mirroring is already setup then XenDesktop will detect it and set the database connection strings accordingly. Or you can manually change the database connection strings later as detailed at Citrix CTX140319 How to Migrate XenDesktop Database to New SQL Server.
  • If you use Citrix Studio to create SQL scripts that populate the databases, then there will be separate SQL scripts for the Primary and Partner.

To verify mirroring after the XenDesktop configuration has completed, run the PowerShell cmdlet get-configdbconnection and ensure that the Failover Partner has been set in the connection string to the mirror.

Use Studio to Create Database Scripts

  1. Launch Citrix Studio. After it loads, click Deliver applications and desktops to your users.
  2. In the Introduction page, select An empty, unconfigured site. This reduces the number of pages in this Setup wizard. The other pages will be configured later.
  3. Enter a Site Name (aka farm name) and click Next. Only administrators see the farm name.
  4. In the Databases page, change the selection to Generate scripts to manually set up databases on the database server.
  5. Change the database names if desired.
  6. If you are building two Controllers, click Select near the bottom of the same page.
  7. Click Add.
  8. Enter the FQDN of the second Controller and click OK. Note: the Delivery Controller software must already be installed on that machine.
  9. Then click Save.
  10. If you hover your mouse over 2 selected, it will show both Controllers. Click Next.
  11. In the Additional Features page, click Next.
  12. In the Summary page, click Generate scripts.
  13. A folder will open with six scripts. Edit each of the scripts.
  14. Near the top of each script are two lines to create the database. Uncomment both lines (including the go line). Then save and close the file.

  15. Once all of the scripts are edited you can send them to your DBA.
  16. On the Principal SQL Server, open the file Site_Principal.sql.

  17. Open the Query menu and click SQLCMD Mode.
  18. Then execute the script.
  19. If SQLCMD mode was enabled properly then the output should look something like this:
  20. If you have a mirrored database, run the second script on the mirror SQL instance. Make sure SQLCMD mode is enabled.

  21. Repeat for the Logging_Pricipal.sql script.
  22. You’ll have to enable SQLCMD Mode for each script you open.

  23. Repeat for the Monitoring_Principal.sql script.
  24. Once again enable SQLCMD Mode.

  25. The person running Citrix Studio must be added to the SQL Server as a SQL Login and granted the public server role.

  26. Back in Citrix Studio, click the Continue database configuration and Site setup button.
  27. In the Database page, enter the SQL server name and instance name and click Next.

  28. On the Licensing page, enter the name of the Citrix License Server and click Connect. . If you installed Licensing with your Delivery Controller, then simply enter localhost.
  29. XenApp/XenDesktop 7.8 requires the newest Licensing Server. If your server isn’t compatible, leave it set to localhost and fix it later.
  30. If the Certificate Authentication appears, select Connect me and click Confirm.
  31. Then select your license and click Next.
  32. In the Additional Features page, click Next.
  33. In the Summary page, make your selection for Customer Experience Improvement Program and click Finish.
  34. It will take some time for the site to be created.

Verify Database Mirroring

If your database is mirrored, when you run get-brokerdbconnection, you’ll see the Failover Partner in the database connection string.

Second Controller

When building the first Delivery Controller the scripts might have already included the second Delivery Controller. Thus no special SQL permissions are needed. If the second Delivery Controller has not already been added to the SQL databases then there are several methods of adding a second Controller to the databases for XenApp/XenDesktop:

  • If you have sysadmin permissions to SQL, let Citrix Studio modify the databases automatically.
  • If you don’t have sysadmin permissions to SQL then do use Citrix Studio to generate SQL scripts and send them to a DBA.

To use Citrix Studio to create the SQL Scripts:

  1. On the first Delivery Controller, if StoreFront is installed, delete the default StoreFront store (/Citrix/Store) and recreate it with your desired Store name (e.g. /Citrix/CompanyStore).
  2. On the 2nd Delivery Controller, install XenDesktop as detailed earlier.
  3. After running Studio, click Connect this Delivery Controller to an existing Site.
  4. Enter the name of the first Delivery Controller and click OK.
  5. If you don’t have elevated SQL permissions, click No when asked if you want to update the database automatically.
  6. Click Generate scripts.
  7. A folder will open with six scripts. If not mirroring, then the top three scripts need to be sent to a DBA. If mirroring, send all six.
  8. On the SQL Server, open open one of the .sql files.

  9. Open the Query menu and click SQLCMD Mode.
  10. Then execute the XenDesktop script.
  11. If SQLCMD mode was enabled properly then the output should look something like this:
  12. Back in Citrix Studio, click OK.
  13. In the Studio, under Configuration > Controllers, you should see both controllers.
  14. You can also test the site again if desired.

Studio – Slow Launch

From B.J.M. Groenhout at Citrix Discussions: The following adjustments can be made if Desktop Studio (and other Citrix management Consoles) will start slowly:

  • Within Internet Explorer, go to Tools – Internet Options – Tab Advanced – Section Security and uncheck the option Check for publisher’s certificate revocation

After adjustment Desktop Studio (MMC) will be started immediately. Without adjustment it may take some time before Desktop Studio (MMC) is started.

Registry setting (can be deployed using Group Policy Preferences):

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing
    • State“=dword:00023e00

Database Maintenance

View Logging Database

To view the contents of the Logging Database, in Studio, click the Logging node. On the right is Create Custom Report. See Citrix article CTX138132 Viewing Configuration Logging Data Not Shown for more info.

Enable Read-Committed Snapshot

The XenDesktop Database can become heavily utilized under load in a large environment. Therefore Citrix recommends enabling the Read_Committed_Snapshot option on the XenDesktop databases to remove contention on the database from read queries. This can improve the interactivity of Studio and Director. It should be noted that this option may increase the load on the tempdb files. See Citrix article CTX137161 How to Enable Read-Committed Snapshot in XenDesktop for configuration instructions.

Change Database Connection Strings

Sometimes the database connection strings need to be modified:

  • When moving the SQL databases to a different SQL server
  • When enabling mirroring after the databases have already been configured in Studio.

CTX140319 How to Migrate XenDesktop Database to New SQL Server has the correctly ordered list of PowerShell commands to change the database connection strings. Make sure PowerShell is running as administrator before running these commands.

XenApp/XenDesktop 7.8 adds set-applibdbconnection so make sure the commands include setting that DB connection too.  💡

Step 5 assumes Site, Monitoring, and Logging are one database so you’ll need to adjust the commands if those databases are split. In particular, change $cs in Set-LogDBConnection -DataStore Logging -DBConnection $cs to the Logging database. And change $cs in Set-MonitorDBConnection -DataStore Monitor -DBConnection $cs to the Monitoring database. The other commands don’t need to be changed.

Director Grooming

If XenDesktop is not Platinum Edition then all historical Director data is groomed at 7 days.

For XenDesktop/XenApp Platinum Edition, by default, most of the historical Director data is groomed at 90 days. This can be adjusted up to 367 days by running a PowerShell cmdlet.

  1. On a Delivery Controller, run PowerShell and run asnp Citrix.*

  2. Run Get-MonitorConfiguration to see the current grooming settings.
  3. Run Set-MonitorConfiguration to change the grooming settings.

Studio Administrators

Full Administrators

  1. In the Studio, under Configuration, click the Administrators node. The first time you access the node you’ll see a Welcome page. Feel free to check the box and then click Close.
  2. On the Administrators tab, right-click and click Create Administrator.
  3. In the Administrator and Scope page, specify a group (e.g. Citrix Admins or Help Desk) that will have permissions to Studio and Director. Click Next.
  4. On the Role page, select a role and then click Next. For example:
    • Full Administrator for the Citrix Admins group
    • Help Desk Administrator for the Help Desk group
    • Machine Catalog Administrator for the desktop team
  5. In the Summary page, click Finish.

Help Desk

  1. In the Studio, under Configuration, click the Administrators node. On the Administrators tab, right-click and click Create Administrator.
  2. In the Administrator and Scope page, specify a Help Desk group that will have permissions to Studio and Director. Click Next.
  3. On the Role page, select the Help Desk Administrator role and then click Next.
  4. In the Summary page, click Finish.
  5. When administrators in the Help Desk role log into Director, all they see is this.

    To jazz it up a little, add the Help Desk group to the read-only role.
  6. Right-click the Help Desk Administrator and click Edit Administrator.
  7. Click Add.
  8. In the Scope page, select a scope and click Next.
  9. In the Role page, select Read Only Administrator and click Next.
  10. In the Summary page, click Finish.
  11. Then click OK. Now Director will display the dashboard.

Provisioning Services w/Personal vDisk

From Considerations: Provisioning Services at Configure and manage Personal vDisk at The Provisioning Services Soap Service account must be added to the Administrator node of Studio and must have the Machine Administrator or higher role. This ensures that the PvD desktops are put into the Preparing state when the Provisioning Services (PVS) vDisk is promoted to production.

vCenter Connection

XenDesktop uses an Active Directory service account to log into vCenter. This account needs specific permissions in vCenter. To facilitate assigning these permissions, create a new vCenter role and assign it to the XenDesktop service account. The permissions should be applied at the datacenter or higher level. CTX214389 How to Define VMware vSphere User Privileges for XenApp and XenDesktop defines the minimum permissions needed for various activities in XenDesktop: MCS, PvS, Power Management, and AppDisks.  💡

AppDisks requires an additional permission: Virtual Machine > Configuration > Modify Device Settings.

For AppDisks, the read only role must be applied to the vCenter level. See Mark New at for details.  ?

Hosting Resources

A Hosting Resource = vCenter + Cluster (Resource Pool) + Storage + Network. When you create a machine catalog, you select a previously defined Hosting Resource, and the Cluster, Storage, and Network defined in the Hosting Resource object are automatically selected. If you need some desktops on a different Cluster+Storage+Network then you’ll need to define more Hosting Resources in Studio.

  1. In Studio, expand Configuration and click Hosting. Right-click it and click Add Connection and Resources.
  2. In the Connection page, select VMware vSphere as the Connection type.
  3. Enter https://vcenter01.corp.local/sdk as the vCenter URL. The URL must contain the FQDN of the vCenter server. Ensure the entered URL has /sdk on the end.
  4. Enter credentials of a service account that can log into vCenter.
  5. In the Connection name field, give the connection a name. Typically, this matches the name of the vCenter server.
  6. If you are not using Machine Creation Services and instead only need the vCenter connection for machine power management, change the Create virtual machines using selection to Other Tools.
  7. Click Next.
  8. If you see a message about the vCenter certificate, check the box next to Trust certificate and click OK.
  9. Enter a name for the hosting resource. Since each hosting resource is a combination of vCenter, Cluster, Network, and Datastore, include those names in this field (e.g. vCenter01-Cluster01-Network01-Datastore01).
  10. In the Cluster page, click Browse and select a cluster or resource pool.
  11. Select a network and click Next.
  12. On the Storage page, select a datastore for the virtual machines. Maximum flexibility is achievable if you only select one datastore per hosting resource. Create additional hosting resources for each datastore.
  13. If desired, change the selection for personal vDisk to use a different storage. Click Next.
  14. In the Summary page, click Finish.

Citrix Licensing Server


Upgrade Citrix Licensing to 💡

  1. Go to the downloaded Citrix Licensing build 16002 and run CitrixLicensing.exe.
  2. Click Upgrade.
  3. Click Finish.
  4. If you go to Programs and Features, it should now show version
  5. If you login to the license server web console, on the Administration tab, it shows it as version 11.13.1 build 16002.
  6. You can also view the version in the registry at HKLM\Software\Wow6432Node\Citrix\LicenseServer\Install.

Licensing Server HA using GSLB

From Dane Young – Creating a Bulletproof Citrix Licensing Server Infrastructure using NetScaler Global Server Load Balancing (GSLB) and CtxLicChk.ps1 PowerShell Scripts. Here is a summary of the configuration steps. See the blog post for detailed configuration instructions.

  1. Build two License Servers in each datacenter with identical server names. Since server names are identical, they can’t be domain-joined.
  2. Install identical licenses on all License Servers.
  3. Set the DisableStrictNameChecking registry key on all Citrix Licensing servers.
  4. Synchronize the certificate files located at C:\Program Files (x86)\Citrix\Licensing\WebServicesForLicensing\Apache\conf. They must be identical on all Licensing Servers.
  5. Download CtxLicChk.exe from and place on all Licensing Servers.
  6. Schedule the PowerShell script CtxLicChk.ps1 on all Licensing Servers. Get this script from the blog post linked above.
  7. Configure NetScaler:
    1. Configure GSLB ADNS services.
    2. Add wildcard Load Balancing service for each Citrix Licensing Server.
    3. Configure service TCP monitoring for ports 27000, 7279, 8082, and 8083.
    4. Create Load Balancing Virtual Server for each Licensing Server.
    5. Set one Load Balancing Virtual Server as backup for the other.
    6. Repeat in second datacenter.
    7. Configure GSLB Services and GSLB Monitoring.
    8. Configure GSLB Virtual Servers. Set one GSLB Virtual Server as backup for the other.
  8. Delegate the Citrix Licensing DNS name to the ADNS services on the NetScaler appliances.
  9. Configure Citrix Studio to point to the GSLB-enabled DNS name for Citrix Licensing.

Citrix License Server Monitoring

Citrix Licensing 11.13.1 and newer has historical usage reporting:  💡

  1. Run Citrix Licensing Manager from the Start Menu. Or use a browser to connect to https://MyLicenseServer:8083
  2. Use the drop-down menus to select a license type, select dates, and export to a .csv file.
  3. On the top right is a gear icon where you can set the historical retention period.

Lal Mohan – Citrix License Usage Monitoring Using Powershell

Jaroslaw Sobel – Monitoring Citrix Licenses usage – Graphs using WMI, Powershell and RRDtool. This script generates a graph similar to the following:


Remote Desktop Licensing Server

Install Remote Desktop Licensing Server

Do the following on your XenDesktop Controllers:

  1. In Server Manager, open the Manage menu and click Add Roles and Features.
  2. Click Next until you get to the Server Roles page. Check the box next to Remote Desktop Services and click Next.
  3. Click Next until you get to the Role Services page. Check the box next to Remote Desktop Licensing and click Next.
  4. Click Add Features if prompted.
  5. Then finish the wizard to install the role service.

Activate Remote Desktop Licensing

  1. After RD Licensing is installed, in Server Manager, open the Tool menu, expand Terminal Services and click Remote Desktop Licensing Manager.
  2. The tool should find the local server. If it does not, right-click All servers, click Connect and type in the name of the local server. Once the local server can be seen in the list, right-click the server and click Activate Server.
  3. In the Welcome to the Activate Server Wizard page, click Next.
  4. In the Connection Method page, click Next.
  5. In the Company Information page, enter the required information and click Next.
  6. All of the fields on the Company Information page are optional so you do not have to enter anything. Click Next.
  7. In the Completing the Activate Server Wizard page, uncheck the box next to Start Install Licenses Wizard now and click Finish. Since the session hosts will be configured to pull Per User licenses, there is no need to install licenses on the RD Licensing Server.
  8. In RD Licensing Manager, right-click the server and click Review Configuration.
  9. Ensure you have green check marks. If the person installing Remote Desktop Licensing does not have permissions to add the server to the Terminal Server License Servers group in Active Directory, ask a domain admin to do it manually. If you have the proper permissions, click Add to Group.
  10. Click Continue when prompted that you must have Domain Admins privileges.
  11. Click OK when prompted that the computer account has been added.
  12. Click OK to close the window.

Health Check

Andrew Morgan – New Free Tool: Citrix Director Notification Service: The Citrix Director Notification service sits on an edge server as a service (or local to the delivery controller) and periodically checks the health of:

  • Citrix Licensing.
  • Database Connections.
  • Broker Service.
  • Core Services.
  • Hypervisor Connections.

And if any of these items fall out of bounds, an SMTP alert is sent to the mailbox of your choice for action. The tool will also send “All Clear” emails when these items are resolved, ensuring you are aware when the service has resumed a healthy state.

Related Pages

45 thoughts on “Delivery Controller 7.8”

  1. Hello Carl,

    In our environment, there 2 Delivery controller and 2storefront servers. I was successfully upgraded storefronts and VDA version to 2308.However, citrix database was corrupted while upgrading Delivery controller. Citrix team asked us to create new site. Before proceeding the new site creation, have a few query.

    1) How can we map existed delivery group and machine catalog?
    2) what will be impact on current environment while migrating existed Delivery group and machine catalog?
    3)procedure to migrate delivery group and machine catalog

    Thank you,
    Parvati Bhagat.

  2. Hi Carl,

    I am in a fix with SCCM updates. So I have all the servers including the image on one OU. But when the SCCM updates patches, it goes througha reboot and once rebooted it looses the changes and it wants to restart again. Off course, this behaviour expected because the clones loose once they are rebooted.

    Any suggestion how to structure SCCM updates only to base images and Update machines to propagate updates to clones.

    1. Separate Collections. Software Updates disabled on the Collections containing linked clones, but enabled on the Master Image Collection.

      1. Thanks Carl. What do you think about the Citrix Connector 3.1? It does not say it can do OS patches but it does say software updates. Have you ever used the Connector?

        Whats about AV? Because AV updates like 6 times a day. I did see though on Symantec that they say do it every 14 days or so for non-persistent machines.

        1. I have never tried Citrix Connector in production, so I don’t know if it works well or not.

          When a non-persistent machine boots, it should download the latest AV definitions, even if it’s the same definitions from the last time it booted. Symantec has specific guides for non-persistent. You’re welcome to update your Catalogs more frequently to reduce the AV definition download resource consumption.

  3. Hi Carl, This is great but If I do create the Citrix farm with Sysadmin permission on my AD id, in case of ID password change or ID disabled will it impact anything on the Farm>? Do not we have an option to use SQL account ?

    1. Sorry, Citrix uses Controller computer accounts to connect to SQL. Your account with SA is only for initial setup and upgrades. It can be revoked once installed.

  4. Hi Carl,

    I noticed that I am not able to start, shutdown any VDI from Studio and director. I can start/stop VDI from vcenter and it get registered in delivery controller. My connection to vcenter is fine, I am able to add new VDI from the vcenter but it shows unknown connection. My XenDesktop version is 7.8 which I recently upgrade from 7.6. Please help.


    1. Is this a Manual catalog? If so, did you select the option for “machines that are power managed” and then used the “Add VMs” button?

      Did this problem just start? It used to work?

      1. Hi Carl,

        We have Manual catalog. I saw this today. I just restarted Citrix Broker service and issue seems to be resolved now. I can start/stop vdi from Studio/Director now.

        I have one more question regarding Zones and Director. On Citrix Studio-Zones all catalog, hosts, ddc are in 00000000-0000-0000-0000-00000000 zone. Do we need to move it to primary.

        On my director dashboard I see message Cannot retrieve the data “Data source unresponsive or reported an error. View Director server event logs for further information” but I am able to see the session information. Please suggest.


          1. I can see the Zone node only thing is all catalog and host are in 00000000-0000-0000-0000-00000000 and ddc are in primary. Should I move all catalog and hosts to primary zone?


          2. Thanks Carl. Shall I move all the catalogs and host at one time or one by one is OK? Is it going to impact anything at users end? Once I move it to primary, still do I need to remove the line from database? I think that is NULL line which is in MonitorData.DesktopGroup and that is the reason Director is not able to get anything from that table and throw the message on Dashboard.

            Is it the same NULL table entry is showing in Zone.


          3. You can move all of them. Zones are primarily so XenDesktop knows which Controllers to uses for Hosting Connections and VDA connections.

          4. Hi Carl,

            I moved all catalog and host to Primary Zone. I am not able to find 00000000-0000-0000-0000-000000000000 in MonitorData.DesktopGroup table. But still I see error on director. Cannot retrieve the data “Data source unresponsive or reported an error. View Director server event logs for further information” but I am able to see the session information.

            I also get Event ID 3 in application log.

            Log Name: Application
            Source: Citrix Director Service
            Date: 8/24/2016 4:02:25 PM
            Event ID: 3
            Task Category: None
            Level: Error
            Keywords: Classic
            User: N/A

            The description for Event ID 3 from source Citrix Director Service cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

            If the event originated on another computer, the display information had to be saved with the event.

            The following information was included with the event:

            The data source ‘Unknown error.’ (‘http://ddcname/Citrix/Monitor/OData/v3’) responded with an unexpected error.


  5. Hey Carl,

    I have two XD 7.6 FP3 delivery controllers, 2 sf 3.5, license server & 2 Netscaler. I would like to install 2 separate w2k12 servers for XD 7.8 and add those to XD 7.6 sites and migrate all VDI and Apps to XD 7.8 and remove XD 7.6 from the environment.

    All VDI’s and application server are manually configured. No MCS/PVS is used.

    Do you have any documents/steps to explain step by step installation and configuration for this scenario.


    1. When you say XD 7.8, do you mean the Controllers? I suspect you would have to build one of them as 7.6 and then perform an in-place upgrade to 7.8 so the database is upgraded. Then add the other 7.8 Controller. All VDAs would need their ListOfDDCs change to the 7.8 Controllers. And StoreFront needs to be changed to point to the new Controllers. Then you can remove the 7.6 Controllers.

  6. Hi Carl,

    I currently have a production 7.8 install with single delivery controller +sql express and second delivery controller. How would I go about migrating the sql portion to a full blown sql 2008R2 with mirror to a second 2008R2. Is there a link I can follow.


        1. It tells you how to change the SQL connection strings on the Controllers.

          Export the database from Express and move it to your Primary SQL Server. Enable mirroring (High Safety) for the database. You can use your existing SQL Express as the Witness server. Then use the article to set the connection strings, including the FailoverPartner attribute.

  7. I’m looking for a way to determine if my controller sizing for our farm is accurate.
    Either a way to get metrics from a controller server with one user connecting, then with 5, 10, 20 users, etc.
    This way we can ensure proper scaling is accomplished and we don’t overload our controller servers, causing any type of an outage.
    Do you have anything that covers this?

      1. Thanks for quick reply.
        Unfortunately, I’m not 100% sure on the per second connection at the moment. I’d have to look at logon times and counts to get that detail.

        Currently in our systems ram (8GB with 30 user sessions connected) is at 73% used by many different Citrix/Controller functions and services, and I’m really looking to get a better handle on what we need to do measure up.

        Also, this is for a 7.6 farm. I found the 5.0 document, but wasn’t sure it would really be the same as it’s 2.x versions older, thus newer enhancements and features may skew my numbers.

        I’ll try to get on the other information and get a more accurate count per second and go from there.
        I’ll also look at the handbook again and see if I can find out where I missed the sizing info.


        1. What is maximum users?

          Citrix says a controller with 4 vCPU and 8 GB RAM can handle 5,000 concurrent users.

          1. Our configuration is a mix of XenApp 7.6 and XenDesktop 7.6 vm’s, hosted across 2 Controllers, running 8GB ram, and 4vcpu (4 sockets x 1 core)

            We’re planning for our max user count to be around 4000 users in the next 90 days, which is what is prompting me to start looking into this. 🙂

  8. Hi I am unable to connect to Citrix studio as it is asking re-enter delivery controller address. Before this I have cloned the prodcution DC server and moved to other network. So it seems like the new cloned server using DB which is configured for production. How can i change the DB source . I am not getting any option i studio console.

    1. Error: valid delivery controller services were not found at specified location . database could not be contacted

    2. has the PowerShell commands to change the database connection strings. If you need new databases, set them to null. Or this is a new Controller, set them to null and Studio will prompt you for info on joining an existing farm.

      Cloning of Controllers is never a good idea. It should now have a new SID and that SID doesn’t have access to the database.

  9. Hi Carl, is there an equivalent file in XA7.x for mf20.dsn?
    In other words, where does the XA7.x Servers save the DB details they connect to?

    1. Only Controllers need SQL. VDAs do not.

      Use PowerShell: Get-Command *DBConnection*

      For example: Get-BrokerDBConnection

      Or in registry at HKLM\Software\Citrix\XDServices – each one has a connection string.

  10. question Carl for DR site

    connection between primary and secondary site same range of ips

    2 domain controllers on primary site and 1 on dr site, the domain controller with ca role on the primary VMware replica on the dr site since is 2012r2

    Vceneter primary site with SRM replica on the dr site

    Standalone database at both Primary and dr site

    sf1 and sf2 on primary site sf1 on dr site , 1 store for primary site same store for dr site

    2 delivery controllers( 2 xenapp) for primary and Same Delivery Controler ( 1 xenapp) on the dr site

    Seperate Vcenter in DR site

    separate netscaler on the dr site configured for the site store

    Same delivery group and mcs golden image for the dr site

    Same dns entry for the sf and netscaler on the dr site

    citrix license server/ rdsh license server Vmware replica on the dr site

    profiles fileserver Vmware replica on the dr site

    this is only in the case of sudden great damage or suffering event and primary site is not available for more than 1 day , only then dr site will be up
    can it work ?

  11. question Carl for DR site
    IPSec connection between primary and secondary site different range of ips

    2 domain controllers on primary site and 1 on dr site, the domain controler with ca role on the primary hyperv replica on the dr site since is 2012r2

    scvmm primary site with hyper v replica on the dr site

    sql with scvmm and citrix databases hyper v replica on the dr site, manual dns entry ip change for the cname instances

    sf1 and sf2 on primary site sf3 on dr site , 1 store for primary site second store for dr site

    4 delivery controllers( 2 xenapp 2 xendesktop) for primary and 2 on the dr site

    separate netscaler on the dr site configured for the dr site store

    separate delivery group and mcs golden image for the dr site

    seprate dns entry for the sf and netscaler on the dr site

    citrix license server/ rdsh license server hyper v replica on the dr site

    profiles fileserver hyper v replica on the dr site

    Bare in mind this is only in the case of catastrophic event and primary site is not available for more than 1 day , only then dr site will be up
    can it work ???

    1. You didn’t mention if the farms/server groups are stretched across DCs or are separate in each DC.

      How is DNS failover handled?

      Are you using MCS? If so, you can’t really recover or failover linked clones. Instead they must be re-created on the new Hyper-V infrastructure.

      1. the farms are stretched across dc, the golden images will be recreated indeed , they wont be cloned and they will be on a separate delivery group, dns failover will be dealt manually i think both internal and external since Dr site will be used only in case of main site going away for 1 day, so downtime will for sure happen ,

  12. Any good resource to read about upgrading from 7.x to 7.8 in terms of controller, store front, licensing, SQL and VDA?

Leave a Reply

Your email address will not be published. Required fields are marked *