Delivery Controller 7.12 and Licensing

Last Modified: Aug 18, 2021 @ 7:35 am

Navigation

💡 = Recently Updated

Upgrade

If you are performing a new install of XenApp/XenDesktop Controller, then skip to the next section.

You can upgrade directly from any Delivery Controller version 5.6 or newer.

Before upgrading, if you have a standalone Citrix Licensing Server, upgrade it to 11.14.0.1 build 18001.

During the upgrade of Delivery Controller, be aware that a database upgrade is required. Either get a DBA to grant you temporary sysadmin permission, or use Citrix Studio to generate SQL scripts that a DBA must then run in SQL Studio.

  1. If StoreFront is installed on the Controller, and if the Citrix SCOM Agent for StoreFront is installed, stop the Citrix MPSF Agent service.
  2. Close PowerShell/Consoles. Make sure all Citrix Consoles and PowerShell consoles are closed. StoreFront won’t upgrade if any are running. If StoreFront fails, then the StoreFront configuration is wiped out.
  3. Snapshot. If StoreFront is on the Controller, take a snapshot before attempting the upgrade.
  4. Another option is to export the StoreFront configuration so you can restore it later if something goes wrong.
  5. Run AutoSelect.exe from the XenApp/XenDesktop 7.12 ISO.
  6. Click Studio and Server Components.
  7. In the Licensing Agreement page, select I have read, understand, and accept the terms, and click Next.
  8. In the Ensure Successful Upgrade page, read the steps, check the box next to I’m ready to continue, and click Next.
  9. In the Firewall page, click Next.
  10. In the Summary page, click Upgrade.
  11. Click Close if prompted to restart.
  12. In the Call Home page, make a selection. If participating, click Connect, login, and then click Next.
  13. In the Finish page, click Finish.
  14. After Citrix Studio launches, if you have sysadmin permissions on SQL, then click Start the automatic Site upgrade. If you don’t have full permission, then get a DBA to help you, click Manually upgrade this site, and follow the instructions.

  15. If you choose to Manually upgrade this site, and if you are upgrading from 7.11, then note that there’s no upgrade for the Logging Database schema, so there won’t be any SQL script for the Logging database.

  16. After all Controllers and VDAs are upgraded, right-click the Catalogs, and click Upgrade Catalog. Note: 7.9 is the newest minimum functional level. You won’t see an option for 7.12. If your Catalogs are already set to VDA version 7.9, then no upgrade is needed.


  17. Then do the same for the Delivery Groups. Note: 7.9 is the newest minimum functional level. You won’t see an option for 7.12. If your Delivery Groups are already set to VDA version 7.9, then no upgrade is needed.


Other XenApp/XenDesktop components can also be in-place upgraded:

  • StoreFront
  • Director
  • VDAs
  • AppDNA
  • Provisioning Services
  • SCOM Management Packs
  • Session Recording
  • Federated Authentication Service

New Install Preparation

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

SQL Databases

  • Citrix CTX209080 Database Sizing Tool for XenDesktop 7
  • Citrix article CTX114501 – Supported Databases for XenApp and XenDesktop Components
  • There are typically three databases: one for the Site (aka farm), one for Logging (audit log) and one for Monitoring (Director).
    • The name of the monitoring database 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. sysadmin permissions can be granted temporarily and revoked after installation.
    • As an alternative, you can use Citrix Studio to create SQL scripts and then run those scripts on the SQL server. In that case, the person running the scripts only needs 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.
  • If SQL 2016 or newer, create a Basic Availability Group.
  • If SQL 2014 or older, 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 Citrix Studio on a different machine that has GPMC installed.

