Skip to main content

August 24, 2026

Automating Installations and Upgrades of Omnissa Horizon 8 With LCM APIs

Starting from Horizon 8 version 2406, you can use Horizon Lifecycle Management (LCM) APIs to automate and simplify installations of Omnissa Horizon Connection Server and Enrollment Server instances. This page offers high-level examples of LCM API requests that allow you to implement an automated installation or upgrade workflow.

About the LCM APIs

The LCM APIs are a part of the Horizon Server APIs. For more detailed information, see the documentation on https://developer.omnissa.com:

Using LCM APIs in a Terraform framework

Omnissa has also developed a Terraform provider for Horizon 8. You can use the LCM APIs with this Terraform provider to automate the lifecycle management of your Horizon 8 deployments.

The standard prerequisites apply when using LCM APIs with the Terraform provider.

You can find the Terraform provider for Horizon 8 at https://github.com/euc-dev/horizon-terraform.

Prerequisites

Before using the LCM APIs, you must complete these listed prerequisites. This page's sections provide details for each.

  • Version 2406 or later of Horizon Connection Server
  • Configure WinRM
  • Prepare a hosting method
  • Designate admin account for invoking LCM APIs
  • If needed, configure a Connection Server host to trust a third-party CA

Version 2406 or later

Install or upgrade to at least one instance of Horizon Connection Server 2406 or later. The LCM APIs are only available from Horizon Connection Server starting with version 2406.

Note: For a new Horizon 8 deployment, you can use a command-line script to automate the initial Horizon Connection Server installation and then use the LCM APIs for subsequent installations.

Configure WinRM

Configure WinRM on these components:

  • Horizon Connection Server host machine from which you are calling the LCM APIs
  • Each target machine on which you will perform an automated installation or upgrade

Prepare hosting method

Prepare one of the following hosting methods:

SMB file share

Starting with the 2503 release, the LCM REST APIs support SMB file URLs for registering Connection Server build packages. This allows administrators to host build files on SMB shares and register them using the fileUrl parameter.

Prerequisites for using SMB file URLs:

  • File URL format: Use the smb:// prefix in the fileUrl parameter. For example, with an EXE file named Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225, the fileUrl parameter format would be smb://smb-share/share-name/Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225.exe (where smb-share/share-name is the unique information of your SMB share).
  • Access permissions: Both the machine account of the Connection Server machine and the LCM user account must have read access to the SMB share. - Machine account: This is the account representing the machine from which the API is invoked. It is represented as DOMAIN\MACHINE$ (for example, example.com\CS$ for a machine named CS in the example.com domain). - LCM user account: This is the account used to invoke the LCM REST APIs.

To grant the read access permission to the accounts:

  1. Open the SMB share's properties (Properties), navigate to Security, and Edit to modify the permissions.
  2. Add the machine account (for example example.com\CS$) and the LCM user account (for example, example.com\LCMUser)
  3. Assign Read permissions to both accounts, and save the changes to the properties (Apply and OK.)

Then, to use the SMB file share to host the server build installer and LCM bundle file, prepare the SMB file share as follows:

  • Download the server .exe installer and Horizon Lifecycle Manager Bundle (lcm.zip) from Omnissa Customer Connect.
  • Place the .exe installer and lcm.zip together in the same directory on the SMB file share.

Web server

To use a web server to host the server build installer and LCM bundle file, prepare the web server as follows:

  • Download the server .exe installer and Horizon Lifecycle Manager Bundle (lcm.zip) from Omnissa Customer Connect.
  • Place the .exe installer and lcm.zip together in the same directory on the host web server.

Horizon Connection Server host

To use a Horizon Connection Server host to host the server build installer and LCM bundle file, prepare the Horizon Connection Server host as follows:

Designate admin account for invoking LCM APIs

Designate the Horizon administrator account that you will use to invoke the LCM APIs. Ensure that this account belongs to the Local Administrators Group on every target machine that will receive the installation or upgrade.

Before upgrading

