VMware Horizon Connection Server 2306 (8.10)

Last Modified: Aug 4, 2023 @ 4:39 am

Navigation

This post applies to all VMware Horizon versions 2006 (aka 8.0) and newer.

💡 = Recently Updated

Change Log

Upgrade

If you are performing a new install, skip to Install Horizon Connection Server.

Notes regarding upgrades:

  • For supported upgrade paths (which version can be upgraded to which other version), see VMware Interoperability Matrix.
  • Horizon 7 license key does not work in Horizon 2006 (8.0) and newer. You’ll need to upgrade your license key to Horizon 8.
  • Horizon 8.x no longer supports Horizon Clients 5.x and older. 💡
  • According to VMware 78445 Update sequence for Horizon 7.X and its compatible VMware products, App Volumes Managers are upgraded before upgrading Connection Servers.
  • Upgrade all Connection Servers during the same maintenance window.
    • Horizon Agents cannot be upgraded until the Connection Servers are upgraded.
    • Horizon 2006 (8.0) and newer do not support Security Servers. The replacement is Unified Access Gateway.
    • Composer is deprecated in Horizon 2006 (8.0) and newer. Composer was removed from Horizon 2012 (8.1) and newer. All editions of Horizon 2006 (8.0) and newer support Instant Clones. See Modernizing VDI for a New Horizon at VMware Tech Zone for migration instructions.
    • Downgrades are not permitted.
      • You can snapshot your Connection Servers before beginning the upgrade. To revert, shut down all Connection Servers, then revert to snapshots.
    • For Cloud Pod Architecture, you don’t have to upgrade every pod at once. But upgrade all of them as soon as possible.
    • All Connection Servers in the pod must be online before starting the upgrade.
    • It’s an in-place upgrade. Just run the Connection Server installer and click Next a couple times.
    • Once the first Connection Server is upgraded, Horizon 2006 (8.0) and newer lets you upgrade the remaining Connection Servers concurrently.
    • After upgrading all Connection Servers to Horizon 2012 (8.1) or newer, see VMware 80781 Knowledge DML scripts for data population of new columns in view Events Database to backfill the Events Database with column data to improve Events query performance.
  • Upgrade the Horizon Group Policy template (.admx) files in sysvol.
  • Upgrade the Horizon Agents.
  • DEM Console should not be upgraded until all DEM Agents are upgraded.
  • Upgrade the Horizon Clients.
    • Horizon Clients can be upgraded anytime before the rest of the infrastructure is upgraded.

Install/Upgrade Horizon Connection Server

The first Horizon Connection Server must be a Standard Server. Subsequent Horizon Connection Servers are Replicas. Once Horizon Connection Server is installed, there is no difference between Standard and Replica.

A production Horizon Connection Server should have 10 GB of RAM and 4 vCPU. Each Horizon Connection Server can handle 4,000 user connections.

Horizon 2306 (8.10) is the latest release. Starting August 2020, VMware switched to a YYMM versioning format.

