Horizon Advisor is a PowerShell-driven management tool for Omnissa Horizon environments. Use this tool to validate your environment before installing or upgrading Horizon servers, install and upgrade Connection Servers, conduct AD LDS maintenance, and manage Secure Gateway services, from a graphical interface or the command line.
Prerequisites
Requirements Table
| Requirement | Details |
|---|---|
| Operating System | Supported operating systems for Horizon Connection Server |
| PowerShell | Version 5.1 or later |
| Browser (for PDF reports) | Microsoft Edge (Chromium) or Google Chrome, used to convert HTML reports to PDF |
| Permissions | Run as a user with appropriate Horizon administrative rights. Remote and Connection Server lifecycle operations need an account that is a domain user and a member of the local Administrators group on each target server. |
| Network Access | HTTPS access to the Horizon Connection Server (port 443) for LDAP/API validations. WinRM access to remote targets for Connection Server lifecycle operations, remote pre-checks, ADWS, and replication operations. AD LDS ports 389 (local) and 22389 (global) for AD LDS tools. |
| Active Directory module | The RSAT Active Directory PowerShell module, for the Active Directory pre-check on the local server. Horizon Advisor offers to install it if it is missing. |
| Windows tools | Some AD LDS operations use AD LDS tools such as ldifde, repadmin, and dsmgmt, and the Horizon vdmexport and vdmimport commands. |
Note: Horizon Advisor must be run directly on the system where the precheck needs to be performed.
Launching the Tool
Open a PowerShell console and navigate to the folder where Horizon Advisor was extracted.
Then run:
.\Start-HorizonAdvisor.ps1
This opens the interactive main menu. You can also double-click HorizonAdvisor.bat in the extracted folder.
On first launch, a dialog asks whether to allow usage telemetry. To change this later, run .\Start-HorizonAdvisor.ps1 -TelemetryConsent enable|disable|reset|status.
Important: Every time you run Start-HorizonAdvisor.ps1, previously accepted TLS certificates are cleared. You will be re-prompted to accept any untrusted or self-signed certificates on each new run.
Main Menu Overview
After launching, select a tool from the Select a tool drop-down menu and click Launch, or double-click the item:
- Pre-Check Validations
- Manage Secure Gateway
- Omnissa Horizon Connection Server Lifecycle Management
- ADLDS Maintenance Tools
Closing a tool returns you to the main window.
Pre-Check Operations
Pre-Check validates your environment against Omnissa’s published requirements for a target Horizon version. It checks Active Directory settings, capacity providers, server prerequisites, and LDAP/API connectivity, then produces a detailed HTML and optionally PDF report.
Execution Modes
You can run Pre-Check against the following targets:
| Mode | Validates |
|---|---|
| Local server | The machine you are running on. |
| List of servers (CSV) | The servers in a file you select, over WinRM. The file can be plain text (one server FQDN per line; lines beginning with # are ignored) or a CSV with a ServerFQDN column. If there is no ServerFQDN column, the first column is used. |
| Local pod servers | The Connection Servers detected in the local pod. |
| CPA federation | The Connection Servers across all pods in a Cloud Pod Architecture federation. |
LDAP/API validation always runs from the machine that runs Horizon Advisor, against the Connection Server API endpoint, even when the other checks run on remote servers.
Validation Types
When you select Pre-Check Operations, you are presented with the following choices:
| Option | Validation Type | What It Checks |
|---|---|---|
| Run All Validations | Complete report | Runs all listed checks in a single combined report |
| Active Directory Requirements Validation | Active Directory configuration | Forest & domain functional levels, AD schema compatibility, DNS settings, and other AD prerequisites |
| Capacity Provider Requirements Validation | Capacity Provider configuration | Capacity Provider version compatibility and configuration requirements for the target Horizon version, for example vCenter, Nutanix Prism Central, OpenShift, or Amazon WorkSpaces Core |
| Horizon Server System Requirements Validation | Connection Server prerequisites | Local server settings, OS version, and Horizon-specific server configuration requirements |
| LDAP Requirements Validation | LDAP requirements | Validate Schema master reachability and ldap replication health |
Note: LDAP Requirement Validation is only available on Horizon Server 2412 and later.
| Option | Validation Type | What It Checks |
|---|---|---|
| Run All Validations | Complete report | Runs all listed checks in a single combined report |
| Active Directory Requirements Validation | Active Directory configuration | Forest & domain functional levels, AD schema compatibility, DNS settings, and other AD prerequisites |
| Capacity Provider Requirements Validation | Capacity Provider configuration | Capacity Provider version compatibility and configuration requirements for the target Horizon version, for example vCenter, Nutanix Prism Central, OpenShift, or Amazon WorkSpaces Core |
| Horizon Server System Requirements Validation | Connection Server prerequisites | Local server settings, OS version, and Horizon-specific server configuration requirements |
| LDAP Requirements Validation | LDAP requirements | Validate Schema master reachability and ldap replication health |
TLS Certificate Prompt
For LDAP and API validations, Horizon Advisor connects to the Horizon Connection Server over HTTPS. If the server uses a self-signed or untrusted TLS certificate, the following prompt appears:
Untrusted TLS certificate detected for https://<server>/rest/...
Subject : CN=<server>
Issuer : CN=<server>
Thumbprint: XXXX...
Valid From: ...
Valid To : ...
Certificate appears to be self-signed.
Press '1' to accept this certificate for this run only
Press '2' to reject and stop the request
Select an option (1-2):
Press 1 to accept and continue. The certificate is trusted for the duration of this run only.
Press 2 to reject. The connection is aborted and the validation will not proceed.
This prompt appears on every run. Accepted certificates are never permanently stored.
To skip the prompt, select Accept self-signed / untrusted TLS certificate in the Pre-Check Validations window.
Understanding Reports
After a validation completes, an HTML report (and PDF if a supported browser is available) is automatically generated. The report includes:
Summary Section
| Item | Description |
|---|---|
| Validation Type | The type of check that was performed |
| Target Horizon Version | The version validated against |
| Execution Time | When the validation ran |
| Total Checks | Total number of individual checks performed |
| Passed | Number of checks that met requirements (green) |
| Warnings | Number of checks flagged for review (orange) |
| Failed | Number of checks that did not meet requirements (red) |
| Skipped | Number of checks not applicable to this configuration (blue) |
Detailed Results Table
| Column | Description |
|---|---|
| Check Key | The name of the specific requirement being validated |
| Status | PASS, WARNING, FAIL, or SKIP |
| Details | A description of the current detected value or state |
| Recommended | For FAIL and WARNING items — the recommended value or corrective action |
Row colors in the report correspond to status:
- Green: PASS
- Yellow/Orange: WARNING
- Red: FAIL
- Blue: SKIP
For items marked FAIL or WARNING, always review the Recommended column for the corrective action needed before proceeding with your Horizon installation or upgrade.
Report Location
Reports are saved to:
%ProgramData%\Omnissa\Horizon\logs\HorizonAdvisor\PreCheckReports\
File naming conventions
| Validation | HTML Filename | PDF Filename |
|---|---|---|
| Active Directory | ActiveDirectory_PreCheck_Report_<timestamp>.html | ActiveDirectory_PreCheck_Report_<timestamp>.pdf |
| Capacity Provider Requirements Validation | Capacity_Provider_Validation_Report_<timestamp>.html | Capacity_Provider_Validation_Report_<timestamp>.pdf |
| Horizon Server System Requirements Validation | ServerConfig_PreCheck_Report_<timestamp>.html | ServerConfig_PreCheck_Report_<timestamp>.pdf |
| LDAP Requirements Validation | LDAP_Precheck_Report_<timestamp>.html | LDAP_Precheck_Report_<timestamp>.pdf |
| Run All Validations (Complete Report) | Complete_PreCheck_Report_<timestamp>.html | Complete_PreCheck_Report_<timestamp>.pdf |
After the report is generated, the tool displays the full path to both the HTML and PDF files. You can open the HTML file in any web browser.
If Microsoft Edge or Google Chrome is not installed, the PDF will not be generated, but the HTML report will always be created.
Connection Server Lifecycle Management
Connection Server Lifecycle Management (LCM) installs new Connection Servers or upgrades existing ones. Horizon Advisor connects over WinRM, schedules the install or upgrade on each target, and then monitors the progress of each server until it succeeds, fails, or times out.
Important: Installs and upgrades affect running services. Run LCM during a maintenance window and take backups first.
Before You Start
- Place the Connection Server installer where the target servers can reach it: an SMB share path or an HTTPS URL that points directly at the installer file, for example
Omnissa-Horizon-Connection-Server-x86_64-...-8.20.0-....exe. A link to a metadata file or other file is rejected. - Make sure WinRM is reachable on every target server.
- Have an account in
DOMAIN\useroruser@domainform that is a domain user and a member of the local Administrators group on each target. This account runs the scheduled install or upgrade task. - For an install, have the Connection Server recovery password and, for replica servers, the FQDN of the primary Connection Server.
Install a New Connection Server
-
Select Omnissa Horizon Connection Server Lifecycle Management and click Launch, then select Install new Connection Server.
-
Leave Run Pre-Check (all validations) before proceeding selected unless you have a reason to skip it. See Pre-Check Gate.
-
Under Build, enter the Build source (SMB/URL). For example:
smb://myserver/build/Omnissa-Horizon-Connection-Server-x86_64-2609-8.20.0-xxxxxx.exehttps://mywebserver/builds/Omnissa-Horizon-Connection-Server-x86_64-2609-8.20.0-xxxxxx.exe
The version is read from the installer file name, so there is no version drop-down menu. The size, checksum, and build number come from the signed build catalog built into Horizon Advisor.
Important: Do not rename the installer. Use the installer file name exactly as published by Omnissa. Horizon Advisor reads the version and build number from the file name and validates the file against them, so a renamed installer is rejected.
-
Under Target servers, enter a Server FQDN, select its install type, and click Add. Repeat for each server. To delete entries, select them and click Remove.
-
Edit the MSI arguments for each install type in the list. Placeholder values are shown in red. You must replace the recovery password, reminder, and primary Connection Server placeholders before you can start.
-
Under Credentials, enter the Username (
DOMAIN\user) and Password. -
Click Start. If the Pre-Check gate is on, it runs first.
-
Confirm the prompt to begin.
If you add a replica server whose primary server is in the same batch, Horizon Advisor installs the primary server first and waits for it to finish successfully before it schedules the replica. If the primary server install fails, the replica is skipped.
Connection Server Lifecycle Management
Connection Server Lifecycle Management (LCM) installs new Connection Servers or upgrades existing ones. Horizon Advisor connects over WinRM, schedules the install or upgrade on each target, and then monitors the progress of each server until it succeeds, fails, or times out.
Important: Installs and upgrades affect running services. Run LCM during a maintenance window and take backups first.
Before You Start
- Place the Connection Server installer where the target servers can reach it: an SMB share path or an HTTPS URL that points directly at the installer file, for example
Omnissa-Horizon-Connection-Server-x86_64-...-8.20.0-....exe. A link to a metadata file or other file is rejected. - Make sure WinRM is reachable on every target server.
- Have an account in
DOMAIN\useroruser@domainform that is a domain user and a member of the local Administrators group on each target. This account runs the scheduled install or upgrade task. - For an install, have the Connection Server recovery password and, for replica servers, the FQDN of the primary Connection Server.
Install a New Connection Server
-
Select Omnissa Horizon Connection Server Lifecycle Management and click Launch, then select Install new Connection Server.
-
Leave Run Pre-Check (all validations) before proceeding selected unless you have a reason to skip it. See Pre-Check Gate.
-
Under Build, enter the Build source (SMB/URL). For example:
smb://myserver/build/Omnissa-Horizon-Connection-Server-x86_64-2609-8.20.0-xxxxxx.exehttps://mywebserver/builds/Omnissa-Horizon-Connection-Server-x86_64-2609-8.20.0-xxxxxx.exe
The version is read from the installer file name, so there is no version drop-down menu. The size, checksum, and build number come from the signed build catalog built into Horizon Advisor.
Important: Do not rename the installer. Use the installer file name exactly as published by Omnissa. Horizon Advisor reads the version and build number from the file name and validates the file against them, so a renamed installer is rejected.
-
Under Target servers, enter a Server FQDN, select its install type, and click Add. Repeat for each server. To delete entries, select them and click Remove.
-
Edit the MSI arguments for each install type in the list. Placeholder values are shown in red. You must replace the recovery password, reminder, and primary Connection Server placeholders before you can start.
-
Under Credentials, enter the Username (
DOMAIN\user) and Password. -
Click Start. If the Pre-Check gate is on, it runs first.
-
Confirm the prompt to begin.
If you add a replica server whose primary server is in the same batch, Horizon Advisor installs the primary server first and waits for it to finish successfully before it schedules the replica. If the primary server install fails, the replica is skipped.
AD LDS Operations
This module provides maintenance operations for the Horizon AD LDS (Active Directory Lightweight Directory Services) partition on the Connection Server.
Note: Starting in the 2606 release, the Connection Server installer automatically stops and disables Active Directory Web Services (ADWS) by default, since ADWS is not required for normal Connection Server operation. If your environment relies on ADWS for AD LDS maintenance or other purposes, you can temporarily re-enable it from this menu.
Available Operations
| Option | Operation | Description |
|---|---|---|
| 1 | Clean Up Stale Client User Preference Data | Removes pae-Prop objects from the Horizon AD LDS partition that have not been modified within a configurable number of months (default: 3 months). Helps reclaim space and reduce AD LDS bloat. |
| 2 | ADWS State Management | Verify, enable, or disable Active Directory Web Services (ADWS) on Horizon Connection Servers. ADWS is disabled by default for security reasons and should be enabled only temporarily when required for a specific task. |
| Migrate/Sync Global ADAM DB Partition | Allows organizations with large Cloud Pod Architecture (CPA) deployments to move from the legacy AD LDS partition to the new Horizon partition. Supports staged migration so independent pods can be migrated in separate maintenance windows while CPA remains functional. Administrators can add or remove local pools from global entitlements, create/delete global entitlements, and perform site operations during migration, reducing risk and downtime for large multi-pod deployments. | |
| 3 | Exit | Returns to the main menu |
Using the Cleanup Operation
-
Select Clean Up Stale Client User Preference Data from the AD LDS Operations menu (or run the cleanup script directly).
The tool displays the detected Horizon partition DN. -
Choose your operation:
- Option 1: Show count of stale entries (no deletion) - safe preview
- Option 2: Delete stale entries - performs actual cleanup
- Enter the staleness threshold:
- Specify the number of months to consider data as stale
- Press Enter to accept the default of 3 months
- Only data not modified within this period will be affected
- Review the stale entry count:
- The tool scans AD LDS and displays how many stale objects were found
- If Option 1 was selected, the operation completes here with no deletions
- Confirm deletion (Option 2 only):
- Review the count of entries to be deleted
- Type 1 to confirm deletion.
- Type anything else or press Escape to cancel the operation.
- Deletion process:
- The tool deletes matching objects in batches (2,000 per batch).
- Progress is reported after each batch.
- Completion:
-
A total count of deleted objects is displayed
-
The deletion report shows:
- Total objects deleted
- Cleanup completion status
Caution: This operation permanently deletes user preference data from AD LDS. Before proceeding with deletion:
- Verify that a backup of your AD LDS database exists
- Confirm with your team that old preferences can be safely removed
- Run Option 1 first to preview
- Consider running during a maintenance window with minimal user activity
Using ADWS State Management
Navigate to ADWS State Management
Open ADWS State Management in one of the following ways:
- In the ADLDS Maintenance Tools workspace, select Admin Ops.
- From the command line, run
.\Start-HorizonAdvisor.ps1 -Flow 'ADLDS Operation' -Validation adws.
Then select the scope level and choose the required action.
Select Scope Level (Required)
Before running Verify, Enable, or Disable, choose one scope:
- Single pod
- Targets Connection Servers only in the selected pod.
- Use **Select Pod** to choose the specific pod.
- Cluster level (CPA Federation)
- Targets all discovered pods in the CPA federation.
- Use when the change must apply federation-wide.
If only one pod is discovered, cluster-level behavior is not applicable and operations run against the available pod scope.
Option 1: Verify ADWS State
What it does
- Checks ADWS status on discovered Connection Servers.
- Shows current service state, startup type, firewall state, and ADWS registry flag.
- Makes no configuration changes.
When to use
- Before enabling or disabling ADWS.
- After making changes, to confirm the final state.
Steps
-
Select Single pod or Cluster level (CPA Federation).
-
If Single pod is selected, choose the target pod in Select Pod.
-
Select Verify ADWS State
-
Wait for discovery and status collection to complete.
-
Review the output table for each server:
- Service state
- Startup type
- Firewall status
- EnableADWS value
Option 2: Enable ADWS
What it does
- Sets ADWS service startup to Automatic.
- Starts ADWS service if not running.
- Enables or creates the ADWS inbound firewall rule (TCP 9389).
- Sets
EnableADWSregistry value to1.
Security warning
- ADWS is disabled by default to reduce security exposure.
- Enable ADWS only when required to complete a specific task (for example, troubleshooting or a legacy integration).
- After the task is complete, disable ADWS manually.
Steps
-
Select Single pod or Cluster level (CPA Federation).
-
If Single pod is selected, choose the target pod in Select Pod.
-
Select Enable ADWS.
-
Review the security warning.
-
Confirm the action when prompted.
-
Wait for execution to finish on all reachable servers.
-
Run Verify ADWS State to confirm ADWS is enabled where expected.
Option 3: Disable ADWS
What it does
- Stops ADWS service.
- Sets ADWS startup type to Disabled.
- Disables the ADWS inbound firewall rule.
- Sets
EnableADWSregistry value to0.
When to use
- After completing the temporary task that required ADWS.
- To return to the secure default posture.
Steps
-
Select Single pod or Cluster level (CPA Federation).
-
If Single pod is selected, choose the target pod in Select Pod.
-
Select Disable ADWS.
-
Confirm the action when prompted.
-
Wait for execution to complete.
-
Run Verify ADWS State to confirm ADWS is disabled.
Servers already in the requested state are skipped. Servers not reachable over WinRM are reported and skipped.
ADLDS Maintenance Tools
The ADLDS Maintenance Tools are a workspace for viewing and maintaining the AD LDS data that Horizon uses. You can preview all changes to AD LDS with Dry Run first.
Note: The REST API connection from the ADLDS tools is a beta feature, has not been fully tested, and is not supported in this release.
Caution: Many operations delete or modify AD LDS data. Take a backup of the local and global AD LDS data, run each operation with Dry Run first, review the output, and then run it for real during a maintenance window.
Opening the Tools
- From the main window, select ADLDS Maintenance Tools and click Launch. The workspace opens in its own window.
- From the command line, run
.\Start-HorizonAdvisor.ps1 -Flow 'ADLDS Tools'. - Stand-alone, run
HorizonADLDSTools.batin the ADLDS Tools folder.
The workspace has a navigation tree on the left with four groups: Data Visualizer (shown by default), Admin Ops, Local Tools, and CPA Tools.
Common behavior across the workspace:
- Operations run in the background. Click Stop to end the active operation.
- A shared Script Output log shows progress for each operation.
- Output is written to
%ProgramData%\Omnissa\Horizon\logs\adlds-outby default. To change the location, click Settings (the gear icon). Each session uses a timestamped subfolder. - Local AD LDS uses port 389 and global AD LDS uses port 22389.
- Passwords are held in memory only and are not written to disk.
- Click ? Help for a description of the selected group.
Data Visualizer
Browse AD LDS data in a list with a detail pane, in one of two modes:
- LIVE queries AD LDS directly.
- FILE reads LDIF files that you load, so you can inspect an export offline.
| Local AD LDS views | Global AD LDS views |
|---|---|
| Desktop Pools and Farms, Machines, vCenter Servers, Servers (Connection Servers, gateways, UAGs), Capacity / Cloud, Events Database, Authenticators, Permissions, Global Settings, Licensing, FSP | Pods and Sites, Desktop Global Entitlements, App Global Entitlements, GE Associations (User Entitlements, Home Site Overrides, Local Pools), FSP |
- Use the search box to filter rows, the contextual drop-down menus (for example, machine State or pool Type) to narrow a view, and the column headers to sort.
- Select a row to see all of its attributes in the detail pane.
- In the Machines view, click Refresh Sessions to update session counts without reloading the full list.
Admin Ops
Admin Ops has a shared ADLDS Host box (default localhost) and a Query button. When opened, it queries both local and global AD LDS. Admin Ops also includes ADWS State Management.
FSMO Roles Manager
- Shows the Schema Master and Naming Master owners and the Connection Server inventory in the configuration partition, for local and global AD LDS.
- Shows how many configuration entries are unknown, meaning there is no matching active Connection Server in either partition. Click Remove CS to review and remove those stale entries.
- To move a role, select a live Connection Server and click Transfer Schema Master or Transfer Naming Master.
Decommission CS
Removes decommissioned Connection Servers from local and global AD LDS.
- Load the server list. Either add the exported LDIF files (one per pod, plus the global export) and click Parse, or click Reload Live to query AD LDS directly.
- In the Connection Servers grid, select each server to remove. Click a row to select it as the FSMO transfer target.
- Set the Output Folder and the local and global target servers, and select Dry Run.
- Click Generate to produce the removal LDIF files, then click Apply Local LDIF and Apply Global LDIF.
- Review the Dry Run output, then deselect Dry Run and apply the files again.
Replication Status
- Discover Connection Servers by pod, select a scope (selected server, selected pod, or all discovered pods), and run
repadmin /showreplorrepadmin /syncall. - Each run writes a timestamped
repadmin_status_<time>folder with per-server CSV and text files and a summary CSV, and lists the servers that need attention.
Local Tools
| Tool | What it does | Key options |
|---|---|---|
| User Cleanup Tool | Removes the Horizon references of a user (entitlements, pool memberships, assignments, FSP) from local AD LDS and optionally global AD LDS, using the Horizon REST API and LDAP. | Horizon server and administrator credentials; identify the user by SID or by user name and domain; partition (Horizon or Legacy); Include Global AD LDS; Dry Run; Force; optional machine deletion, including from disk, which cannot be undone. |
| Stale User Finder | Checks each FSP entry against Active Directory and writes a report and a delete LDIF for accounts that no longer exist. | Discover Domains, then per-domain credentials (blank uses your Windows session), Skip, and Test; output folder; optional removal of dedicated machines. |
| Apply LDIF File | Applies a delete or modify LDIF file to local AD LDS, such as the one the Stale User Finder produces. | LDIF file, server and port, Dry Run, Continue on Error. |
| Stale User Prefs | Finds and removes stale pae-Prop user preference objects that build up when user accounts are deleted without a full cleanup. | Live or LDIF source; age threshold in days (default 90); Count only; Write delete LDIF; a confirmation check box before deleting. |
| Sync FSP | Fills in missing OBJECTGUID and DISTINGUISHEDNAME values in FSP descriptions by looking up each SID in Active Directory. | Optional domain controller and single-user filter; also sync global AD LDS; skip AD groups; Dry Run. Built-in and well-known accounts are always excluded. |
The Stale User Finder writes StaleUsers_<timestamp>.log, .csv, and .ldif files. Review the LDIF file, then apply it with Apply LDIF File.
CPA Tools
| Tool | What it does |
|---|---|
| Orphan Assignments | Finds orphaned global assignments in global AD LDS and writes a delete LDIF file for review. Flags assignments with no user identity or no entitlement link. |
| Apply LDIF | Applies a delete LDIF file to global AD LDS (default localhost:22389). Use Dry Run first. |
| Export | Exports CPA data, recovers it into a target partition, or both. Select a phase (Dump, Recover, or Both), the host and output folder, and options such as Dry Run and Auto Import. The panel shows live CPA statistics, and can export an encrypted AD LDS backup and decrypt one for use as input. Zip + Save Output packages the session output and logs for support. |
| Local Pools Import | Imports pool associations from a previously exported file into a target pod, remapping them from a source pod. Select the source pod, the target pod (Refresh Pods loads live pods), and Dry Run or commit. |
Command-Line Tools
These tools open in a console window and use your current Windows session for AD LDS access.
- Find Stale Users (
Find-StaleUsers.ps1): scans local and global AD LDS for stale users and writes LDIF files for cleanup. It can optionally remove associated machines through the REST API. - Apply ADLDS LDIF (
Apply-AdldsLdif.ps1): applies a cleanup LDIF file usingldifde. Supports-WhatIffor a preview with no AD LDS contact, and-ContinueOnError. - Remove Horizon User (
Remove-HorizonUser.ps1): removes one user from local and global AD LDS, including FSP references, entitlements, pool memberships, and global assignments. - Replication operations (
Invoke-ReplicationOps.ps1):-Operation showrepl|syncall|scanallwith-Scope SelectedCS|PodLevel|AllDiscoveredPods. Run with-Usagefor examples.
Partition Migration
Partition Migration moves Horizon AD LDS from the legacy partition to the new Horizon partition. It supports migrating pods independently in separate maintenance windows, so Cloud Pod Architecture (CPA) keeps working in large multi-pod deployments. It is available from the ADLDS Maintenance Tools landing page and from the AD LDS Operations console menu.
Important: Read the following before you start.
- Upgrade the Connection Servers to version 2606 or later. In a CPA environment, upgrade the Connection Servers in all pods first.
- If you use Omnissa Access, upgrade the Access Connector to 24.12 or later, and apply the required patch unless you are on 24.12.1 or later.
- Migrate during a maintenance window. Avoid pool and entitlement changes and desktop or application launches while a migration is in progress.
- During local migration, all Connection Servers in the pod are put in Disabled mode and new connections are blocked until it completes.
- Confirm that there are no replication issues in the Horizon Console dashboard, that there are no stale Connection Server entries in the local or global configuration partitions, and that all Connection Servers in all pods stay up and healthy.
- Back up both local and global LDAP data before you begin.
Run a Partition Migration
- Select the migration type: Local Partition Migration, Global Partition Migration, or Old Partition Cleanup, and enter the Horizon administrator credentials.
- Click Run Pre-checks. The result appears in the log.
- If the pre-checks pass, the step buttons appear. Run them in order, from top to bottom. Each step logs its progress.
If your API session expires during a step, you are prompted to update your credentials and click Reconnect. The operation then continues.
Local partition migration (per pod)
- Validate prerequisites and prepare for migration.
- Prepare the current pod for migration and disable the pod.
- Initiate pod migration.
- Switch the pod to the Horizon local partition.
- Validate and enable the current pod.
Global partition migration (federation)
- Initiate global partition migration for the federation.
- Switch the federation to the Horizon global partition.
- Validate that the Horizon global partition is in use.
- If necessary, revert the federation to the old global partition (recovery). You are asked to confirm. Any answer other than Yes cancels the revert without changes.
- After a revert, validate that the old global partition is in use.
Old partition cleanup
After a migration is validated, use Old Partition Cleanup to remove the legacy partition data. Select the confirmation check box before you run it.
Manage Secure Gateway Service
This module enables or disables the PCoIP Secure Gateway and BLAST Secure Gateway services on a Horizon Connection Server.
To use it, select Manage Secure Gateway in the main window and click Launch. Select an operation, click Execute, and review the log. The relevant services are stopped and started as part of the change. From the command line, run .\Start-HorizonAdvisor.ps1 -Flow 'Manage Security Gateway' to open the numbered menu below.
Available Operations
| Option | Operation |
|---|---|
| 1 | Disable PCoIP Secure Gateway |
| 2 | Disable BLAST Secure Gateway |
| 3 | Disable both PCoIP and BLAST Secure Gateway |
| 4 | Enable PCoIP Secure Gateway |
| 5 | Enable BLAST Secure Gateway |
| 6 | Enable both PCoIP and BLAST Secure Gateway |
| 7 | Quit |
Secure Gateway management must be run directly on the Horizon Connection Server where the gateway services are installed. The tool will validate that a Horizon Connection Server installation is detected before proceeding.
Command-Line (Non-Interactive) Mode
Horizon Advisor supports non-interactive execution for use in scripts or automation pipelines. Pass parameters directly to Start-HorizonAdvisor.ps1 from the command line.
Syntax
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation <type> -TargetHorizonVersion <version> [options]
Parameters
| Parameter | Required | Description |
|---|---|---|
| -Flow | Yes | 'Precheck Validation', 'ADLDS Operation', 'ADLDS Tools', 'Manage Security Gateway', or lcm |
| -Validation | For non-interactive Pre-Check | activedirectory, vcenter, server, ldap, capacityprovider, or all. With -Flow 'ADLDS Operation', use adws to open ADWS State Management. |
| -TargetHorizonVersion | Yes (except ldap-only) | Target Horizon version, e.g., 2503 |
| -AdFqdn | For activedirectory / all | Active Directory FQDN |
| -VCenterFqdn | For vcenter / all | vCenter FQDN |
| -VCenterVersion | For vcenter / all | vCenter version, e.g., 8.0.2 |
| -CapacityProviderType | For capacityprovider | Capacity provider type, e.g., Nutanix_PrismCentral, OpenShift, or Amazon_WorkSpaces_Core |
| -CapacityProviderFqdn | For capacityprovider | Capacity provider FQDN |
| -CapacityProviderVersion | For capacityprovider | Capacity provider version. Omit for providers that have no version check. |
| -HorizonAdminUsername | For ldap / all | Horizon Administrator username |
| -HorizonDomain | For ldap / all | Horizon domain |
| -HorizonAdminPassword | For ldap / all | Horizon Administrator password as a SecureString |
| -AcceptSelfSignedCertificate | No | Suppresses the TLS certificate prompt for ldap validations |
| -ExecutionMode | No | Local (default), Remote, LocalPOD, or CPACluster |
| -RemoteServersCSV | With -ExecutionMode Remote | File that lists the servers to validate |
| -Task | For lcm | install or upgrade |
| -Config | For lcm | LCM configuration file |
| -BuildMetadata | No | Official build metadata file, for an lcm build that is not in the embedded catalog |
| -TelemetryConsent | No | enable, disable, reset, or status |
| -Help | No | Displays command-line help |
Examples
Run server validation:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation server -TargetHorizonVersion '2503'
Run Active Directory validation:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation activedirectory -AdFqdn 'dc.corp.example.com' -TargetHorizonVersion '2503'
Run vCenter validation:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation vcenter -VCenterFqdn 'vcenter.corp.example.com' -VCenterVersion '8.0.2' -TargetHorizonVersion '2503'
Run capacity provider validation (OpenShift):
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation capacityprovider -CapacityProviderType OpenShift -CapacityProviderFqdn 'openshift.example.com' -CapacityProviderVersion '4.19' -TargetHorizonVersion '2606'
Run LDAP validation — password is prompted securely at runtime:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation ldap -HorizonAdminUsername 'admin' -HorizonDomain 'corp'
Run LDAP validation and accept a self-signed certificate without being prompted:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation ldap -HorizonAdminUsername 'admin' -HorizonDomain 'corp' -AcceptSelfSignedCertificate
Run all validations — password is prompted securely at runtime:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation all -AdFqdn 'dc.corp.example.com' -VCenterFqdn 'vcenter.corp.example.com' -VCenterVersion '8.0.2' -TargetHorizonVersion '2503' -HorizonAdminUsername 'admin' -HorizonDomain 'corp'
Run all validations against a list of servers:
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation all -ExecutionMode Remote -RemoteServersCSV 'C:\servers.csv' -AdFqdn 'dc.corp.example.com' -VCenterFqdn 'vcenter.corp.example.com' -VCenterVersion '8.0.2' -TargetHorizonVersion '2503' -HorizonAdminUsername 'admin' -HorizonDomain 'corp'
Install or upgrade Connection Servers from a configuration file:
.\Start-HorizonAdvisor.ps1 -Flow lcm -Task install -Config lcm_install.json
.\Start-HorizonAdvisor.ps1 -Flow lcm -Task upgrade -Config lcm_upgrade.json
Open ADWS State Management or the ADLDS Maintenance Tools:
.\Start-HorizonAdvisor.ps1 -Flow 'ADLDS Operation' -Validation adws
.\Start-HorizonAdvisor.ps1 -Flow 'ADLDS Tools'
Password Handling for Automated / Scripted Runs
When running Horizon Advisor as part of a scheduled task or automation pipeline where no interactive prompt is possible, you need to supply the password upfront using the -HorizonAdminPassword parameter as a PowerShell SecureString.
How you provision SecureString is up to your organization’s security practices, for example: from a secrets manager, credential vault, an encrypted file, or any other method. The only requirement is that the value passed to -HorizonAdminPassword must be a SecureString.
Example: passing a SecureString for automated execution:
# Obtain a SecureString by whatever method suits your environment
$securePassword = <your SecureString here>
.\Start-HorizonAdvisor.ps1 -Flow 'Precheck Validation' -Validation ldap `
-HorizonAdminUsername 'admin' -HorizonDomain 'corp' `
-HorizonAdminPassword $securePassword
Getting Help
To display command-line usage and examples directly from the console:
.\Start-HorizonAdvisor.ps1 -Help
此頁面對您有幫助嗎?