Before performing an upgrade, deactivate the target Horizon Connection Server instances. After the upgrade is complete, you must activate each Horizon Connection Server instance to make it available again for use.

Configure a server host to trust a third-party CA

If needed, use the following procedure to configure a Horizon Connection Server host to trust a third-party Certificate Authority (CA) in the trust store.

  1. Open the Command Prompt (cmd) as an administrator.

  2. Navigate to the Java bin directory, for example:

    cd "C:\Program Files\Omnissa\Horizon\Server\jre\bin"
    
  3. Run the keytool command to import the certificate into the trust store:

    keytool -trustcacerts -keystore "C:\Program Files\Omnissa\Horizon\Server\jre\lib\security\cacerts" -storepass changeit -importcert -alias {YOUR_ALIAS} -file {YOUR_CRT_FILE}
    

    Replace {YOUR_ALIAS} with a unique alias for the certificate (for example, MyCertAlias).

    Replace {YOUR_CRT_FILE} with the full path to your certificate file (for example, C:\path\to\certificate.crt).

  4. When prompted, type yes and press Enter to confirm and complete the certificate import.

  5. Open services.msc and restart all the listed Omnissa Horizon components to apply the certificate changes.

    Alternatively, you can reboot the server to make the changes take effect.

Workflow examples

The following sections illustrate example LCM API requests used in a typical installation or upgrade workflow.

1. Create and assign LCM privileges

To execute LCM APIs, you must create the LCM_MANAGEMENT role and assign this role to the designated user account.

Create the LCM_MANAGEMENT role:

[POST] /config/v1/roles
{
  "description": "Custom LCM role.",
  "name": "LCM",
  "privileges": [
    "LCM_MANAGEMENT"
  ]
}

Assign the LCM_MANAGEMENT role to the designated account:

[POST] /config/v1/permissions
[
  {
    "userOrGroup": "UserOrGroup/Uy0xLTUtMjEtMjMzNzczOTMxMC0yNjQ3NjI3MzY0LTE3NzczMzI0NzktNTAw",
    "role": "Role/NmU4MjgwMmYtMDc4Yi00NGI0LWJiYmEtNGU1MWIxYzNhZWRj/TENN",
    "accessGroup": "AccessGroup/NmU4MjgwMmYtMDc4Yi00NGI0LWJiYmEtNGU1MWIxYzNhZWRj/Um9vdA"
  }
]

Note: You can also create and assign the LCM_VIEW role to user accounts that only need to retrieve status information for LCM workflows. Users with LCM_VIEW privileges have read-only access and cannot issue POST requests.

2. Register the installer build

Users with the LCM_MANAGEMENT role can register the server build that will be installed on the target machines.

Note: If you upgrade to a later Horizon 8 release, you must re-register the new server build for that later release.

  • For the request parameter, specify the file URL of the .exe build installer on the hosting location. Make sure that the Horizon Lifecycle Manager Bundle (lcm.zip) is located in the same directory as the .exe build installer, as described in Prerequisites.
  • For the request body, include the build metadata.

Note: In the examples below, the EXEs are specific Horizon Connection Server installer build files and things in braces ({}) represent values you provide from your specific setup. When you run these commands in your deployment, substitute the specific installer file name that you have and your specific SMB share and web server information.

Example - SMB share

[POST] /rest/config/v1/server-installer-packages/action/register?fileUrl=smb://{smb-share}/{share-name}/Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225.exe

{
  "file_size_in_bytes": 401860608,
  "version": "8.15.0",
  "checksum": "d814d56a30477d07e8128a18c5ec09ba38984129f40911ad332e96c143e4fabb",
  "build_number": "13513405225",
  "filename": "Omnissa-Horizon-Connection-Server-x86_64-2503-8.15.0-13513405225.exe",
  "display_Name": "Omnissa Horizon Connection Server"
}

Example - web server

[POST] /config/v1/server-installer-packages/action/register?fileUrl=https://{local-webserver}/installer/Omnissa-Horizon-Connection-Server-x86_64-2406-8.13.0-8565949332.exe