To install the first Horizon Connection Server:

  1. Ensure the Horizon Connection Server has 10 GB of RAM and 4 vCPU. Source = Hardware Requirements for Horizon Connection Server at VMware Docs.
  2. Horizon 2111 (8.4) and newer support Windows Server 2022.
  3. Horizon 2006 (8.0) and newer support Windows Server 2012 R2, Windows Server 2016, and Windows Server 2019. Horizon 2111 adds support for Windows Server 2022. See 78652 Supported Operating Systems and MSFT Active Directory Domain Functional Levels for VMware Horizon 8 2006 and newer.
  4. Horizon 2006 (8.0) and newer no longer need Flash.
  5. Instant Clones in Horizon 2303 and newer require vSphere 7 or newer. vSphere 6.7 and older will not work.
  6. Download Horizon 2306 (8.10) Horizon Connection Server.

  7. Run the downloaded VMware-Horizon-Connection-Server-x86_64-8.10.0.exe.
  8. In the Welcome to the Installation Wizard for VMware Horizon Connection Server page, click Next.
  9. In the License Agreement page, select I accept the terms, and click Next.
  10. In the Destination Folder page, click Next.
  11. In the Installation Options page, select Horizon Standard Server, and click Next.

    • In Horizon 2006 (8.0) and newer, it is no longer possible to disable HTML Access for specific pools.
  12. In the Data Recovery page, enter a password, and click Next.
  13. In the Firewall Configuration page, click Next.
  14. In the Initial Horizon Administrators page, enter an AD group containing your Horizon administrators, and click Next.
  15. In the User Experience Improvement Program page, uncheck the box, and click Next.
  16. In the Operational Data Collection page, click Next.
  17. In the Operational Data Collection page, click Next.
  18. In the Ready to Install the Program page, click Install.
  19. In the Installer Completed page, uncheck the box next to Show the readme file, and click Finish.

Install Horizon Connection Server Replica

Additional Horizon Connection Servers are installed as Replicas. After installation, there is no difference between a Replica server and a Standard server.

A production Horizon Connection Server should have 10 GB of RAM and 4 vCPU.

To install Horizon Connection Server Replica:

  1. Ensure the Horizon Connection Server has 10 GB of RAM and 4 vCPU. Source = Hardware Requirements for Horizon Connection Server at VMware Docs.
  2. Horizon 2111 (8.4) and newer support Windows Server 2022.
  3. Horizon 2006 (8.0) and newer support Windows Server 2012 R2, Windows Server 2016, and Windows Server 2019. See 78652 Supported Operating Systems and MSFT Active Directory Domain Functional Levels for VMware Horizon 8 2006.
  4. Horizon 2006 (8.0) and newer no longer need Flash.
  5. Download Horizon 2306 (8.10) Horizon Connection Server.

  6. Run the downloaded VMware-Horizon-Connection-Server-x86_64-8.10.0.exe.
  7. In the Welcome to the Installation Wizard for VMware Horizon Connection Server page, click Next.
  8. In the License Agreement page, select I accept the terms, and click Next.
  9. In the Destination Folder page, click Next.
  10. In the Installation Options page, select Horizon Replica Server, and click Next.
  11. In the Source Server page, enter the name of another Horizon Connection Server in the pod. Then click Next.
  12. In the Firewall Configuration page, click Next.
  13. In the Ready to Install the Program page, click Install.
  14. In the Installer Completed page, click Finish.
  15. Load balance your multiple Horizon Connection Servers.
  16. Horizon Console > Settings > Servers > Connection Servers tab shows multiple servers in the pod.

Horizon Connection Server Certificate

Horizon Console Certificate Management

Horizon 2212 and newer have a Certificate Management section in the Horizon Console under Settings.

    1. The Administrators role in Horizon does not include the Certificate Management permission. Go to Settings > Administrators. On the right, switch to the tab named Role Privileges. Click Add.
    2. Name the role CertificateManagement or similar. Select the Manage Certificates privilege and click OK.
    3. Switch to the tab named Administrators and Groups. Select your Horizon Admins group and click Add Permissions.
    4. Select your new CertificateManagement role and click Finish.
    5. If you log out, log back in, and then go to Settings > Certificate Management, the buttons should no longer be grayed out. You can either import an existing cert, or click Generate CSR to create a new cert. If you click Generate CSR, then there’s no way to use this interface to combine the signed certificate with the key, so it’s probably better to use some other method of creating a certificate and export it as a .pfx file.
    6. Click Import to upload a PFX file to the Connection Server that you are currently connected to. You’ll have to repeat this process on each Connection Server.
    7. In certlm.msc on the Connection Server, notice that it sets the vdm friendly name on the imported cert, but it doesn’t remove the vdm friendly name from the old cert. You’ll need to manually remove the vdm friendly name from the old cert.
    8. Then open services.msc and restart the VMware Horizon View Security Gateway Component.
    9. Repeat this process on the other Connection Servers.