vSphere

  • 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. From Local Host Cache sizing and scaling at Citrix Docs:
    1. For LHC LocalDB, assign the Controller VMs a single socket with multiple cores.
    2. Add two cores for LHC.
    3. Add at least three more Gigs of RAM and watch the memory consumption.
    4. Since there’s no control over LHC election, ensure all Controllers have the same specs.
  3. Make sure the User Right Log on as a service includes NT SERVICE\ALL SERVICES or add NT SERVICE\CitrixTelemetryService to the User Right.
  4. On two Delivery Controllers, install the Delivery Controller software from the XenApp/XenDesktop 7.12 ISO. Go to the extracted ISO and run AutoSelect.exe.
  5. Click Start next to either XenApp or XenDesktop. The only difference is the product name displayed in the installation wizard.
  6. On the left, click Delivery Controller.
  7. In the Licensing Agreement page, select I have read, understand, and accept, and click Next.
  8. In the Core Components page, you can install all components on one server, or on separate servers. Splitting them out is only necessary in large environments, or if you have multiple farms and want to share the Licensing, StoreFront, and Director components across those farms.
  9. In the Features page, uncheck the box next to Install Microsoft SQL Server 2014 SP1 Express, and click Next.
  10. In the Firewall page, click Next.
  11. In the Summary page, click Install.
  12. In the Call Home page, make a selection, click Connect, enter your MyCitrix credentials, and then click Next.
  13. In the Finish page, click Finish. Studio will automatically launch.
  14. 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.

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, if you are building two Controllers, click Select near the bottom of the same page.
  5. Click Add.
  6. Enter the FQDN of the second Controller and click OK. Note: the Delivery Controller software must already be installed on that machine.
  7. Then click Save.
  8. If you don’t have sysadmin permissions, change the selection to Generate scripts to manually set up databases on the database server. Change the database names if desired, and click Next.
  9. In the Summary page, click Generate scripts.
  10. A folder will open with six scripts. Edit each of the scripts.
  11. 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.

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

  14. Open the Query menu, and click SQLCMD Mode.
  15. Then execute the script.
  16. If SQLCMD mode was enabled properly, then the output should look something like this:
  17. If you have a mirrored database, run the second script on the mirror SQL instance. Make sure SQLCMD mode is enabled.
  18. Repeat for the Logging_Principal.sql script.
  19. You’ll have to enable SQLCMD Mode for each script you open.


  20. Repeat for the Monitoring_Principal.sql script.
  21. Once again enable SQLCMD Mode.


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

  23. Back in Citrix Studio, click the Continue database configuration and Site setup button.
  24. In the Databases page, enter the SQL server name, and instance name, and click Next.

  25. 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.
  26. XenApp/XenDesktop 7.12 requires the newest Licensing Server. If your server isn’t compatible, leave it set to localhost and fix it later.
  27. If the Certificate Authentication appears, select Connect me, and click Confirm.
  28. Then select your license, and click Next.
  29. In the Summary page, if your databases are mirrored, each database will show high availability servers, and the name of the Mirror server. Click Finish.

  30. It will take some time for the site to be created.

Verify Database Mirroring

If your database is mirrored, when you run asnp citrix.* and then 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 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 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. Repeat for the remaining script files.
  13. Back in Citrix Studio, click OK.
  14. In Citrix Studio, under Configuration > Controllers, you should see both controllers.
  15. 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

Local Host Cache

If you 5,000 or fewer VDAs, you can enable Local Host Cache (LHC) instead of Connection Leasing. LHC allows new sessions to be started even if SQL is unavailable.

From Local Host Cache sizing and scaling at Citrix Docs:  💡

  1. For LHC LocalDB, assign the Controller VMs a single socket with multiple cores.
  2. Add two cores for LHC.
  3. Add at least three more Gigs of RAM and watch the memory consumption.
  4. Since there’s no control over LHC election, ensure all Controllers have the same specs.
  5. The Docs article has scripts for monitoring LHC performance.

For Windows Server 2008 R2 Controllers, PowerShell 3, or newer, is required. See LHC XD 7.12 and W2K8SR2 SP1 at Citrix Discussions.  💡

Local Host Cache can be enabled by running some PowerShell commands.

asnp citrix.*
Set-BrokerSite -ConnectionLeasingEnabled $false
Set-BrokerSite -LocalHostCacheEnabled $true

George Spiers Local Host Cache XenApp & XenDesktop 7.12 shows the Event Log entries when LHC is enabled.

Database Maintenance

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
  • For AlwaysOn Availability Groups, to add MultiSubnetFailover to the SQL connection strings
  • For SQL mirroring, to add Failover Partner to the SQL connection strings

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.