{
  "build_number": "8565949332",
  "checksum": "d2f31e1bc6de212f11a34b502ec16d66d5bf896947de3288a337c10df8c5be67",
  "display_name": "Omnissa Horizon Connection Server",
  "file_size_in_bytes": 365891976,
  "filename": "Omnissa-Horizon-Connection-Server-x86_64-8.13.0-8565949332.exe",
  "version": "2406"
}

When successful, the registration API returns the unique server_installer_package_id of the registered installer package.

You can also use the following LCM APIs to perform other registration tasks. For detailed information, see the reference page for each API.

TaskAPI
Retrieve the list of all registered installer builds[GET] /config/v1/server-installer-packages
Retrieve metadata for the installer build with the specified ID (server_installer_package_id)[GET] /config/v1/server-installer-packages/{id}
Unregister the installer build with the specified ID (server_installer_package_id)[POST] /config/v1/server-installer-packages/{id}/action/unregister

3. Check installation prerequisites on the target machine

Pre-check APIs allow you to validate that target machines meet the appropriate requirements. Verify that you receive favorable responses to the following pre-check requests before you invoke any installation commands.

Validate system prerequisites for the target machine:

[POST] /config/v1/connection-servers/action/validate-system-requirements

Validate Active Directory prerequisites for the target machine:

[POST] /config/v1/connection-servers/action/validate-ad-requirements

Validate vCenter Server prerequisites for the target machine:

[POST] /config/v1/connection-servers/action/validate-virtual-center-requirements

Validate schema master and server replication status for the target machine to be upgraded:

[POST] /config/v1/connection-servers/action/validate-ldap-requirements

4. Run the installation command

After validating prerequisites for the target machines, you can invoke the installation or upgrade API.

Include the following information in the request body:

KeyValue/Description
domainName of the Active Directory domain
server_installer_package_idServer build ID that was provided in the build registration API response
target_server_fqdnFully qualified domain name (FQDN) of the target machine
user_nameName of the user account used to schedule the installation/upgrade on the target machine. The user must have Horizon administrator privileges and belong to the local administrator group of the target machine.
passwordPassword of the user account used to schedule the installation/upgrade on the target machine
server_msi_install_specSpecified installation options, required only for installation requests. For complete information, see the Schema section of the [POST] /config/v1/connection-servers/action/install-connection-server reference.

Upgrade the server build on the target machine:

[POST] /config/v1/connection-servers/action/upgrade-connection-server

{
  "domain": "AD-TEST-DOMAIN",
  "password": "<password>",
  "server_installer_package_id": "a3768752-77c6-45d0-8e20-908227bce79f",
  "target_server_fqdn": "server.example.com",
  "user_name": "Administrator"
}

Install the server build on the target machine:

[POST] /config/v1/connection-servers/action/install-connection-server

{
  "domain": "AD-TEST-DOMAIN",
  "password": "<password>",
  "server_installer_package_id": "a3768752-77c6-45d0-8e20-908227bce79f",
  "server_msi_install_spec": {
    "admin_sid": "string",
    "deployment_type": "GENERAL",
    "fips_enabled": false,
    "fw_choice": true,
    "html_access": true,
    "install_directory": "%ProgramFiles%\\Omnissa\\Horizon\\Server",
    "primary_connection_server_fqdn": "server.example.com",
    "server_instance_type": "STANDARD_SERVER",
    "server_recovery_pwd": "<password>",
    "server_recovery_pwd_reminder": "<reminder>",
    "vdm_ipprotocol_usage": "IPv4"
  },
  "target_server_fqdn": "server.example.com",
  "user_name": "Administrator"
}

Monitor the installation/upgrade job

After scheduling an installation or upgrade job on a target machine, you can check the job status with the following request. Include the FQDN of the target machine as the request parameter.

[POST] /config/v1/connection-servers/action/retrieve-installer-status?{fqdn}

Was this page helpful?

Provide feedback for this topic

Was this topic helpful?

Please do not include any personal or confidential information.

Generating link…