Install Cert Manually

Alternatively, install a certificate without using Horizon Console:

  1. Run certlm.msc. Or run mmc, add the Certificates snap-in, and point it to Computer > Local Machine.
  2. Request a new certificate with a common name that matches the FQDN of the Connection Server or import a wildcard certificate.
  3. Note: the private key must be exportable. If using the Computer template, click Details, and then click Properties.
  4. On the Private Key tab, click Key options to expand it, and check the box next to Mark private key as exportable.
  5. In the list of certificates, look for the one that is self-signed. The Issuer will be the local computer name instead of a Certificate Authority. Right-click it, and click Properties.
  6. On the General tab, clear the Friendly name field, and click OK.
  7. Right-click your Certificate Authority-signed certificate, and try to export it.
  8. On the Export Private Key page, make sure Yes, export the private key is selectable. If the option to export the private key is grayed out, then this certificate will not work. Click Cancel.
  9. Right-click your Certificate Authority-signed certificate, and click Properties.
  10. On the General tab, in the Friendly name field, enter the text vdm, and click OK. Note: only one certificate can have vdm as the Friendly name.
  11. Then restart the VMware Horizon View Connection Server service. It will take several minutes before you can connect to Horizon Administrator Console.
  12. Horizon Console > Monitor > Dashboard > System Health > View > Components > Connection Servers should show the TLS Certificate as Valid.

Horizon Portal – Client Installation Link

If you point your browser to the Horizon Connection Server (without /admin in the path), the Install VMware Horizon Client link redirects to the VMware.com site for downloading of Horizon Clients. You can change it so that the Horizon Clients can be downloaded directly from the Horizon Connection Server.

  1. On the Horizon Connection Server, go to C:\Program Files\VMware\VMware View\Server\broker\webapps.
  2. Create a new folder called downloads.
  3. Copy the downloaded Horizon Client 2306 for Windows to the new C:\Program Files\VMware\VMware View\Server\broker\webapps\downloads folder.
  4. Run Notepad as administrator.
  5. Open the file C:\ProgramData\VMware\VDM\portal\portal-links-html-access.properties file with a text editor (as Administrator).
  6. Go back to the downloads folder and copy the Horizon Client filename.
  7. In Notepad, modify link.win32 and link.win64 by specifying the relative path to the Horizon Client executable under /downloads. Note: In Horizon Client 4.3 and newer, there’s only one Horizon client for both 32-bit and 64-bit. The following example shows a link for the Horizon win64 client.
    link.win64=/downloads/VMware-Horizon-Client-2306-8.10.0-21964678.exe
  8. Then Save the file.
  9. Restart the VMware Horizon View Web Component service or restart the entire Connection Server.
  10. It will take a few seconds for the ws_TomcatService process to start, so be patient. If you get a 503 error, then the service is not done starting.
  11. Now when you click the link to download the client, it will grab the file directly from the Horizon Connection Server.
  12. Repeat these steps on each Connection Server.

Portal Branding

Chris Tucker at Horizon View 7.X – Branding the Logon page details how to brand the Horizon portal page.

LDAP Edits

Mobile Client – Save Password

If desired, you can configure Horizon Connection Server to allow mobile clients (iOS, Android) to save user passwords.

  1. On the Horizon Connection Server, run ADSI Edit (adsiedit.msc).
  2. Right-click ADSI Edit, and click Connect to.
  3. Change the first selection to Select or type a Distinguished Name, and enter dc=vdi,dc=vmware,dc=int.
  4. Change the second selection to Select or type a domain or server, and enter localhost. Click OK.
  5. Navigate to Properties > Global. On the right, double-click CN=Common.
  6. Scroll down, click to highlight pae-ClientCredentialCacheTimeout, and click Edit.
  7. Enter a value in minutes. 0 = no saving of credentials. -1 = no timeout. Click OK.