Here are the DB Connections that must be changed. This list might be longer than the article. When using the article, make sure you include all of the DB Connections shown below. You can get the full list of database commands by running Get-Command Set-*DBConnection. When changing the DB connections, AdminDBConnection must be the last to be set to NULL, and the first to be configured with the new connection string.

Set-ConfigDBConnection -DBConnection $null
Set-AppLibDBConnection –DBConnection $null    #7.8 and newer
Set-OrchDBConnection –DBConnection $null      #7.11 and newer
Set-TrustDBConnection –DBConnection $null     #7.11 and newer
Set-AcctDBConnection -DBConnection $null
Set-AnalyticsDBConnection -DBConnection $null
Set-HypDBConnection -DBConnection $null
Set-ProvDBConnection -DBConnection $null
Set-BrokerDBConnection -DBConnection $null
Set-EnvTestDBConnection -DBConnection $null
Set-SfDBConnection -DBConnection $null
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null   #Monitoring Database
Set-MonitorDBConnection -DBConnection $null                      #Site Database
Set-LogDBConnection -DataStore Logging -DBConnection $null       #Logging Database
Set-LogDBConnection -DBConnection $null                          #Site Database
Set-AdminDBConnection -DBConnection $null -force

Director Grooming

If XenDesktop is not Platinum Edition, then all historical Director data is groomed at 30 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.

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.

Maintain Logging Database

Citrix CTX215069 Troubleshooting and managing Oversized Configuration Logging database: The article’s queries can be used to determine the number of configuration operation types performed by XenDesktop Administrator, and to analyze the content of the Configuration Logging database when it is considered oversized. A grooming query is also provided to delete data older than a specified date.

Export/Import Configuration  💡

Ryan Butler has a PowerShell script that can export configuration from one XenDesktop farm and import it to another.

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 Delegated Administration 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, Browse to a group (e.g. Citrix Admins) that will have permissions to Studio and Director. These groups typically have access to all objects so select the All scope. Alternatively, you can create a Scope to limit the objects. 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, Browse to a Help Desk group that will have permissions to Studio and Director. Select the All scope. And 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 Citrix Docs: 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.

Customer Experience Improvement Program

XenApp/XenDesktop 7.12 enables CEIP by default. If desired, you can disable it in Citrix Studio:

  1. On the left, go to the Configuration node.
  2. On the right, switch to the Product Support tab.
  3. Click End.
  4. Click Yes.

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.

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, for Connection type, select VMware vSphere.
  3. Notice there’s a Learn about user permissions blue link to an article that describes the necessary permissions.
  4. 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.
  5. Enter credentials of a service account that can log into vCenter.
  6. In the Connection name field, give the connection a name. Typically, this matches the name of the vCenter server.
  7. 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. If you intend to use MCS, leave it set to Studio Tools.
  8. Click Next.
  9. If you see a message about the vCenter certificate, check the box next to Trust certificate, and click OK.
  10. Note: this vCenter certificate thumbprint is stored in the XenDesktop database, and is not updated when the vCenter certificate changes. See CTX217415 Cannot connect to the VCenter server due to a certificate error for instructions on manually updating the database with the new certificate thumbprint.  💡
  11. In the Storage Management page, click Browse and select a vSphere cluster.
  12. Select Use storage shared by hypervisors.
  13. If you have sufficient disk space on each ESXi host, also select Optimize temporary data on available local storage. From Mark Syms at XA 7.9 MCS with RAM Caching at Citrix Discussions: “If you use just MCS caching to local storage then the VM is not agile at all and cannot be moved even when powered off as it has a virtual disk permanently associated with a single host.”
  14. From Martin Rowan at XA 7.9 MCS with RAM Caching at Citrix Discussions: for the temporary cache disk, “Don’t format it, the raw disk is what MCS caching uses.”
  15. Click Next.
  16. In the Storage Selection page, OS and Personal vDisk must be selected on at least one datastore. For maximum flexibility, only select one datastore. To select additional datastores, run this wizard again to create a separate Hosting Resource.
  17. If you selected the temporary data on local storage option, on the bottom, click Select, and choose the datastores you want to use for disk caching. By default, all local datastores are selected. Click Next when done.
  18. In the Network page, enter a name for the hosting resource. Since each hosting resource is a combination of vCenter, Cluster, Network, and Datastores, include those names in this field (e.g. vCenter01-Cluster01-Network01-Datastore01).
  19. Select a network and click Next.
  20. In the Summary page, click Finish.
  21. If you have multiple datastores for your VDAs, run the wizard again.
  22. You can use the existing vCenter connection.
  23. This time, select a different datastore.
  24. Give it a name that indicates the chosen datastore.
  25. When you create a Catalog, select the Hosting Resource for the datastore where you want the VDAs to be placed. Create additional Catalogs for each datastore. You can then combine the Catalogs into a single Delivery Group.
  26. Later in the Catalog wizard, you’re given an option to enable caching and select a cache size. This is similar to Provisioning Services option “Cache in RAM with overflow to disk”.