Biometric Authentication – iOS Touch ID, iOS Face ID, Fingerprints, Windows Hello

Biometric authentication, including Touch ID, Face ID, and Fingerprints, is disabled by default. To enable: (source = Configure Biometric Authentication at VMware Docs)

  1. On the Horizon Connection Server, run ADSI Edit (adsiedit.msc).
  2. Right-click ADSI Edit and click Connect to…
  3. Change the first selection to Select or type a Distinguished Name and enter dc=vdi,dc=vmware,dc=int.
  4. Change the second selection to Select or type a domain or server and enter localhost. Click OK.
  5. Navigate to Properties > Global. On the right, double-click CN=Common.
  6. Find the attribute pae-ClientConfig and double-click it.
  7. Enter the line BioMetricsTimeout=-1, and click Add. Click OK. The change takes effect immediately.

Load Balancing

See Carl Stalhood’s Horizon Load Balancing using Citrix NetScaler ADC.

Remote Desktop Licensing

If you plan to build RDS Hosts, then install Remote Desktop Licensing somewhere. You can install it on your Horizon Connection Servers by following the procedure at https://www.carlstalhood.com/delivery-controller-2203-ltsr-and-licensing/#rdlicensing.

Antivirus

VMware Tech Zone Antivirus Considerations in a VMware Horizon Environment: exclusions for Horizon View, App Volumes, User Environment Manager, ThinApp

Help Desk Tool Timing Profiler

Run the following command to enable the timing profiler on each Connection Server instance to view logon segments in Help Desk tool. See VMware Docs for more info.

vdmadmin -I -timingProfiler -enable

Related Pages

205 thoughts on “VMware Horizon Connection Server 2306 (8.10)”

  1. Hi Carl,
    we have upgraded in our test environment from 8.1 to 2212.1 ESB
    now have true SSO error “Denied by policy module” from enrollment server to CA doesn’t connect to get cert.
    We have F5 in between was working in 8.1. Is this a known issue? should we stage upgrade to a earlier
    version then upgrade again to 2212.1 ESB.

    1. Double-check the configuration of the certificate template.

      Is your CA dedicated to True SSO? Or is it shared? Did a different CA administrator change something?

      Is your enrollment certificate still valid (not expired)?

  2. Hi, we are running Horizon 7.13 (linked-clone) on Windows 2012 R2
    There is a need to replace the OS to 2019 or 2022. Instead upgrading the existing (in-place upgrade) Windows and Horizon on the existing machine, we are planning to deploy a new one instead, then perform configuration and testing first (Instant Clone) then perform a cutover once test is done. Do you think this this is practical and doable?

    1. Since you haven’t converted to Instant Clones yet then it probably doesn’t matter if you build a new pod or simply swap servers in the existing pod. To test the new pod, it will need a new DNS name, or you can modify the HOSTS file on the test client machines.

  3. Hi,

    Do you recommend going from 2212 to 2303 then 2306 ?

    I went from 2212 directly to 2306 and it was a disaster, had to revert to my snapshots.

    Thank you

      1. The true SSO was not working anymore,
        and after rebooting the connection servers I was not able to login anymore, it was not showing me the domain under the login prompt.

        1. so, here’s what I did, in case somebody face the same problems.

          Updated 2212 to 2212.1
          Updated from 2212.1 to 2303
          Updated from 2303 to 2306

          I made a snapshot at each step, and everything is working fine now

  4. Hi, Carl
    we have migrated our two Horizon 2006 Connection server to version 2303.
    We have only one instant clone pool, everything seem to work but when we disconnect a VM or we “maintain” the pool with the new image (with the updated agent”) we get this error:
    Error during Provisioning Cloning of VM VD-xx55 has failed: Fault type is AD_FAULT_FATAL – com.vmware.daas.cloneprep.ldap.LdapException: unable to create connection pool, resultCode=82 (local error), errorMessage=An error occurred while attempting to initialize the JAAS login context for GSSAPI authentication: LoginException(KDC has no support for encryption type (14)), ldapSDKVersion=5.1.3, revision=028e004da97e22a274a4116316a73d0a90526e4b

    The previous version works with no problem, maintain, new pool, and so on.
    We have a single site AD with 2 domain controllers.

    Any suggestion?
    thaks.

      1. Yes – following Carl suggestion (we had a Vmware case open for 1 month but they give us other non risolutive fixes….).
        Here the steps:
        1 – create new AD account following VMware kb 92285
        2 – add this account to Horizon Console and create a test pool that uses it.
        2 – in the 2006 version you CANNOT edit the AD account for the instant clone domain Join in the web interface, so you need to edit it on the connection server manualy with ADSIedit (be sure to take backup with vdmexport > backup.LDF
        and snapshot the Connection servers before)
        3 – in ADSIedit go to OU=Server Groups -> CN=”your TEST pool name” and look for pae-NgvcAdDN – copy the CN=xxxx (is the id of the new AD user)
        4 – then go to OU=Server Groups -> CN=”your PRODUCTION pool name” and look for pae-NgvcAdDN (copy all the content of the field for backup purpose and replace only the CN with the new one)
        5 – restart Horizon services or reboot the connection server (if you have replica connection servers you need to edit only once…)
        thats it..

  5. I’m running Horizon 8 2111.1 on Server 2019. I want to move to 2212 ESB and install connection server and RDSH hosts on server 2022. I just finished deploying a new Vcenter cluster. I’ve migrated all VMs but Horizon onto the new cluster. Both clusters are on the same network subnet but are two sperate Vcenters.
    I’m fine with setting up Horizon from scratch on the new cluster but I wasn’t sure if this would cause any issues. If I install connection server on a VM in the new cluster, will it cause any issues with the existing Horizon environment?
    What is the best approach here?
    Thanks
    These guides have been a tremendous help over the years.

    1. You could add a second vCenter to your existing Connection Server. Or you can build a new pod of Connection Servers. Multiple pods can share a single vCenter server if that’s what you’re asking.

  6. I am planning to upgrade OS on my Connection servers (running version 2211) from Windows 2016 to 2019. What would be the correct procedure? Can I just do the in-place upgrade? I would appreciate your suggestions.
    BTW, I have always followed your BLOG to implement my Connection servers to the environment and they are running solid from the day one. Thank you in advance.

    Regards,
    Sayed Ahmad

    1. I would add a Replica server, reconfigure the load balancer to send traffic to the new server instead of the old server, and then remove the old server. If any UAGs connect directly to the old server, then reconfigure the UAGs too.

      Another option is to power off the old server and rebuild it from scratch with the new OS but same name as old. Then install Connection Server Replica.

  7. Out of interest, obviously manually uninstalling DEM from around 5k machines is not an option. Is there a preferred method to achieve the uninstall and then agent upgrade across these machines?

  8. Hi Carl!
    Help please! I have a problem with my connection server, I set in webadmin flag Smart card authentication for administrators as Required and now I can’t open that webadmin 🙁 restore from previous backup didn’t helping 🙁
    Maybe you know where Horizon CS stores that settings in filesystem?
    Thank you!

    1. Settings are usually stored in LDAP. I’m not sure where you can find that setting in adsiedit.msc.

      1. Did you tried to enable smart card auth only for admins but not for users? I tried to set for users not allowed and for administrators required or optional but when I connecting to CS via Client app is asking smartcard? Why it’s happening? I don’t need auth for internal user by smartcards.

      2. I found the setting. Out of STIG compliance, Admin console login must be set to Smart Card Required. But, if there are issues with your pki environment, how do you change it, if you can’t authenticate to the console? Carl is right. It’s in adsiedit.msc. Connect using Carl’s steps above in the article. Got to Properties > Server. Double click a CN= to get to it’s Properties. Find pae-CertAuthAdmin and click Edit. Change setting to 0 or 1. Setting 0 is “Not Allowed”. Setting 1 is “Optional”. And Setting 2 is “Required”. Bounce the Horizon server services and you will be able to login explicitly to the Horizon Admin Console.

  9. at the client horizon agent connecting to the connection server the SSL cert is verified, however after the user’s smart card credentials are entered an “SSL error occured” message is thrown. I followed the keystore guide from the vmware KB and restarted the service but it did not fix it. What could be a possible cause of this?

  10. Hi,
    I have a design question:
    We have two connection servers and no UAG. We use a load balancer from Barracuda to load balance the two connections servers.
    Do we have to use one certificate for all three instances (horizon.company.xx for CS1+CS2+LB)?
    Right now we have three different certificates. I’ve added all three hosts to the locked.properties. Access to the Horizon Admin console works fine, but when I try to open a blast session for a vm I get the failure:
    The host name in the certificate is invalid or does not match

    1. In the UAG config under Edge Settings > Horizon Settings is the Blast URL. This URL should resolve to your load balancer VIP that has a certificate that matches the URL.

      Another option is for each UAG to send Blast traffic to itself, but this would require three public IPs for the load balancer plus each UAG appliance instead of just one public IP for the load balancer.

        1. In Horizon Console, go to Servers > Connection Servers. Edit one. There’s a field for Blast Secure Gateway. What is the URL? If the Blast Secure Gateway is enabled then the certificate on the Connection Server must match that URL. Normally Blast Secure Gateway is not enabled since UAG is doing it instead.

  11. On the Certificate Management Section its grayed out for me. So when I go to Administrator to add the “Role Privileges”. Then I click add, I don’t have privilege for certificate management. So is their a way to create new privileges so I can manage my certificates?

  12. Need to migrate the standard connection server from a 2012 server MS OS to 2019 MS OS. Can I create a replica of the 2012 connection server or does the new 2019 need to be a standard deployment? We have another connection server that used the 2012 standard to replicate from as well. If I have to use standard for the 2019 OS buildout does that also mean i need to replicate the other connection server off the new 2019 standard?

  13. Should there be a shared DNS entry for the horizon server address for the two connection servers.

    For example.
    A record: connectionserver1.domain.com IP address
    a record: connectionserve2.domain.com IP address
    A record examplevdi.domain.com IP Address IP address

    Thanks,
    Scott

    1. examplevdi should point to a load balancer VIP. If you don’t have a load balancer, then you can try creating examplevdi twice with each Connection Server IP and rely on DNS Round Robin.

      1. We are currently using the built-in HA features for UAGS and a primary connection server and a replica connection server. No load balancer. Had the primary connection server go down and connections failed to the replica. Started digging into DNS and found we never add an entry for examplevdi.domain.com for the replica server.

        So two records pointing to examplevdi.domain.com. 1 for the connection and a 2nd for the replica correct?

        Thanks!

        1. Two DNS records for same FQDN are usually DNS Round Robin. Note that DNS servers don’t monitor if an IP address is reachable or not so if a server goes down the half the DNS requests will go to an inaccessible IP address. Load balancers monitor the servers.

          1. So if a primary connection server goes down and there is no load balancer then manual intervention should happen by changing the DNS record to point to the replica? Or is there a better way to go about it?

          2. Correct. Load balancer is the best option. Citrix NetScaler ADC has an Express Edition that is free.

  14. I’m running two Horizon 8 (2111) connection servers and I noticed that all space reclamation operations are initiated by the same connection server (the “2nd one”, i.e. CS02), according to the event database.
    Is this normal behaviour?

Leave a Reply to Abdullah Mohammad Manjurul Islam Cancel reply

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