Citrix Licensing Server

Upgrade

XenApp/XenDesktop 7.12 comes with 11.14.0.1 build 18001

If you have a standalone Licensing Server, upgrade it to Citrix Licensing 11.14.0.1 build 18001 if it isn’t already.

  1. Go to the downloaded Citrix Licensing 11.14.0.1 build 18001 and run CitrixLicensing.exe.
  2. In the Subscription Advantage Renewal page, make a selection, and click Next.
  3. In the Upgrade page, click Upgrade.
  4. Click Finish.
  5. If you go to Programs and Features, it should now show version 12.1.0.18001.
  6. If you login to the license server web console, on the Administration tab, it shows it as version 11.14.0 build 18001.
  7. You can also view the version in the registry at HKLM\Software\Wow6432Node\Citrix\LicenseServer\Install.

Citrix License Server Open Redirect Vulnerability

CTX219885 Open Redirect Vulnerability in Citrix License Server for Windows and Citrix License Server VPX: This vulnerability can be addressed with a manual configuration change. Citrix has produced a Knowledge Center CTX220379 article that provides information on how to configure the License Server for Windows and License Server VPX to prevent this vulnerability. Citrix recommends that customers review this document and apply the manual configuration changes to affected License Server deployments.

CTX220379 HTTP Open Redirect Vulnerability in License Server describes how to configure Citrix License Server to prevent this vulnerability.

Citrix License Management Service

New in 11.14.0.1 is the Citrix License Management Service. This service helps you avoid prohibited practices:

  • Duplication of licenses outside a Disaster Recovery (DR) environment
  • Use of legacy licenses for new product versions
  • Use of rescinded licenses

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 http://support.citrix.com/article/CTX123935 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. The Update Licenses tab lets you check for renewals and download them.
  4. On the top right is a gear icon where you can set the historical retention period and configure SA license auto-renewal.

Jonathan Medd Monitor Citrix License Usage With PowerShell.

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:

CtxLicUsage-1d_

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. In the Installation Type page, select Role-based or feature-based installation.
  3. Click Next until you get to the Server Roles page. Check the box next to Remote Desktop Services, and click Next.
  4. Click Next until you get to the Role Services page. Check the box next to Remote Desktop Licensing, and click Next.
  5. Click Add Features if prompted.
  6. 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 (or Remote Desktop 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.
  3. Once the local server can be seen in the list, right-click the server and click Activate Server.
  4. In the Welcome to the Activate Server Wizard page, click Next.
  5. In the Connection Method page, click Next.
  6. In the Company Information page, enter the required information, and click Next.
  7. All of the fields on the Company Information page are optional, so you do not have to enter anything. Click Next.
  8. 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.
  9. In RD Licensing Manager, right-click the server, and click Review Configuration.
  10. 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.
  11. Click Continue when prompted that you must have Domain Admins privileges.
  12. Click OK when prompted that the computer account has been added.
  13. Click OK to close the window.

XenApp/XenDesktop Health Check

Sacha Tomet Finally 1.0 – but never finalized!: XenApp & XenDesktop 7.x Health Check script has now Version 1.0.

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.

Matt Bodholdt XenDesktop 7.x Controller Service Status Script at CUGC – PowerShell script that checks the following:

  • Lists Controllers with boot time
  • Licensing status
  • Service status on each Controller
  • DB Connections
  • Controller Available Memory
  • Hypervisor Connections Status

Related Pages

31 thoughts on “Delivery Controller 7.12 and Licensing”

  1. Hi Carls,

    We have created the site in Xenapp 7.12 and hosted its database on one of SQL server. Our Database team is testing ” SQL Always availability ” for redundancy in environment.So they are testing to move the database on back up SQL servers in case if our primary SQL server goes done. They are not taking care of LHC perspective , they are just testing the SQL always available. When they moved the database to other SQL servers, after that we are not able to access the SITE with error ” Database reject the connection “.

    My question here is that is ” Citrix is compatible with SQL server always on clusters.”

    I have gone through the XenApp 7.12 database documents and found one line that ” Installing a Controller on a node in an SQL clustering or SQL mirroring installation is not supported.”

    Please help me with this.

      1. Hi Carls,

        Our SQL team have configured Always On SQL availability. They have moved the database to other SQL server and asked citrix team to check if the application is launching successfully or not.

        Citrix team run the power shell command to check database connectivity. We get two results first one is “OK” and second one is ” InvalidDBConfigured” . Also I just want to confirm how I can verify the database connectivity and What is “InvalidDBConfigured” means.

        Also how to verify if the application that is launched is through connection leasing or Database.

        1) PS C:\Windows\system32> Test-ConfigDBConnection -DBConnection “Server=twsevllistener;Initial Catalog =CitrixXA_712site; Integrated Security = True”

        ServiceStatus ExtraInfo
        ————- ———
        OK {[Server.Version, 11.0.6020.0], [Server.IsClustered, False], [Database.Status, Normal], [Database.Re..

        2) PS C:\Windows\system32> Test-ConfigDBConnection -DBConnection “Server=twsevllistener;Initial Catalog =CitrixXA_712Monitoring; Integrated Security = True”

        ServiceStatus ExtraInfo
        ————- ———
        InvalidDBConfigured {[Server.Version, 11.0.6020.0], [Server.IsClustered, False], [Database.Status, Normal], [Datab…
        .

        1. Hi Carls,

          Our SQL team have configured Always On SQL availability. They have moved the database to other SQL server and asked citrix team to check if the application is launching successfully or not.

          Citrix team run the power shell command to check database connectivity. We get two results first one is “OK” and second one is ” InvalidDBConfigured” . Also I just want to confirm how I can verify the database connectivity and What is “InvalidDBConfigured” means.

          Also how to verify if the application that is launched is through connection leasing or Database.

          1) PS C:\Windows\system32> Test-ConfigDBConnection -DBConnection “Server=twsevllistener;Initial Catalog =CitrixXA_712site; Integrated Security = True”

          ServiceStatus ExtraInfo
          ————- ———
          OK {[Server.Version, 11.0.6020.0], [Server.IsClustered, False], [Database.Status, Normal], [Database.Re..

          2) PS C:\Windows\system32> Test-ConfigDBConnection -DBConnection “Server=twsevllistener;Initial Catalog =CitrixXA_712Monitoring; Integrated Security = True”

          ServiceStatus ExtraInfo
          ————- ———
          InvalidDBConfigured {[Server.Version, 11.0.6020.0], [Server.IsClustered, False], [Database.Status, Normal], [Datab…

          1. To test monitoring database, run Test-MonitorDBConnection -DataStore monitor -DBConnection “Server=twsevllistener;Initial Catalog =CitrixXA_712Monitoring; Integrated Security = True”

            The Monitor DB connection points to the main Site DB. Inside this connection is a Datastore connection for the actual Monitoring database.

  2. Hi Carls,

    Our database team is testing ‘ SQL always available’ for citrix environment. They are testing to move all three databases that we have created in XenApp 7.12 move to secondary SQL server if primary SQL server goes down. When they are moving the database to secondary SQL server our Citrix Studio stop responding and giving error. I just want to confirm that is Citrix is compatible with SQL server always on clusters ? I have gone through XenApp 7.12 database document and is written in the document that “Note: Installing a Controller on a node in an SQL clustering or SQL mirroring installation is not supported.”.

    Could you please help whether Citrix is compatible with SQL server always on clusters ?

    1. Cluster is supported. But AlwaysOn Availability Group or Basic Availability Group or Mirroring are preferred due to their fast failover. If you’re seeing Studio issues when failing over, you might have to call support.

  3. Hi Carl,

    I have a XenDesktop 7.12 environment with stand alone workstations & servers, and also PVS servers on VMware 6. All was installed & set up using the same service account….Windows, Citrix, SQL DB, etc. and it is the main site admin account. I know delivery controllers and it looks like PVS servers have computer account connections to SQL from your other posts. But I need to change this service account password, and when this was attempted a month ago, everything stopped working and after troubleshooting for a while I had to revert back. What all should I look for to correct when I try to change it again? Since the Delivery Controllers and PVS servers use computer accounts for SQL, I’m confused as to why everything tanked like it did. Thanks!

    1. XenDesktop uses computer accounts for SQL.

      PvS uses a service account for SQL. Run the PvS Config Wizard to change the password.

      XenDesktop uses a service account for vCenter. Go to Studio > Configuration > Hosting, edit the Connection.

  4. Carls your question was >>> What is the latency between the two datacenters? If a metro cluster, then just treat it like one datacenter. If not, then work with a Citrix Partner to discuss the multi-datacenter design.

    We are using Dedicated leased line MPLS b/w two data centers so latency would not be a issue here. Could you please share some link or document from where I can fetch the information how to divide the citrix environment b/w two data centers.

    1. If you have a metro cluster, then there’s no dividing. Just do VMware server affinity rules to put the VMs on different hosts in the cluster.

      If they are separate vSphere clusters, then put different VMs on different clusters.

      Are the VLANs stretched across both datacenters? Internet VLAN too?

      You only need to worry about dividing Citrix into zones when there is 10+ms latency, or there are different IPs in each datacenter.

      I strongly recommend working with a consultant. Multi-datacenter is a complex topic.

  5. Hi , I am currently involved in a project of upgrading Citrix XenDesktop 5.6 , PVS 5.6 to Citrix XenDesktop 7.12 and PVS 7.12. Can i know where can i get some information or reference guide for rollback if the upgrade fail ? Citrix provide the steps and process to upgrade but i can’t find any for rollback . Please advise

      1. Hi Carl , thanks for your prompt replied. Please advise whether below process for rollback is correct based on my understanding .

        1. Shut down all the VDI machines
        2. Restore Database
        3. Revert VMs Snapshot
        4. Power up all the VDI machines

          1. Hi Carls,

            Good Morning.

            Our client has proposed to divide the citrix environment b/w two data centers to avoid failover/disaster purpose. I means divide the Netscaler, Storefront servers; Delivery controllers servers in two data centers. Also if the servers configured for a desktop/application is total 10, then 5 will be hosted on one data centers and remaining 5 will be hosted on other data centers. Is there any document I can follow how we can distribute the environment in two data centers, any recommendations. Please guide me on this.

          2. What is the latency between the two datacenters? If a metro cluster, then just treat it like one datacenter. If not, then work with a Citrix Partner to discuss the multi-datacenter design.

  6. Carl…May i ask a question…

    Is there a way i if i have three RDP servers from which i deploy an app that is load balanced that i can assign a user a desktop on a specific one of those three servers rather than letting xendesktop choose for me which server?

    Basically i want to have:

    MYAPP – load balanced on all RDP1, RDP2 & RDP3
    Desktop one – RDP1
    Desktop two – RDP2
    Desktop three – RDP3

    I do this currently on Xenapp 6.5 and we are in the middle of an upgrade to Xendesktop 7.12

    1. Yes. Add a tag to the machine. Edit the Delivery Group. On Desktops page, add a desktop, and specify the tag.

        1. By RDP, do you mean VDA?

          You can publish a different desktop for each VDA and the user can select the icon for the machine they want.

  7. Hi Carl,

    Do you reckon with the introduction of the LHC, this is now the time to start making use of the Zone’s feature for Multi-Sites, or would you still recommend, Separate Sites.

    Thanks,

  8. upgraded from 7.11 to 7.12 and due to DB permissions need to do the manual method of generating scripts. However it doesn’t generate the logging scripts just the site and monitoring db ones. So the logging is still at schema version 7.11. Is this expected? seems a bit odd not to up the revision to match even if there are no changes.

    1. I just checked a database that was upgraded without the scripts and the version is 7.11. So I guess this is normal.

Leave a Reply

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