---
version: "3.6"
language: "en"
---
# AppsAnywhere

## AppsAnywhere

Setup and administration guides for AppsAnywhere (Cloud and Self-Hosted).
*

  ### [Server Deployment and Configuration](https://docs.appsanywhere.com/appsanywhere/3.6/server-deployment-and-configuration.md)

  * [Planning and Prerequisites](https://docs.appsanywhere.com/appsanywhere/3.6/planning-and-prerequisites.md)
  * [Deploying the AppsAnywhere Appliance](https://docs.appsanywhere.com/appsanywhere/3.6/deploying-the-appsanywhere-appliance.md)
  * [Upgrading AppsAnywhere](https://docs.appsanywhere.com/appsanywhere/3.6/upgrading-an-appsanywhere-appliance.md)
  * [Upgrading Analytics](https://docs.appsanywhere.com/appsanywhere/3.6/upgrading-analytics.md)
  * [Appliance Configuration Console (ACC)](https://docs.appsanywhere.com/appsanywhere/3.6/appliance-configuration-console-acc.md)
  * [2 more pages](https://docs.appsanywhere.com/appsanywhere/3.6/server-deployment-and-configuration.md)
*

  #### [Configuring AppsAnywhere](https://docs.appsanywhere.com/appsanywhere/3.6/configuring-appsanywhere.md)

  * [Connectors](https://docs.appsanywhere.com/appsanywhere/3.6/connectors.md)
  * [Connecting to a user directory](https://docs.appsanywhere.com/appsanywhere/3.6/connecting-to-a-user-directory.md)
  * [Managing Settings](https://docs.appsanywhere.com/appsanywhere/3.6/managing-settings.md)
  * [Status dashboard](https://docs.appsanywhere.com/appsanywhere/3.6/status-dashboard.md)
  * [Get help menu](https://docs.appsanywhere.com/appsanywhere/3.6/get-help-menu.md)
*

  #### [Managing Access](https://docs.appsanywhere.com/appsanywhere/3.6/managing-access.md)

  * [Importing directory entities](https://docs.appsanywhere.com/appsanywhere/3.6/importing-directory-entities.md)
  * [Single Sign-On Settings](https://docs.appsanywhere.com/appsanywhere/3.6/single-sign-on-settings.md)
  * [Managing Imported Records](https://docs.appsanywhere.com/appsanywhere/3.6/managing-imported-records.md)
  * [Creating SAML Attribute Mappings](https://docs.appsanywhere.com/appsanywhere/3.6/creating-saml-attribute-mappings.md)
*

  #### [Managing Applications](https://docs.appsanywhere.com/appsanywhere/3.6/managing-applications.md)

  * [Uploading Apps to AppsAnywhere Cloud](https://docs.appsanywhere.com/appsanywhere/3.6/uploading-apps-to-appsanywhere-cloud.md)
  * [Viewing applications and desktops](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-applications.md)
  * [Creating an application](https://docs.appsanywhere.com/appsanywhere/3.6/creating-an-application.md)
  * [Creating a desktop](https://docs.appsanywhere.com/appsanywhere/3.6/creating-a-desktop.md)
  * [Delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/adding-delivery-methods.md)
  * [4 more pages](https://docs.appsanywhere.com/appsanywhere/3.6/managing-applications.md)
*

  #### [Cloud Delivery](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery.md)

  * [Cloud Delivery - Sessions](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-sessions.md)
  * [Cloud Delivery - Reports](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-reports.md)
*

  #### [Provisioning](https://docs.appsanywhere.com/appsanywhere/3.6/provisioning.md)

  * [Creating a provision](https://docs.appsanywhere.com/appsanywhere/3.6/creating-a-provision.md)
  * [Provision vs DM Restrictions](https://docs.appsanywhere.com/appsanywhere/3.6/provision-vs-dm-restrictions.md)
  * [Viewing Provisions](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-provisions.md)
  * [Editing a provision](https://docs.appsanywhere.com/appsanywhere/3.6/editing-a-provision.md)
  * [Deleting a provision](https://docs.appsanywhere.com/appsanywhere/3.6/deleting-a-provision.md)
  * [1 more pages](https://docs.appsanywhere.com/appsanywhere/3.6/provisioning.md)
*

  #### [Analytics](https://docs.appsanywhere.com/appsanywhere/3.6/analytics.md)

  * [Using Explores](https://docs.appsanywhere.com/appsanywhere/3.6/using-explores.md)
  * [Using Dashboards](https://docs.appsanywhere.com/appsanywhere/3.6/using-dashboards.md)
  * [Creating Reports](https://docs.appsanywhere.com/appsanywhere/3.6/creating-reports.md)
  * [Creating Tiles and Dashboards](https://docs.appsanywhere.com/appsanywhere/3.6/creating-tiles-and-dashboards.md)
*

  #### [Release Notes](https://docs.appsanywhere.com/appsanywhere/3.6/release-notes.md)

  * [AppsAnywhere Release Notes](https://docs.appsanywhere.com/appsanywhere/3.6/appsanywhere-release-notes.md)
  * [Cloudpaging Release Notes](https://docs.appsanywhere.com/appsanywhere/3.6/cloudpaging-release-notes.md)
  * [Parallels RAS Release Notes](https://docs.appsanywhere.com/appsanywhere/3.6/ras.md)
  * [Deprecation Notices](https://docs.appsanywhere.com/appsanywhere/3.6/deprecation-notices.md)
  * [Security Advisories](https://docs.appsanywhere.com/appsanywhere/3.6/security-advisories.md)
*

  #### [Useful Resources](https://docs.appsanywhere.com/appsanywhere/3.6/useful-resources.md)

  * [Troubleshooting Support Guide for AppsAnywhere](https://docs.appsanywhere.com/appsanywhere/3.6/troubleshooting-support-guide-for-appsanywhere.md)
  * [Compatibility](https://docs.appsanywhere.com/appsanywhere/3.6/compatibility.md)
*

  #### [End User Guide](https://docs.appsanywhere.com/appsanywhere/3.6/end-user-guide.md)

  * [End User Minimum Requirements](https://docs.appsanywhere.com/appsanywhere/3.6/end-user-minimum-requirements.md)

---
version: "3.6"
language: "en"
---
# 2023-11 security advisory

Your trust in our products and service means the world to us, and we are committed to being proactive and keeping you informed about any security updates to our software.

As part of this proactive stance, we have released security updates for AppsAnywhere Server 2.11, 2.12, 3.0 and 3.1 (patch AA-5085) and AppsAnywhere Client (1.6.1, 2.0.1). These new releases resolve two security issues (CVE-2023-41138 / CVE-2023-41137) and we recommend all customers who haven't already applied these updates to do so by contacting our support team.

Below are the details of these two issues identified.

## AppsAnywhere macOS Client - CVE-2023-41138 - Bad privilege assignment

|        **Summary**        |                                            The AppsAnywhere macOS client-privileged helper can be tricked into executing arbitrary commands with elevated permissions by a local user process.                                            |
| **Advisory release date** |                                                                                                                2023-11-09                                                                                                                 |
|        **Product**        |                                                                                                            AppsAnywhere Client                                                                                                            |
|   **Affected versions**   |             * AppsAnywhere macOS client v1.4.0 * AppsAnywhere macOS client v1.4.1 * AppsAnywhere macOS client v1.5.1 * AppsAnywhere macOS client v1.5.2 * AppsAnywhere macOS client v1.6.0 * AppsAnywhere macOS client v2.0.0             |
|    **Fixed versions**     | * AppsAnywhere Windows client v1.6.1 * AppsAnywhere Windows client v2.0.1 * AppsAnywhere Windows client v2.2.0 or later * AppsAnywhere macOS client v1.6.1 * AppsAnywhere macOS client v2.0.1 * AppsAnywhere macOS client v2.2.0 or later |
|       **CVE ID(s)**       |                                                                                                              CVE-2023-41138                                                                                                               |
|         **CVSS**          |                                                                                         7.5 (High) - CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H                                                                                         |
|     **Discovered by**     |                                                                                                               Gaelan Steele                                                                                                               |
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

## AppsAnywhere Client - CVE-2023-41137 - Cryptographic error

|        **Summary**        |                                                                                                                                                                                                               Symmetric encryption used to protect messages between the AppsAnywhere server and client can be broken by reverse engineering the client and used to impersonate the AppsAnywhere server.                                                                                                                                                                                                                |
| **Advisory release date** |                                                                                                                                                                                                                                                                                                       2023-11-09                                                                                                                                                                                                                                                                                                       |
|        **Product**        |                                                                                                                                                                                                                                                                                                  AppsAnywhere Client                                                                                                                                                                                                                                                                                                   |
|   **Affected versions**   |                                                                                                       * AppsAnywhere Windows client v1.4.0 * AppsAnywhere Windows client v1.4.1 * AppsAnywhere Windows client v1.5.1 * AppsAnywhere Windows client v1.6.0 * AppsAnywhere Windows client v2.0.0 * AppsAnywhere macOS client v1.4.0 * AppsAnywhere macOS client v1.4.1 * AppsAnywhere macOS client v1.5.1 * AppsAnywhere macOS client v1.5.2 * AppsAnywhere macOS client v1.6.0 * AppsAnywhere macOS client v2.0.0                                                                                                       |
|    **Fixed versions**     | Fixed versions of the AppsAnywhere client **require** a compatible AppsAnywhere server version. **Older server versions are incompatible.** ++Compatible server versions:++ * AppsAnywhere 2.11: 2.11 + patch AA-5085 * AppsAnywhere 2.12: 2.12 + patch AA-5085 * AppsAnywhere 3.0: 3.0 + patch AA-5085 * AppsAnywhere 3.1: 3.1 + patch AA-5085 * AppsAnywhere 3.2 and later * AppsAnywhere Windows client v1.6.1 * AppsAnywhere Windows client v2.0.1 * AppsAnywhere Windows client v2.2.0 or later * AppsAnywhere macOS client v1.6.1 * AppsAnywhere macOS client v2.0.1 * AppsAnywhere macOS client v2.2.0 or later |
|       **CVE ID(s)**       |                                                                                                                                                                                                                                                                                                     CVE-2023-41137                                                                                                                                                                                                                                                                                                     |
|         **CVSS**          |                                                                                                                                                                                                                                                                               8.0 (High) - CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H                                                                                                                                                                                                                                                                                |
|     **Discovered by**     |                                                                                                                                                                                                                                                                                                     Gaelan Steele                                                                                                                                                                                                                                                                                                      |
|---------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

---
version: "3.6"
language: "en"
---
# Adding a Citrix environment

## Overview

Linking AppsAnywhere to a Citrix Workspace environment is a great way to provide your users access to Citrix resources and desktops. This section will cover all aspects of managing the link between AppsAnywhere and Citrix.

## Prerequisites

To ensure end users can access Citrix resources published in AppsAnywhere

1. The AppsAnywhere v1.3.6 or later client is required on the end users device.

2. The Citrix Receiver or Citrix Workspace App must be preinstalled on the end users device. AppsAnywhere does not currently manage the deploying of the Citrix Receiver/Workspace App Client.

3. The Citrix Receiver/Workspace App must also be configured/connected to the relevant Citrix Storefront.

As part of the integration the AppsAnywhere Client during validation will use the Citrix selfservice module which is part of the Receiver/Workspace App to provide a list of available resources for that user. This information is passed to the AppsAnywhere Portal during the validation and cross referenced with published resources/delivery methods defined. Successful matches will be displayed within the AppsAnywhere Portal and can be launched. Currently only Windows platforms are supported.

## Linking a Citrix Environment to AppsAnywhere

Similar to other integration's you must add details of the Citrix environment into AppsAnywhere. To add a Citrix environment

1. Log into AppsAnywhere as a Global admin user (usually reserved for AppsAnywhere Support)

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the navigation menu at the top of the page, go to **Connectors** \> **Citrix**.

On the Manage Citrix Environments page click the Add button to add a new environment. The following table describes each field and setting available, it's intended value and an example for each  

|  Field Name   |                                                                                          Description                                                                                           |                                                                   Intended Value                                                                    |                                                                                                                                                                                                                          Example                                                                                                                                                                                                                           |
|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Name          | The internal display name of the environment                                                                                                                                                   | A text label                                                                                                                                        | Citrix Environment                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Host          | The internal FQDN of the Citrix Storefront server                                                                                                                                              |                                                                                                                                                     | my-storefront.uni.edu                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Port          | The port number the Storefront server is listening on                                                                                                                                          | Enter port 443 for HTTPS (default) or port 80 for HTTP Alternatively if the Citrix Storefront is listening on a different port number enter it here | 443                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Launch Method | The default launch method AppsAnywhere will use This is the global and default method the system will use, however it can be configured separately for each Citrix delivery method if required | "Launch" or "Quick Launch".                                                                                                                         | The "Launch" method when used will pass additional information to the Citrix Receiver/Workspace App such as the Storefront hostname, Storefront ID etc. This method is recommended if there are multiple Citrix Storefront's within the environment The "Quick Launch" method when used will only pass the published resource name to the Citrix Reciever/Workspace App. This method can provide faster execution in single Citrix Storefront environments |

Next Steps

Now AppsAnywhere is connected to your Citrix environment, follow these articles to add delivery methods in AppsAnywhere:

* [Citrix Desktop Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/citrix-desktop-delivery-method.md)

* [Citrix Native Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/citrix-native-delivery-method.md)

* [Citrix Cloudpaged Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/citrix-cloudpaged-delivery-method.md)

---
version: "3.6"
language: "en"
---
# Adding a Cloudpaging Environment

## Overview

AppsAnywhere has the ability to link to any cloudpaging environment in order to deliver cloudpaged applications to end users. Once you link AppsAnywhere to a new cloudpaging environment you will be able to import applications loaded into that environment into AppsAnywhere and make them available to your users through AppsAnywhere. In this article, we will discover how to create a new connection to a cloudpaging environment.

## Creating the connection

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the sidebar menu, go to **Connectors** \>**Cloudpaging**

4. Click on the **Add** **environment**button on the top right of the page

**Enter the details of your Cloudpaging environment:**  

|       Form Field Name       |                                                                                          Explanation                                                                                           |                                                                                                         Expected Value                                                                                                         |                     Example                     |
|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| Name                        | A friendly name for the connection                                                                                                                                                             | You can call the connection anything you want                                                                                                                                                                                  | My Cloudpaging Environment                      |
| License Server Hostname     | The fully qualified domain name for your cloudpaging license server                                                                                                                            | Ideally, this should be a load balanced address that encompasses all of your available license servers                                                                                                                         | cp-license.s2university.edu                     |
| License Server Port         | The port that your license service is running on                                                                                                                                               | This usually depends on whether you are using a secure connection or not                                                                                                                                                       | 443                                             |
| Is Secure?                  | Whether or not to use a secure connection when connecting to your license service                                                                                                              | By default, cloudpaging license services are set up over a secure connection                                                                                                                                                   | Yes                                             |
| Provider Key                | The Service Provider Key that cloudpaging server uses to authenticate requests                                                                                                                 | This can be found by logging into your cloudpaging admin interface, under Systems \> Configurations \> Web Service Key                                                                                                         | AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE            |
| API Server URL              | The URL for your cloudpaging admin interface, including the /jukeboxserver suffix                                                                                                              | If possible, this should be a load balanced URL that encompasses all of your available admin services, but this is not essential as this is only used when you are making changes in AppsAnywhere, not for servicing end users | https://cp-admin.s2university.edu/jukeboxserver |
| Directory Repository Filter | If you only want to make a subset of applications available from the cloudpaging environment, you can limit the link to a specific directory in the repository by adding them as a filter here | Enter a list of directory names, separated by semi colons. Directories must exist under the main repository path for that cloudpaging environment                                                                              | *usually left blank*                            |

### Test the connection

A separate "Test connection" button is available next to the "Save" button on the form, which can be used to help you determine whether working details have been entered or not. The details in the form will **not** be saved when this button is used, allowing you to make sure the entered details are correct before committing to anything.  
![image-20230817-092803.png](https://docs.appsanywhere.com/__attachments/a_c48db691d9a4ea9f4528f8d00d63f2c14ac5946fff16fb8d4c69ceaa205c75fd/image-20230817-092803.png?cb=a918b04b1feb55b0fc7268a95953e08c)
The "Test connection" button next to the "Save" button

More information about this connection test can be found on the [Status dashboard](https://docs.appsanywhere.com/appsanywhere/3.6/status-dashboard.md#Cloudpaging) page.

#### Save the connection

Once you have entered all of the relevant details of the connection, hit the ![Save button](https://docs.appsanywhere.com/__attachments/a_27da6cdcf0a81dd645f6189fb406245a42e2427940c0ec6d30565f868826508f/image2016-8-17%2012:43:13.png?cb=c33599c1a70bc61f8ba06125a0610cbb) button

You will then be sent back to the [Viewing Cloudpaging Environments](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-cloudpaging-environments.md) page, where you should see your new connection and the following message:  
![image2017-1-9 10:33:27.png](https://docs.appsanywhere.com/__attachments/a_d248cf6f8f5b3151967c7ae5f11c8f30e050e759f6016710182cc2246a9c5062/image2017-1-9%2010:33:27.png?cb=f3f42b54f94b64c289c9072f152fe94c)

## Security Considerations

The cloudpaging licensing service is responsible for granting access to applications for a particular user but has no awareness of any of the restrictions defined in, and enforced by, AppsAnywhere. In order to ensure that users have no way of circumventing the AppsAnywhere restrictions, you should ensure that your cloudpaging license service is only able to accept requests from your AppsAnywhere servers. The easiest way to manage this would be using a firewall or network access rule.  
The only services in your infrastructure that need to be public facing are your AppsAnywhere servers and your Paging servers

---
version: "3.6"
language: "en"
---
# Adding a Jamf Pro Environment

## Overview

AppsAnywhere has the ability to link to any Jamf Pro environment in order to deliver managed resources to end users. Once you link AppsAnywhere to a new Jamf Pro environment you will be able to import policies, e-books and mac app store applications that are configured in that environment into AppsAnywhere and make them available to your users through as part of your delivery strategy. In this article, we will discover how to create a new connection to a Jamf Pro environment.

## Creating the connection

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the sidebar menu, go to **Connectors \> Jamf Pro Server**

4. Click on the **Add** button on the top right of the page

**Enter the details of your Jamf Pro environment:**  

|    Form Field Name    |                                                                                      Explanation                                                                                       |                                                                                                Expected Value                                                                                                 |                        Example                         |
|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
| Name                  | A friendly name for the connection                                                                                                                                                     | You can call the connection anything you want                                                                                                                                                                 | My Jamf Pro Environment                                |
| Host                  | The fully qualified domain name for your Jamf Pro instance                                                                                                                             | This should be the highest-level DNS name available for your Jamf Pro instance. This can be a cloud instance or a local instance                                                                              | myorganisation.jamfcloud.com                           |
| Port                  | The port that your Jamf Pro instance is running on                                                                                                                                     | This usually depends on whether you are using a secure connection or not, but we presume you are by default                                                                                                   | 8443                                                   |
| Service User          | The account that AppsAnywhere will use to authenticate with the Jamf Pro API                                                                                                           | The username for the service account you created (see details further down the page)                                                                                                                          | appsanywhere_service_user                              |
| Service User Password | The password for the service user that AppsAnywhere will use to authenticate with the Jamf Pro API                                                                                     | The secure password that was created for the service account when it was set up in Jamf Pro.                                                                                                                  | 65b2\*TpQX7uJz7Gn4rE2 *\* please don't use that one..* |
| Allow User-Level MDM  | Indicates whether users logged into their macOS device with a local user account can still access Jamf Pro resources. This only applies to devices that are *not* joined to the domain | This option should only be enabled if you fully understand the implications of enabling user-level MDM (see warning below) and you are happy for AppsAnywhere to enable User-Level MDM on your user's devices | Do Not Allow                                           |

Enabling User-Level MDM can impact existing workflows. **Use with caution!**

For computers with macOS 10.13.2 and later, the workflow AppsAnywhere uses for enabling MDM for local user accounts will reset any previous User Approved MDM Enrollments. If you use UAMDM as a part of any existing ongoing workflows within your organisation, you should evaluate the impact of these changes before enabling this setting in AppsAnywhere.

See the [Jamf Knowledgebase](https://www.jamf.com/jamf-nation/articles/372/enabling-mdm-for-local-user-accounts) for more information.

### Test the connection

A separate "Test connection" button is available next to the "Save" button on the form, which can be used to help you determine whether working details have been entered or not. The details in the form will **not** be saved when this button is used, allowing you to make sure the entered details are correct before committing to anything.  
![image-20230817-092803.png](https://docs.appsanywhere.com/__attachments/a_676e77efb76775c6d9094c6c74d8dbc7c0258487340103ef496db3aeaf23427f/image-20230817-092803.png?cb=a918b04b1feb55b0fc7268a95953e08c)
The "Test connection" button next to the "Save" button

More information about this connection test can be found on the [Status dashboard](https://docs.appsanywhere.com/appsanywhere/3.6/status-dashboard.md#Jamf-Pro) page, and in both the [Service Account Requirements](https://docs.appsanywhere.com/appsanywhere/3.6/adding-a-jamf-pro-environment.md#Service-Account-Requirements), and [Required Privileges](https://docs.appsanywhere.com/appsanywhere/3.6/adding-a-jamf-pro-environment.md#Required-Privileges) sections on this page right here.

#### Save the connection

Once you have entered all of the relevant details of the connection, hit the ![Save button](https://docs.appsanywhere.com/__attachments/a_a373e4ede30b9cbefd288f1ea75f657bc391357c7eb9c195a26ded2466b3a064/image2016-8-17%2012:43:13.png?cb=c33599c1a70bc61f8ba06125a0610cbb) button

You will then be sent back to the [Viewing Jamf Pro Environments](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-jamf-pro-environments.md) page, where you should see your new connection and the following message:  
![image2017-1-9 10:33:27.png](https://docs.appsanywhere.com/__attachments/a_ba76954b7467276a7ee86dea269923a6d91ed424d50c099636ad37ff1bab0fa0/image2017-1-9%2010:33:27.png?cb=f3f42b54f94b64c289c9072f152fe94c)

## Service Account Requirements

For AppsAnywhere to interact with your Jamf Pro environment, a service account is required. The credentials for this service account are entered into the details for the Jamf Pro environment, as described above.

For security reasons, we recommend creating a dedicated account to use for this integration, the requirements for which are set out below:

1. Log into your Jamf Pro environment with an account that has permissions to create new users.

2. Click on the **Settings Cog** (

   ![image2018-6-8 14:49:38.png](https://docs.appsanywhere.com/__attachments/a_f48418c715259123a0d018e7cca053d7351148e36c658a79846e0fef80d7f2d0/image2018-6-8%2014:49:38.png?cb=a90cc8bdcad6ab72938e771e23ec089f)

   ) in the top right corner
3. Go to **Jamf Pro User Accounts \& Groups**

4. Click **New**

5. Select **Create Standard Account** and click **Next**

6. Choose a **Username** for the service user (e.g. appsanywhere_service_user)

7. Set **Access Level** to **Full Access**

8. Set **Privilege Set** to **Custom**

9. Set **Access Status** to **Enabled**

10. Choose your own **Display Name** for the user (e.g. AppsAnywhere User)

11. Enter an **Email Address** for the account (we suggest a group account, so no one person is responsible for the account)

12. Choose a secure **Password** for the account (recommended \> 20 characters, random characters including numbers and symbols)

13. Leave **Force user to change password at next login** unchecked

14. Click on the **Privileges** tab at the top

15. Select the required privileges as shown in the table below

16. Click **Save**

### Required Privileges

**Jamf Pro Server Objects**  

|   Server Object    | Create | Read | Update | Delete |
|--------------------|--------|------|--------|--------|
| Computers          |        | YES  |        |        |
| eBooks             |        | YES  |        |        |
| Mac App Store Apps |        | YES  | YES    |        |
| Policies           |        | YES  |        |        |

That's it!

---
version: "3.6"
language: "en"
---
# Adding a Parallels Environment

## Overview

ApspAnywhere has the ability to link to any Parallels RAS environment in order to deliver remote resources to end users. Once you link AppsAnywhere to a new RAS environment you will then be able to reference RAS applications as delivery methods and make them available to your users. In this article, we will discover how to create a new connection to a Parallels environment.

## Creating the connection

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the admin portal

3. On the navigation menu at the top of the page, go to **Connectors** \> **Parallels**

4. Click on the **Add environment** button on the top right of the page

**Enter the details of your RAS environment:**  

|                   Form Field Name                    |                                                                                              Explanation                                                                                               |                                                                                                                                                                              Expected Value                                                                                                                                                                               |          Example           |
|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|
| Name                                                 | A friendly name for the connection                                                                                                                                                                     | You can call the connection anything you want                                                                                                                                                                                                                                                                                                                             | RAS Production Environment |
| Host                                                 | The fully qualified domain name for your RAS gateway server                                                                                                                                            | Ideally, this should be a load balanced address that encompasses all of your available gateway servers (assuming you have more than one)                                                                                                                                                                                                                                  | ras-gateway.myorg.com      |
| Port                                                 | The port that your gateway service is running on                                                                                                                                                       | This usually depends on whether you are using a secure connection or not                                                                                                                                                                                                                                                                                                  | 443                        |
| Encryption Type                                      | Indicates whether or not to use a secure connection when connecting to your gateway service                                                                                                            | By default, gateway services are set up over a secure connection                                                                                                                                                                                                                                                                                                          | SSL                        |
| Backup Host                                          | The fully qualified domain name for an alternative (backup) RAS gateway server                                                                                                                         | If you are not using a load balancer, then this would most likely be the address of your backup gateway server                                                                                                                                                                                                                                                            | ras-gateway02.myorg.com    |
| Connection Mode                                      | Determines how connections are routed through RAS once they have been initialised. In Direct mode, once the gateway has brokered a connection, all remaining traffic goes direct to the session hosts. | For purely on-site deployments, this would likely be set to Direct Mode but if you are providing services off-site, it is likely that only your gateway is publically accessible and so all traffic will have to go through the gateway. AppsAnywhere also offers you the hybrid option of choosing the value depending on whether or not the user is considered on-site. | Direct (On-Site Only)      |
| Client Alias                                         | When deploying the Parallels client to your managed machines, you should deploy it pre-configured to work with your RAS environment so that sessions can be authenticated via SSO                      | The exact name of the connection that is set up in the Parallels client on your managed devices that AppsAnywhere will use to authenticate the session                                                                                                                                                                                                                    | MyOrg RAS                  |
| Allow Client To Save Configuration                   | Indicates whether or not the client should be allowed to save any credentials entered by the user when a session is initiated                                                                          | Usually all configuration should be managed by AppsAnywhere so this setting should only be required in special cases. e.g. if users should not be prompted to save to the Home folder each time when launching on MacOS                                                                                                                                                   | Unchecked                  |
| Enable SSO authentication for local Parallels client | Enables and disables the SSO capabilities of the Parallels client when launching applications for this environment. Also allows for further limiting of specific SSO methods used.                     | Can be enabled if there are SSO methods configured for your Parallels instance.                                                                                                                                                                                                                                                                                           | Checked                    |

### Save the connection

Once you have entered all of the relevant details of the connection, hit the ![Save button](https://docs.appsanywhere.com/__attachments/a_351ba5182a18b8df76cc1b9ead1e843a6ddf1a2602ab4edee80dfbd69c4fb9ad/image2016-8-17%2012:43:13.png?cb=c33599c1a70bc61f8ba06125a0610cbb) button

You will then be sent back to the [Viewing Parallels Environments](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-parallels-environments.md) page, where you should see your new connection and the following message:  
![image2017-1-9 10:33:27.png](https://docs.appsanywhere.com/__attachments/a_95beb298421931b15c51f93a9a1b7577555609e5936976314628bb8b4d2fa7fd/image2017-1-9%2010:33:27.png?cb=f3f42b54f94b64c289c9072f152fe94c)

---
version: "3.6"
language: "en"
---
# Adding an Azure Virtual Desktop Environment

## Overview

If you are wanting to deliver apps in Azure Virtual Desktop to your end users with the help of AppsAnywhere, you will need to link it with an Azure Virtual Desktop environment. In this article, we will discover how to create a new connection to an Azure Virtual Desktop environment.

## Creating the connection

### Navigate to the Manage **Azure Virtual Desktop Environments** page:

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the sidebar menu, go to **Connectors \> Azure Virtual Desktop**

Here you will see a full list of the Azure Virtual Desktop environments AppsAnywhere is linked to.

4. Click on the **Add** button on the top right of the page  
![image-20230817-110447.png](https://docs.appsanywhere.com/__attachments/a_eb97fe0053ad59bb41ca15867909dacc724bf585234a0d4adf9b28ed212e4ff5/image-20230817-110447.png?cb=32d6d0269680fdc24e038cfd24ed6902)
The "Edit Azure Virtual Desktop environment" admin page

**Enter the details of your Azure Virtual Desktop environment:**  

| Form Field Name |                                                                                                                                         Explanation                                                                                                                                         |                                                                                                                                    Expected Value                                                                                                                                    |                         Example                         |
|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| Name            | A friendly name for the connection.                                                                                                                                                                                                                                                         | You can call the connection anything you want.                                                                                                                                                                                                                                       | My Azure Virtual Desktop Environment                    |
| AVD Tenant ID   | The AVD Tenant ID is the ID assigned to a Azure Virtual Desktop tenant by the Azure platform.                                                                                                                                                                                               | The Tenant ID can be found by following the instructions in the [Adding a Azure Virtual Desktop Environment#Finding the AVD Tenant ID](https://docs.appsanywhere.com/appsanywhere/3.6/adding-a-windows-virtual-desktop-environment.md#AddinganAzureVirtualDesktopEnvironment-FindingtheWVDTenantID) section.      | 1b684aa4-9cce-48fd-9612-9cec6181b31a                    |
| Feed Url        | The Feed URL allows Azure Virtual Desktop to discover the available resources and is required to be input by the user when configuring their local Azure Virtual Desktop client. The Feed URL will be provided to the user when they are launching a Azure Virtual Desktop delivery method. | There are several possible values for the Feed URL, each of these values and in scenario in which to use each one is outlined in the following Microsoft documentation page. <https://docs.microsoft.com/en-us/azure/virtual-desktop/connect-windows-7-10#subscribe-with-a-url>      | <https://rdweb.wvd.microsoft.com/api/arm/feeddiscovery> |
| Web client URL  | The Web client URL gives access to Azure Virtual Desktop resources from a web browser without the lengthy installation process, this location is where the user is directed when launching a Azure Virtual Desktop Delivery Method via the HTML5 client.                                    | There are several possible values for the Web client URL, each of these values and in scenario in which to use each one is outlined in the following Microsoft documentation page. <https://docs.microsoft.com/en-us/azure/virtual-desktop/connect-web#access-remote-resources-feed> | <https://rdweb.wvd.microsoft.com/arm/webclient>         |

#### Finding the AVD Tenant ID

Finding the Tenant ID requires a machine which has the AVD client configured. This means that the AVD client must be installed and set up, to set up Azure Virtual Desktop on a windows device follow these steps.

1. Locate and launch Azure Virtual Desktop client

2. When the client opens you may be asked to sign in with your university account

Once the AVD client has been configured, go to the %localappdata%\\rdclientwpf\\ folder. In this folder you will find a file named **ISubscription.json**, within this file you will find the Tenant ID for each of the Azure Virtual Desktop feeds the current user account is subscribed to; searching for **TenantId** will allow you to quickly find the configured Tenants and the ID required for the AppsAnywhere environment. Where there are multiple Tenant IDs listed the **Title** key alongside each Tenant ID can be used to identify the required one.

##### Test the connection

Testing connections to Azure Virtual Desktop environments is currently very limited, and may still fail even if correct details have been entered. This is primarily due to connections being made from the AppsAnywhere service itself, rather than your local device; it is possible, or even likely, that AppsAnywhere does not have the necessary access to perform the connection tests on your behalf.

When this button is used, AppsAnywhere will attempt to send requests to the following locations:

* `login.microsoftonline.com` (to run an Azure tenant check); and

* the address entered into the **Web client URL** field on the form.

A separate "Test connection" button is available next to the "Save" button on the form, which can be used to help you determine whether working details have been entered or not. The details in the form will **not** be saved when this button is used, allowing you to make sure the entered details are correct before committing to anything.  
![image-20230817-092803.png](https://docs.appsanywhere.com/__attachments/a_81aa3f369dab1b8b9336a49313ce84a5fc8b7b2a27d81b92b5603f3def7d66cd/image-20230817-092803.png?cb=a918b04b1feb55b0fc7268a95953e08c)
The "Test connection" button next to the "Save" button

Due to the more extreme limitations of this connection test, Azure Virtual Desktop is **not** one of the components that can be found on the [Status dashboard](https://docs.appsanywhere.com/appsanywhere/3.6/status-dashboard.md) page.

##### Save the connection

Once you have entered all of the relevant details of the connection, hit the button

You will then be sent back to the [Viewing Azure Virtual Desktop Environments](https://docs.software2.com/display/S2HubAdmin/.Viewing+Windows+Virtual+Desktop+Environments+v2.10) page, where you should see your new connection and the following message:

That's it!

---
version: "3.6"
language: "en"
---
# Adding an AppStream Environment

## Overview

AppsAnywhere has the ability to link to any AppStream environment in order to deliver remote resources to end users. Once you link AppsAnywhere to an AppStream environment you will then be able to reference AppStream applications as delivery methods and make them available to your users. In this article, we will discover how to create a new connection to an AppStream environment.

## Creating the environment

1. From the AppsAnywhere admin portal, search for AppStream, or go to **Connectors** \> **AppStream** in the navigation menu

2. Click on the **Add environment** button in the top right of the page

![image-20230817-111032.png](https://docs.appsanywhere.com/__attachments/a_7a6d1a07cb7a0977ed2d49045c60fe8c5bad6eedc25f0ceadc1f2be3f47b4d42/image-20230817-111032.png?cb=56f93bb35699f8ee57876079f0d4b330)
The "Environment details" section of the "Create AppStream environment" admin page  
![image-20230817-101721.png](https://docs.appsanywhere.com/__attachments/a_3dedeedcb512bc76f72c932366c40cb6b69132a03773a1ce1824bc11137ca001/image-20230817-101721.png?cb=96973e9d5e62b23cb36638711e4ea849)
The "AWS access key" section of the "Create AppStream environment" admin page

### Enter the details of your AppStream environment

| Form Field Name |                                                                                                                                                     Explanation                                                                                                                                                      |                                                                                                                                           Expected Value                                                                                                                                            |          Example           |
|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|
| Display name    | A friendly name for the environment.                                                                                                                                                                                                                                                                                 | You can call the environment anything you want.                                                                                                                                                                                                                                                     | AppStream Live Environment |
| Region          | The AWS region in which the AppStream environment is situated.                                                                                                                                                                                                                                                       | This should be the region your AppStream environment is configured in. [See available AppStream regions](https://docs.aws.amazon.com/general/latest/gr/aas2.html). Known regions will also be available in the field to allow for auto-completion, simply start typing and suggestions will appear. | us-east-2                  |
| Custom domain   | If you wish to use [Embedded Streaming URLs](https://docs.appsanywhere.com/appsanywhere/3.6/appstream-delivery-methods.md), which allow us to provide more accurate analytics for app launches, a custom domain matching the domain used by AppsAnywhere is required. If a custom domain is set, it may be edited, but it cannot then be removed. | The full name for your custom domain.                                                                                                                                                                                                                                                               | your.custom.domain.com     |

### Enter the details of your AWS Access Key

|    Form Field Name    |                           Explanation                            |                                                                          Expected Value                                                                           |                    Example                     |
|-----------------------|------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|
| Account ID            | The ID of the AWS account.                                       | The ID of the AWS account to be used.                                                                                                                             | 123456789012                                   |
| AWS Access Key ID     | This field represents the ID of the access key within AWS that.  | The ID of the access key which contains the policies specified on the AppsAnywhere environments screen.                                                           | AKIAU567ZDT7B5FCUWER                           |
| AWS secret access key | The secret access key for the AWS access key ID specified above. | The key secret for the AWS access key ID specified above. If the access key ID is changed, the secret will need to be entered again as these are saved as a pair. | thr875PqgU5gHjURTghtn678QPkyj7uLP8tG8YM1POTbre |

## AWS Policies

The AWS access key used for the environment will require a specific set of policies in order for AppsAnywhere to retrieve the relevant information for your AppStream Stacks, Fleets and Applications and also generate the streaming URLs. These statements are provided on the Environment create and edit screens by expanding the **Essential information - how to configure AWS policies** section at the bottom of each page. There are also static policy references below this paragraph.  
These statements may want to be refined in order to target specific resources you wish to make available - otherwise the use of the `*` wildcard will allow access to all resources listed.

The second policy detailing the `DescribeApplicationFleetAssociations` action however, must use the `*` wildcard due to a limitation with AppStream functionality. This cannot be changed.

The policy statements listed in AppsAnywhere contain placeholder values for your AWS account ID and region; filling out this information in the form will change these placeholder values dynamically, allowing you to copy the policies without the need to manually replace them.

If you are using Elastic Fleets, AppsAnywhere will need an additional AWS policy to be able to access app icons from AppStream. This is not mandatory, and is only used to display an icon beside the selected app when creating or editing an AppStream delivery method, but can help ensure that the correct app is selected. For this S3 policy, buckets must be specified explicitly as you may not want to give full access to all buckets. If access to more than one bucket is required, add new lines under "Resource", with a comma between each.
Policy statements  

### AppStream Access

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AppsAnywhereAppStreamAccess1",
                "Action": [
                    "appstream:CreateStreamingURL",
                    "appstream:DescribeApplications",
                    "appstream:DescribeFleets",
                    "appstream:DescribeImages",
                    "appstream:DescribeStacks",
                    "appstream:ListAssociatedFleets"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:stack/*",
                    "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:fleet/*",
                    "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:application/*",
                    "arn:aws:appstream:{REGION}:{ACCOUNT_ID}:image/*"
                ]
            },
            {
                "Sid": "AppsAnywhereAppStreamAccess2",
                "Action": [
                    "appstream:DescribeApplicationFleetAssociations"
                ],
                "Effect": "Allow",
                "Resource": [
                    "*"
                ]
            }
        ]
    }

### S3 Access (Optional)

    {
    	"Version": "2012-10-17",
    	"Statement": [
    		{
    			"Sid": "AppsAnywhereS3Access",
    			"Action": [
    				"s3:GetObject"
    			],
    			"Effect": "Allow",
    			"Resource": [
    				"arn:aws:s3:::YOUR-BUCKET/*"
    			]
    		}
    	]
    }

## Testing an environment

A separate "Test connection" button is available next to the "Save" button on the form, which can be used to help you determine whether working details have been entered or not. The details in the form will **not** be saved when this button is used, allowing you to make sure the entered details are correct before committing to anything.  
![image-20230817-092803.png](https://docs.appsanywhere.com/__attachments/a_2e8412544bdd8f5bb12a4c50fa8cb459b1b5bc4a89ee599325151e2c9a45c920/image-20230817-092803.png?cb=a918b04b1feb55b0fc7268a95953e08c)
The "Test connection" button next to the "Save" button

More information about this connection test can be found on the [Status dashboard](https://docs.appsanywhere.com/appsanywhere/3.6/status-dashboard.md#Amazon-AppStream) page.

---
version: "3.6"
language: "en"
---
# Adding an Embed

## Overview

AppsAnywhere has the ability to link an Embed to an LMS in order to deliver AppsAnywhere applications to end users through the LMS. Once you link AppsAnywhere to an LMS your course admins will be able to link a course to an App List and allow students access to the applications in the App List.

Creating an Embed

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the navigation menu on the left of the page, select **Connectors** and then **Embeds**

4. Click on the **+ Add embed** button

**Enter the details of your Embed:**  

|            **Form Field Name**             |                                                                                                                                                                                                                             **Explanation**                                                                                                                                                                                                                             |                                                                                      **Expected Value**                                                                                      |      **Example**       |
|--------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|
| **Name**                                   | The name to be displayed in both AppsAnywhere and the LMS. In Canvas, this will also be the label of the course navigation button added to the menu.                                                                                                                                                                                                                                                                                                                    | You can call the application anything you want, this will be displayed in the LMS.                                                                                                           | AppsAnywhere Apps      |
| **Embed type**                             | The LMS you are connecting to AppsAnywhere Currently only Blackboard and Canvas are supported. Custom Embeds can be used for more bespoke systems.                                                                                                                                                                                                                                                                                                                      | The same LMS as the one you are intending to connect with.                                                                                                                                   | Canvas                 |
| **Select connection to authorize against** | The LDAP connection or SAML SSO method the users of the application will be authorized with. Users accessing the Embed within the LMS will be automatically logged into AppsAnywhere; the connection selected here will be used to find the associated directory account. For Blackboard, the usernames will have to match the LDAP directory records. For Canvas, the account information used to perform this lookup will be taken from the user's SIS ID in the LMS. | The connection which includes users intended to use the application. This will be a list of all the LDAP connections and SAML SSO methods that have been added to the system.                | Campus Directory       |
| **Custom username field**                  | The name of the field that AppsAnywhere will read the usernames of your users from. The `lis_person_sourcedid` field will be used by default if no custom field is provided.                                                                                                                                                                                                                                                                                            | The field used in your LMS that contains the user name of each user. **Note: The username in this field must match the value of the username field used for your LDAP/SAML SSO connection.** | `lis_person_sourcedid` |

### Save the application

Once you have entered all of the relevant details of the application, hit the **Save** button.

You will then be sent back to the [Viewing Embeds](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-embeds.md) page, where you should see your new application and the following message:  
![image-20231117-135147.png](https://docs.appsanywhere.com/__attachments/a_2a28e7703d03a05de087543555a35712bf76a238db365c8cd518f8540f0644b7/image-20231117-135147.png?cb=e488f48f1de115c3743151e84b4fedf3)

---
version: "3.6"
language: "en"
---
# Adding an Entra Connection

## Overview

AppsAnywhere has the ability to link to an Entra ID setup in order to retrieve aditional information about the user during login - such as the groups they are a member of. Once you link AppsAnywhere to Entra ID you will then be able to reference them on a SAML SSO method and allow users with more than 150 groups to login. In this article, we will discover how to create a new connection to Entra ID.  
This feature is only available as part of AppsAnywhere 3.3.1, if you are not currently on this version then please contact support to arrange an upgrade.

## Entra ID setup in Azure

To begin with, an **App registration** should be created in Entra ID within the **Tenant** you wish to retrieve information from. This is where we can define the relevant permissions and use the required IDs to connect to your setup.

In order for AppsAnywhere to retrieve the expected information about users (e.g. groups they are a member of), the `User.Read.All` permission is required. This can be done on the **App registration** by creating a new **Permission** on the **API Permissions** section. The `User.Read.All` permission can then be found in **Microsoft Graph \> Application permissions**. Once these permissions have been added, you will need consent from an admin to apply these changes.

Once this has been done you can add a client secret which would be used in AppsAnywhere. If you need further guidance on any of the setup in Azure, please refer to the docs linked below - once you have noted the value of the **Client secret** you can come back to AppsAnywhere to finish off the connection details.

### Further information

* [Register the app in the portal](https://docs.appsanywhere.com/go/entra-id-app-registration)

## Creating the connection

1. From the AppsAnywhere admin portal, search for **Entra ID** , or go to **Connectors** \> **Entra ID connections** in the navigation menu

2. Click on the **Add new connection** button at the top of the page

![image-20250402-140818.png](https://docs.appsanywhere.com/__attachments/a_e61599cdbf7626ef1a9e399f4b30e79f73750f8a8fe0361a01c12299184b0b5a/image-20250402-140818.png?cb=c9a2a12d51c416b9f727ef82c74379cb)

### Enter the details of your Entra ID connection

| Form Field Name |                                                               Explanation                                                                |                              Expected Value                               |               Example                |
|-----------------|------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|--------------------------------------|
| Display name    | A friendly name for the connection.                                                                                                      | You can call the connection anything you want.                            | My Entra ID Connection               |
| Tenant ID       | The Directory (tenant) ID in Azure which you would like to retrieve user info from.                                                      | The ID of the tenant in Azure.                                            | 642962c8-0fcd-11f0-9cd2-0242ac120002 |
| Client ID       | The Application (client) ID of the **App registration** in Azure where you have setup the relevant API permissions.                      | The Application (client) ID of the App registration.                      | 6862f0ac-0fcd-11f0-9cd2-0242ac120002 |
| Client secret   | The value of the Client secret created for the App registration in Azure. This value will not be shown again in AppsAnywhere once saved. | The value of the Client secret created for the App registration in Azure. | 1234567890                           |

---
version: "3.6"
language: "en"
---
# Adding an icon

## Overview

To make your AppsAnywhere instance truly stand out and help your users quickly find the app they are looking for, you really want to add a good quality icon for each of your apps. Luckily, we've made this really simple to do.

## Introduction

When it comes to finding the app they need, most users will be looking for a familiar icon, rather than the correct title in much the same way you look for the familiar packaging on the shelf in the shop, rather than reading every label.

Applying a good quality, relevant icon is key to making your AppsAnywhere portal look its best and helping your users find the app they need as quickly as possible.

## Adding an icon

Whilst [Editing an application](https://docs.appsanywhere.com/appsanywhere/3.6/editing-an-application.md), you should see the **Icon** tab along the top, next to **Delivery Methods**.

When you select the **Icon** tab you will see three areas;

1. On the left, the icon that is currently being used

2. In the middle, you will see an area that allows you search for an icon in our icon repository

3. On the right, an area to upload your own custom icon

### Selecting an icon from our repository

AppsAnywhere centrally manages a repository of high quality icons of commonly used apps. These are accessible via the **Select new icon** section on the **Icon** tab.

Each icon has a name, vendor and version associated within it, the version refers to the version of the vendor's application the icon is associated with.

The search bar will be pre-populated with the name of the application you are editing, so with any luck you will already see the icon you are looking for in the results pane. If you do not see the icon you need, try changing the search term. You can search for icons by name, vendor and version name.  
![icon-vlc-search.PNG](https://docs.appsanywhere.com/__attachments/a_265a178ad9e61318d4639f1a9daa1ac10a2559b2c4aebeb076f9b0f09c7762d3/icon-vlc-search.PNG?cb=1fb31f302c7984290b651813f1b9206d)

Once you have located a suitable icon, hovering over the icon reveals the name, vendor and version of the icon at the bottom of the selection area.

To use the icon for your app, hover over the icon in the results pane and click the **Use** button.  
![icon-hover.png](https://docs.appsanywhere.com/__attachments/a_5d042c208fe6bbe771309f3ea432840c1f5496dcf2a1c15cef9e11336c9d0cf8/icon-hover.png?cb=672e90f9a870f6dd4c9f3f4f663efa55)

Once the icon has been successfully associated with the app, a green tick will appear over the icon. The icon will also be displayed in the **Current icon** area.  
![icon-selected.png](https://docs.appsanywhere.com/__attachments/a_d71d131f319f43fccb2bc39d8bde575301a6db4407d6edb57b4e7494fe3b8ac7/icon-selected.png?cb=dfd5ea0296a49ae53763d0e8287fc6bd)

### Uploading your own icon

#### Finding an icon

First of all, you will need to find an icon to use. Try to use the official icon from the vendor. Typically the easiest way to source an image is using Google Image search.

We recommend starting with the link below which sets up an advanced search for icon-sized images of the correct type (png) with transparent backgrounds:

[https://www.google.co.uk/search?as_st=y\&tbm=isch\&hl=en\&as_q=icon\&as_epq=\&as_oq=\&as_eq=\&cr=\&as_sitesearch=\&safe=images\&tbs=isz:i,ic:trans,ift:png#q=vlc\&safe=images\&as_st=y\&hl=en\&tbs=isz:i,ift:png\&tbm=isch\&tbas=0](https://www.google.co.uk/search?as_st=y&tbm=isch&hl=en&as_q=icon&as_epq=&as_oq=&as_eq=&cr=&as_sitesearch=&safe=images&tbs=isz:i,ic:trans,ift:png#q=vlc&safe=images&as_st=y&hl=en&tbs=isz:i,ift:png&tbm=isch&tbas=0)

Files you upload must have a .png extension and we strongly recommend finding images with a transparent background.

Once you have found an icon that you like, save it to your device.

To upload the icon, either click anywhere in the upload area on the right hand side of the page (shown below) and browse to the location where you saved the file, or simply drag the file into the area.  
![icon-blank-search.PNG](https://docs.appsanywhere.com/__attachments/a_4e8ba718011657f09e928ca19d2f4dc67c23f9a4b7dad51c27cbbeb8d6b70577/icon-blank-search.PNG?cb=1ddf28838e2a91b3bf27b5726967ea2f)  
Uploading an icon will not add it to the icon repository; the icon repository is managed centrally by AppsAnywhere.

Once your icon has been uploaded, it is saved straight away and you will see it displayed below the upload area for a short while, as shown below.  
![icon-uploading.PNG](https://docs.appsanywhere.com/__attachments/a_ba42076f1a8c8f35b66db6e9304e1f587747f7b86bc176a9844faffd6cc71f66/icon-uploading.PNG?cb=d789f27d1afc856ca4d5681108c3c25a)

## Future icon updates

The next time you visit the Icon tab, you will see the icon you uploaded earlier set as the current icon.

You can replace it simply by following either of the processes above.  
![icon-populated.PNG](https://docs.appsanywhere.com/__attachments/a_17f77f718c030ef4f2e3853f7e6e00c3c070599f965a840633269386d046444b/icon-populated.PNG?cb=4bace97cd135874d3fc59626dad426ba)

---
version: "3.6"
language: "en"
---
# Adding an LDAP connection

## Overview

AppsAnywhere links to your user directory for all it's user management and authentication. Once you link AppsAnywhere to your directory you will be able to select Users, Groups or Machines to which you want to link applications and once your have provisioned applications to them, they will be able to log into AppsAnywhere. In this article, we will discover how to create a new connection to Active Directory via LDAP.

## Before you begin

### Create a service user

AppsAnywhere will need a user account that it can use to connect to your directory. This account is used to query available users, groups and machines in your directory and authenticate users when they are logging in. This service account only needs to be a standard user account but must have access to query all relevant parts of the directory.

1. Create a new user in your directory that will solely be used by AppsAnywhere (e.g. s2hub_service_user)

2. Give the user a strong password and make a note, you'll need this in the next section

Any changes to the password for the service account will result in AppsAnywhere no longer being able to communicate with your directory service and a loss of service for your users. We strongly recommend you **set the password for this account to never expire** . If you want to enforce a password change policy, arrange for this to be done manually at times when you are able to simultaneously update the password used by AppsAnywhere. See [Editing an LDAP connection](https://docs.appsanywhere.com/appsanywhere/3.6/editing-an-ldap-connection.md).

## Creating the connection

You are now ready to set up the connection between AppsAnywhere an your directory.

### Navigate to the **Add LDAP Connection** page:

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. Select the environments menu on the top right of the page, go to **LDAP Connections**

4. Click on the **Add** button on the top right of the page

#### Enter the details of your LDAP connection:

|        Form Field Name        |                                                                                           Explanation                                                                                           |                                                                                                    Expected Value                                                                                                     |            Example            |
|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|
| Type                          | The type of directory you are connecting to                                                                                                                                                     | Select one from Active Directory or OpenLDAP                                                                                                                                                                          | Active Directory              |
| Name                          | A friendly name for the connection                                                                                                                                                              | You can call the connection anything you want                                                                                                                                                                         | Campus Directory              |
| Priority                      | If you have more than one connection available to your users, you can add a priority to dictate where it appears in the list that is presented to the user when they log in                     | 1, 2, 3, 4....                                                                                                                                                                                                        | 1                             |
| Host                          | The fully qualified hostname to which the LDAP connection will be made                                                                                                                          | Ideally, this would be the top level, load-balanced address of your directory                                                                                                                                         | uni.edu                       |
| Port                          | The port number to make the LDAP connection over                                                                                                                                                | This usually depends on what type of security you are using (see below). The default, unsecured port is 389                                                                                                           | 636                           |
| Encryption Type               | The type of encryption (if any) to be used when initiating the connection                                                                                                                       | You should aim to use the best type of encryption available (TLS)                                                                                                                                                     | SSL                           |
| Domain Name                   | The full domain name of your directory                                                                                                                                                          | The name of your top level domain                                                                                                                                                                                     | uni.edu                       |
| Short Domain Name             | The shortened name for your domain                                                                                                                                                              | This is usually the same as above but without the .edu or .ac.uk ***If you are unsure, type %userdomain% in command prompt on a machine connected to that domain to get the short name.***                            | uni                           |
| Domain Aliases (UPN Suffixes) | Additional UPN suffixes that have been configured for users in your directory Ensures that users with different UPN suffixes can be correctly associated with this LDAP connection during login | This setting is optional, but allows you to list any additional UPN suffixes that AppsAnywhere can expect to see when users authenticate ***The UPN suffix is the portion following the @ symbol in the user's UPN*** | staff.uni.edu;student.uni.edu |
| Username Format               | The format to be used for the username, currently either **sAMAccountName** or **User Principal Name**                                                                                          | The value which best represents your use case, whether users will be matched by their sAMAccountName or UPN. The default value is sAMAccountName.                                                                     | sAMAccountName                |
| Username                      | The username of the service that AppsAnywhere will use to connect to your directory                                                                                                             | You only need to enter the basic username, no domain prefixes or suffixes are required, unless you have set "Bind Requires DN" (see below), in which case you should add the full DN for the service user             | s2hub_service                 |
| Password                      | The password for the service account referenced above                                                                                                                                           | You should aim to make this as complex as possible and ideally, it shouldn't be changed, unless you are ready to update the AppsAnywhere connection details                                                           | d%f6SJ2\*0kSwp2J1Bm$d         |
| Base DN                       | The highest level of your directory tree you wish to connect to                                                                                                                                 | This is usually made up of your domain name to represent the top level of your domain                                                                                                                                 | dc=uni,dc=edu                 |

Passwords must not contain **\<** or **\>** characters, otherwise the LDAP connection will fail.

The following settings are also available, but only usually relevant to OpenLDAP connections or more advanced scenarios.  

|      Form Field Name       |                                                                                                                  Explanation                                                                                                                  |                                                                                                                                                                                                                          Expected Value                                                                                                                                                                                                                          |                              Example                               |
|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| User unique ID attribute   | The name of the attribute to retrieve the unique object ID from, defaulting to 'entryUUID'.                                                                                                                                                   | The attribute your OpenLDAP connection uses to retrieve the unique object ID                                                                                                                                                                                                                                                                                                                                                                                     | entryUUID                                                          |
| Bind Requires DN?          | Indicates whether or not an attempt to authenticate a user against the directory must include the DN under which they are being authenticated Remember to set the username value to the service user's full DN if you set this value to "Yes" | It is expected that this will be "Yes" for OpenLDAP connections and "No" for connections to Active Directory                                                                                                                                                                                                                                                                                                                                                     | No                                                                 |
| Enable Paging?             | Whether or not to page results from your directory                                                                                                                                                                                            | It is expected that paging will be available on most directories and should be used where available to improve performance of search                                                                                                                                                                                                                                                                                                                             | Yes                                                                |
| Max Results                | The number of results to return from each query to your directory                                                                                                                                                                             | This depends on the performance you are getting when using our LDAP browser. If queries are taking longer then you should lower this value to return less records at a time                                                                                                                                                                                                                                                                                      | 1000                                                               |
| Account Filter Format      | The LDAP search filter used to search for accounts.                                                                                                                                                                                           | This string is a printf()-style expression that must contain one '%s' to accommodate the username. The default value is '(\&(objectClass=user)(sAMAccountName=%s))', unless bindRequiresDn is set to TRUE, in which case the default is '(\&(objectClass=posixAccount)(uid=%s))'. This also may change based on the **Username Format** field used above. If the UPN value is used, then the format may look like '(\&(objectClass=user)(userPrincipalName=%s))' | accountFilterFormat = '(\&(objectClass=user)(sAMAccountName=%s))'. |
| User Classes               | The directory classes or "tags" that indicate user objects                                                                                                                                                                                    | The two default classes in Active Directory are "person" and "user" but these can vary in OpenLDAP-compatible directories Value is a semi-colon separated list of attributes                                                                                                                                                                                                                                                                                     | person;user                                                        |
| Group Classes              | The directory classes or "tags" that indicate group objects                                                                                                                                                                                   | The default class in Active Directory is "group" but this can vary in OpenLDAP-compatible directories Value is a semi-colon separated list of attributes                                                                                                                                                                                                                                                                                                         | group                                                              |
| Machine Classes            | The directory classes or "tags" that indicate machine objects                                                                                                                                                                                 | The default class in Active Directory is "computer" but this can vary in OpenLDAP-compatible directories Value is a semi-colon separated list of attributes                                                                                                                                                                                                                                                                                                      | computer                                                           |
| Search Attributes          | The attributes to search when searching the directory                                                                                                                                                                                         | The attribute in your directory that includes your user's username and/or friendly name Value is a semi-colon separated list of attributes                                                                                                                                                                                                                                                                                                                       | cn                                                                 |
| Wildcard Search Attributes | Which of the attributes specified in "Search Attributes" should be used in wildcard searches.                                                                                                                                                 | A subset of the "Search Attributes" specified above. Value is a semi-colon separated list of attributes                                                                                                                                                                                                                                                                                                                                                          | cn                                                                 |

##### Test the connection

A separate "Test connection" button is available next to the "Save" button on the form, which can be used to help you determine whether working details have been entered or not. The details in the form will **not** be saved when this button is used, allowing you to make sure the entered details are correct before committing to anything.  
![image-20230817-092803.png](https://docs.appsanywhere.com/__attachments/a_e0e2e88988af86fa89a6e187f45b5500a1b7c1f7e32f2eecee5bd2b74e0ef412/image-20230817-092803.png?cb=a918b04b1feb55b0fc7268a95953e08c)
The "Test connection" button next to the "Save" button

More information about this connection test can be found on the [Status dashboard](https://docs.appsanywhere.com/appsanywhere/3.6/status-dashboard.md#LDAP-connections) page, and in the [Troubleshooting](https://docs.appsanywhere.com/appsanywhere/3.6/adding-an-ldap-connection.md#Troubleshooting) section on this page right here.

##### Save the connection

Once you have entered all of the relevant details of the connection, hit the ![Save button](https://docs.appsanywhere.com/__attachments/a_f9e445cca859ba3ca5204223413e51278b0a9edbd722171de290bd14f16d54de/image2016-8-17%2012:43:13.png?cb=c33599c1a70bc61f8ba06125a0610cbb) button

AppsAnywhere will attempt the same connection test when you save the connection details, and (if successful) the details will be saved.

You will then be sent back to the [Viewing LDAP Connections](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-ldap-connections.md) page, where you should see your new connection and the following message.  
![image2016-8-17 13:56:40.png](https://docs.appsanywhere.com/__attachments/a_097996b5c918597ccf7d8869d444b8be43acc253817a93329d46b9cdc0d82bf9/image2016-8-17%2013:56:40.png?cb=35c92008d2e03edf9dab20d0be04e33c)

## Troubleshooting

If AppsAnywhere is unable to successfully connect to your directory, you will see an error message like the one below  
![image2016-8-17 12:45:27.png](https://docs.appsanywhere.com/__attachments/a_41820454f5e527c67e681f239403e64a53e37b7b123e10ea62e46b092338eb7e/image2016-8-17%2012:45:27.png?cb=788be81695f2affd2cb74fb76aa28f33)

Use the following table to identify the error message and make changes to the details you have entered to rectify the problem.  

|                         Error Message                          |                                                                                                                                     Suggested Action                                                                                                                                      |
|----------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| The LDAP service is not reachable                              | * Check the hostname you entered is correct and reachable from the AppsAnywhere server * Check the port you entered is correct                                                                                                                                                            |
| Server is unavailable: there was an error initialising SSL/TLS | * Check the encryption type specified is correct for your directory security settings * Add the certificate for your directory to the OpenLDAP configuration file (contact the AppsAnywhere team for assistance)                                                                          |
| Invalid bind credentials have been given                       | * Check the username and password you entered for the service account are correct * Check the port number and encryption type are correctly set                                                                                                                                           |
| An invalid base DN has been given: incorrect syntax            | * Check the value of your Base DN matches the true value in your directory                                                                                                                                                                                                                |
| Administration limit has been exceeded                         | * Check the rate limit setting against the service account in your directory                                                                                                                                                                                                              |
| An unexpected LDAP error has occurred                          | * Make sure you entered a username and password for the connection * If you are editing a connection, check that you re-entered the service user password * If "Bind Requires DN" is ticked, try un-ticking it * Ensure you don't have another connection with the same short domain name |

If you continue to struggle, contact a member of the AppsAnywhere support team.

---
version: "3.6"
language: "en"
---
# Adding an VMware Horizon Environment

VMware Horizon environments can only be configured by the Global Admin user.

Similar to other integrations you must add details of the VMware Horizon environment into AppsAnywhere. Once you link AppsAnywhere to an VMware Horizon environment you will then be able to reference the published resources (applications and desktops) in Horizon in VMware Horizon delivery methods and make them available to your users. In this article, we will discover how to create a new connection to an VMware Horizon environment.

## Creating the environment

1. Login to the AppsAnywhere admin portal the Global Admin user.

2. From the AppsAnywhere admin portal, search for VMware Horizon, or go to **Connectors** \> **VMware Horizon** in the navigation menu

3. Click on the **Add environment** button in the top right of the page

![image-20221219-155930.png](https://docs.appsanywhere.com/__attachments/a_a2f401ee43f9d3bb55953105bb723daeec73c65d24620e08dd3f2a1995285d3f/image-20221219-155930.png?cb=069106ae180bae0a43c17a3606fc48b7)

4. Enter the details of your VMware Horizon environment  

|   **Form Field Name**    |                                                                                                                                                                                                                                                                        **Explanation**                                                                                                                                                                                                                                                                        |          **Example**           |
|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| Environment display name | A friendly name for the environment.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Horizon Production Environment |
| Short domain name        | The NetBIOS domain name the users are a member of and will be authenticating against.                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | DOMAIN                         |
| Host                     | The internal FQDN of the VMware Horizon Connection Server                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | horizon-1.example.com          |
| Port                     | The port number the Horizon Connection server is listening on. Enter port 443 for HTTPS (default) or port 80 for HTTP. If your Horizon Connection Server is listening on a different port number enter it here.                                                                                                                                                                                                                                                                                                                                               | 443                            |
| Encryption Type          | The traffic type that will be used to connect to the Horizon Connection Server. * SSL (default): HTTPS connection will be used. * None: HTTP connection will be used.                                                                                                                                                                                                                                                                                                                                                                                         | SSL                            |
| Authentication Type      | The authentication type used to pass details to VMware. * **Default**: Passes the username prefix to VMware as UPN formats are not supported by VMware, designed to pre-fill the login prompt for manual logins * **SSO**: Does not pass a username, instead allows VMware to redirect to the browser to authenticate (when the server is configured to use SSO) Because of the VMware UPN limitation, we can only support UPNs where the UPN prefix would match the user's sAMAccountName e.g. UPN=john.smith@appsanywhere.com and sAMAccountName=john.smith | SSO                            |

5. Save the environment

Once you have entered all of the relevant details of the environment, hit the **Save**button.

You will be shown a success message, and when returning to the [Viewing VMware Horizon Environments](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-vmware-horizon-environments.md) page you can now see your environment listed.

---
version: "3.6"
language: "en"
---
# Delivery methods

## Overview

The best thing about AppsAnywhere is it lets you define more than one available delivery method for each application or desktop, giving you the ability to deliver your applications or desktops to a wealth of different devices. In this section, we'll take a look at how delivery methods are managed.

While an "application" or "desktop" is a high-level, abstract concept in AppsAnywhere, delivery methods are more the nitty-gritty, they define exactly how a user can get access to an application or desktop. As there are numerous different ways you can actually get an application or desktop to a user, there are numerous different types of delivery method available. Some are common to both applications and desktops, while others are specific to only one. You can add as many delivery methods as you want to a single application and which delivery method gets offered to the user is entirely at your discretion and usually depends on the type of device they are connecting with.

## Types of Delivery Methods

There are a number of different types of delivery methods, each suited to a particular type of environment or device:  
* [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md)
* [Prioritizing delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/prioritizing-delivery-methods.md)
* [Cloudpaging Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/cloudpaging-delivery-method.md)
* [Citrix Native Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/citrix-native-delivery-method.md)
* [Citrix Desktop Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/citrix-desktop-delivery-method.md)
* [Citrix Cloudpaged Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/citrix-cloudpaged-delivery-method.md)
* [Hardware profiles](https://docs.appsanywhere.com/appsanywhere/3.6/hardware-profiles.md)
* [Locally Installed Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/locally-installed-delivery-method.md)
* [RAS Delivery Methods](https://docs.appsanywhere.com/appsanywhere/3.6/ras-delivery-methods.md)
* [Direct Download Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/direct-download-delivery-method.md)
* [macOS Install Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/macos-install-delivery-method.md)
* [Secure Download Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/secure-download-delivery-method.md)
* [External Website Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/external-website-delivery-method.md)
* [Locally Deployed Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/locally-deployed-delivery-method.md)
* [Windows Executable Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/windows-executable-delivery-method.md)
* [Azure Virtual Desktop](https://docs.appsanywhere.com/appsanywhere/3.6/windows-virtual-desktop.md)
* [VMware Horizon Delivery Methods](https://docs.appsanywhere.com/appsanywhere/3.6/vmware-horizon-delivery-methods.md)
* [RemoteApp Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/remoteapp-delivery-method.md)
* [SCCM Install Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/sccm-install-delivery-method.md)
* [VDI Direct Launch Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/vdi-direct-launch-delivery-method.md)
* [AppStream Delivery Methods](https://docs.appsanywhere.com/appsanywhere/3.6/appstream-delivery-methods.md)
* [AppsAnywhere Cloud Delivery Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/appsanywhere-cloud-delivery-delivery-method.md)

## Managing Delivery Methods

All available delivery methods are managed from the management page, under the Delivery Methods tab.  
![CleanShot 2022-06-23 at 09.25.14@2x.png](https://docs.appsanywhere.com/__attachments/a_4e9510e19c4014d3c3f0ab89e4c4629b78a72c33a5ce865d88736f755209bf99/CleanShot%202022-06-23%20at%2009.25.14@2x.png?cb=254786bf5d3b86bb3b97f6fbd8b6d4fd)

There are two ways you can get to this page:

1. When creating a new application or desktop (See [Defining an application](https://docs.appsanywhere.com/appsanywhere/3.6/defining-an-application.md))

2. When editing an application or desktop (See [Editing an application](https://docs.appsanywhere.com/appsanywhere/3.6/editing-an-application.md))

Once here you can add, edit and delete delivery methods. You can also prioritize them, which is covered in another article (See [Prioritizing delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/prioritizing-delivery-methods.md))

## Adding a delivery method

As you can see above, there are a number of different types of delivery method you can add to an application or desktop and each one is configured slightly differently.

To start, select the type of delivery method you want to add from the dropdown menu near the bottom left of the screen and click the ![Add Delivery Method](https://docs.appsanywhere.com/__attachments/a_d75fdda54e7e72b70213dd0d86ad7e2a727dd85553d51bd013e066e735928dc0/image2016-9-5%2017:13:46.png?cb=ee45ff670de5fee3bdf804d5b99ea6ed) button

Take a look at the relevant page from those listed below to understand about adding each individual type of delivery method

* [External Website Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/external-website-delivery-method.md)

* [Direct Download Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/direct-download-delivery-method.md)

* [Secure Download Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/secure-download-delivery-method.md)

* [Windows Executable Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/windows-executable-delivery-method.md)

* [Cloudpaging Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/cloudpaging-delivery-method.md)

* [RemoteApp Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/remoteapp-delivery-method.md)

## Viewing delivery methods

Once delivery methods have been saved, you will see them in the list on the left hand side of the Delivery Methods tab.  
![feature-aa-3170.s2dv.co.uk_admin_application_edit_165_type=application (2).png](https://docs.appsanywhere.com/__attachments/a_a94cff7e3c58126822cdf40cb1ef797b74ef4ab8e5a0b06391b8c228b1c0ec26/feature-aa-3170.s2dv.co.uk_admin_application_edit_165_type=application%20(2).png?cb=a16ab474f91810f1fcc903504594eddf)  
Priority matters! Take a look at [Prioritizing delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/prioritizing-delivery-methods.md) to see why you should correctly prioritize your delivery methods and how to do it

## Editing a delivery method

To change the details of a delivery method, just select it in the list shown above. This will re-load the form you used to create it in the right-hand pane and pre-populate all of the current data

You can then make any changes you need an re-save the form.  
![feature-aa-3170.s2dv.co.uk_admin_application_edit_165_type=application (1).png](https://docs.appsanywhere.com/__attachments/a_a22f627da16dd456c8fe662d2a134e50a278bd50c8d28133b2749d7fd5741a99/feature-aa-3170.s2dv.co.uk_admin_application_edit_165_type=application%20(1).png?cb=6114a6049552445d5ee8b456917fe423)

## Deleting a delivery method

If for any reason you need to delete a delivery method, you will first need to locate and edit that delivery method as described above.

You will then see at the bottom of the form there is a **Delete** button. Click this to remove the delivery method from the application.  
Editing or deleting a delivery method has the potential to affect users currently using the application via that delivery method. Be confident in the changes you are making before modifying delivery methods and if possible, test in advance.

## Delivery Methods Overview

As a user, you may have a lot of applications, each with a lot of delivery methods configured in AppsAnywhere.

Now, from the admin menu under Applications, there is a **Delivery methods** option which will bring up a screen showing all the delivery methods configured on your AppsAnywhere appliance.  
![image-20250204-162251.png](https://docs.appsanywhere.com/__attachments/a_65d7f4d5275c11dca3c3b9a9f96d62694328a92e27a2b3aba3f0628a087d422f/image-20250204-162251.png?cb=eec39a88349115c3b5faa36f7f092050)

You can search by any of the fields in the table using the **Search delivery methods** search box. The results will show all delivery methods matching your search criteria. Click a delivery method record will redirect to the application page owning that delivery method.  
![image-20250204-163644.png](https://docs.appsanywhere.com/__attachments/a_e64f765e45d2108d693ef7b8941680847930779cec6a8996197ff8b6e5c2e8e4/image-20250204-163644.png?cb=b17fb0b8c920e831f83990ed2ae162a5)

The delivery methods displayed can be filtered by using the drop-downs beneath the search bar. Delivery methods can be filtered by;

* Type

* Device Type

* Device Ownership

* On-Domain

* On-Site

* App-License (Automated App License applied)

* Hardware Profile

* OS Compatibility

---
version: "3.6"
language: "en"
---
# Analytics

## Overview

AppsAnywhere Analytics offers an incredibly powerful, top-level view of everything that is going on in your environment, including who is logging into the system, which devices they are using, what they are launching and how long they are using it for. This section contains everything you need to know about AppsAnywhere Analytics.

There are two main aspects to the AppsAnywhere Analytics solution, and two new phrases that we will use when talking about the product. These are **viewing** and **exploring** . Each of these terms come with their own roles in AppsAnywhere; **Analytics User** and **Analytics Explorer** and the role that each user is assigned will determine what they can do within Analytics.

**Analytics Users** will have access to the Analytics tab in AppsAnywhere admin and will be able to see all of the pre-defined content that has been made available to them. This includes the complete set of **Built-in Dashboards** that we provide as part of the product (which are described in more detail below) and any additional **Shared Dashboards** that have been made available to them by an Analytics Explorer user within your organization.

**Analytics Explorers** have access to everything that an Analytics Viewer has, but they also have the ability to create their own content for both themselves and others in their organization as they have access to all the data made available by Analytics and they have the ability to explore that data using the intuitive reports builder. Once they have created a report, they can add it to their own **Custom Dashboards** that they have created and, if they want, share those dashboards with Analytics Viewers or others in their organization.

## Granting Access to Analytics

Access to Analytics is granted to users by a **System Admin** user and can only be assigned to specific people in your directory, access cannot be assigned to a directory group, machine or machine group, only named individuals.

To assign someone access to AppsAnywhere Analytics:

1. Log into AppsAnywhere as a System Admin user

2. Once logged in, click Return to Admin

   1. If the user is not imported continue to step 3. Otherwise, proceed to step 7

3. Click on Provisioning \> Directory Browser

4. Search for the user you wish to assign access

5. Click Import

6. Assign them a role of either **Analytics User** or **Analytics Explorer**

7. To edit permissions for an existing record navigate to Provisioning \> Manage Imported Records

8. Search for the user you wish to assign access

9. Click **Edit**

10. Assign the account a role of either **Analytics User** or **Analytics Explorer**

For more information on assigning roles to users, see the [Importing directory entities](https://docs.appsanywhere.com/appsanywhere/3.6/importing-directory-entities.md) section.  
You will be limited to how many users you can assign to each role, as defined in your licensing agreement for Analytics.

## Accessing Analytics

AppsAnywhere Analytics is accessed through AppsAnywhere using the link on the Portal or from within AppsAnywhere Admin.  
![image-20231122-171005.png](https://docs.appsanywhere.com/__attachments/a_a5526e16e64d0d0027cf8217cd8d0d2d164a664fb9760c2cd9ea8570e38e9356/image-20231122-171005.png?cb=ea24aec82172f7e586cbcf49ccb8ac26)  
![image-20231122-170820.png](https://docs.appsanywhere.com/__attachments/a_4abc2db090dc7c71f0e9186b0b61f371e1ee482c073580863d7c517890d2f95d/image-20231122-170820.png?cb=59303e2d512313c962c81b93f594557a)

When you hover over the Analytics tab, you will be presented with the sub-menu which contains Dashboards or Explores, depending on your user role. If you don't see these options, or get a message saying you are not authorized, ask a System Admin to make sure you have an Analytics role assigned to your user account.  
Analytics users need access to the [Inbound Traffic (Internal) \| Analytics URL](https://docs.appsanywhere.com/appsanywhere/3.6/connectivity-requirements.md) in addition to the AppsAnywhere Portal to load all of the Analytics Dashboards and Explores.

If you haven't yet purchased AppsAnywhere Analytics, or it has not yet been configured in your environment, then you will be directed to the info page on the AppsAnywhere website when clicking on the Analytics tab.

If this is the case and you wish to access AppsAnywhere Analytics, please raise a ticket via [Support](https://support.software2.com/).

## What's Next?

Now that you understand the key parts of Analytics and how to access the system, delve deeper into each section using the articles below:

* [Using Dashboards](https://docs.appsanywhere.com/appsanywhere/3.6/using-dashboards.md)

* [Using Explores](https://docs.appsanywhere.com/appsanywhere/3.6/using-explores.md)

---
version: "3.6"
language: "en"
---
# API Key Settings

## Overview

AppsAnywhere has the ability manage API keys and add a scope for the generated API key, This article will go over Managing your API Keys in AppsAnywhere.  
API Keys are currently only relevant for the App Lists Exam addon, the link will not be visible unless this is enabled.

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the navigation buttons on the left of the page, open the **Settings** menu and then **API Keys**

## Creating an API Key

You can add new API keys directly from this page. The form on the left will allow you to submit the information to add a new one, and the table on the right will display the ones that have already been added.

**Enter the details of your API Key:**  

| Form field name |                                                                                                                            Explanation                                                                                                                             |                                     Expected value                                      |      Example      |
|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|-------------------|
| Display name    | The name to be displayed in AppsAnywhere                                                                                                                                                                                                                           | You can call the API Key anything you want, this will only be displayed in AppsAnywhere | AppsAnywhere Apps |
| Scopes          | Allows access to certain APIs based on what is chosen Currently there is only a single scope available: * Shared App Lists - Request Apps: provides access to the API for retrieving launch information for applications that are part of LMS associated App Lists | You can select the checkboxes for the APIs you want access to                           | Checked           |

Once you have entered the information required you can click **Save**to add your new API key.  
You won't be able to save your key without selecting at least one scope. However, there will be more options added in the future.

A pop up message will show once you have saved the API key and it will display what your new key is, as can be seen below:

![image2020-6-22_17-11-51.png](https://docs.appsanywhere.com/__attachments/a_c9a9cef38f66d23b38b095af03bf17a9e42773cc0cf63ff59fd45787b1d574c7/image2020-6-22_17-11-51.png?cb=5dcafd4dd765d054d9fe7b2cc1e9bffc)

For example your new key in the above screenshot would be: zdul7iV76k.ozZd8NQWW0azOx81p6X2JA==  
it is vital that you copy and paste the API key generated as it is shown once; you will have to create a new API key again to generate a new one.

## Listing API Keys

As aforementioned the table on the right will display existing API keys added to the system, as can be seen below:

![image2020-6-22_17-21-51.png](https://docs.appsanywhere.com/__attachments/a_abbec1c432f083576c582e95d6d076b3e0bc8313df21ffc34c3972f72d9f2570/image2020-6-22_17-21-51.png?cb=2e0e238384e9d7d3c70525664e3dcd4c)

You may have noticed additional information related to the API Keys you have created, these will have been automatically generated for you to help you with administration of these keys. The following table will explain the different fields in more detail:

|  Field name  |                                                                        Explanation                                                                        |          Example          |
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|
| Prefix       | Created by the system so that you can more easily identify the API key when it is being used A randomly generated value consisting of letters and numbers | zdul7iV76k                |
| Created Date | The date when the API key was created                                                                                                                     | Jun 22, 2020, 12:11:11 PM |

New API keys will be added to the top of the table rather than at the bottom.

## Revoking an API Key

If you want to remove access to an existing API Key then click **Revoke** next to the one you want to remove access for.

You will then be prompted to confirm the revocation. Check the name of the API Key in the message to ensure you are deleting the correct one.  
![image2020-6-22_17-40-59.png](https://docs.appsanywhere.com/__attachments/a_5c8e1d61f19b10c5ddb4118c87fe66b2e5f367ca0811accc29b6753798eb05f1/image2020-6-22_17-40-59.png?cb=8ba20d18410d923b69169e769e6eca79)

Click the **Revoke** button in the dialog to remove the API Key.  
Make sure that the API Key you are revoking is no longer used. Revoking an API Key will immediately deny access to callers using the key. Revoking an API Key is not reversible.

---
version: "3.6"
language: "en"
---
# App List Administration

## Prerequisites

1. You have integrated with an Embed (e.g. Brightspace, Canvas etc)

2. The [Shared App Lists](https://docs.appsanywhere.com/appsanywhere/3.6/shared-app-lists.md) feature is enabled

   * The exam availability functionality requires the exam add-on feature to also be enabled

3. At least one course must be created within the LMS, and any course you wish to link to an App List must have an SIS ID set

4. The accounts the administrators are using should be configured with SIS IDs containing their LDAP directory or SAML usernames

   * The LDAP directory used for lookup is taken from the Embed configured in AppsAnywhere

   * The corresponding directory user must also been [given access to AppsAnywhere](https://docs.appsanywhere.com/appsanywhere/3.6/importing-directory-entities.md).

Once these are completed, you can proceed to setup.

## Setup

### Associating an App List

1. Navigate to the AppsAnywhere Embed within your LMS or web page as an administrator

2. You should see a message that there is no list associated.

   ![image-20220912-155258.png](https://docs.appsanywhere.com/__attachments/a_edc07b754b0484dd6a18efcb227de598cd646aa2a5199758476d3f27113550c7/image-20220912-155258.png?cb=eaf1ecd6a252ed0fed49611d20acb35a)
   The embed with no list associated
3. Selecting**Associate app list** will display available App Lists for you to associate with the current course.

4. Here, you can select the App List you want to use for the course.

   ![image-20220912-155334.png](https://docs.appsanywhere.com/__attachments/a_87f964016c9c4e7af71d4f0d862c8a776393a2892186f53c7ad43976b97b7e66/image-20220912-155334.png?cb=774212dda8f2c261a5f9dbd8abeaceca)
   The embed whilst associating an app list

   Some App Lists may already be associated to another course. A list can only be associated to a single course, but you will have the option to clone the list, as well as the option to give it a new name.
5. Once an App List has been selected, the applications that it contains will be displayed.

   ![image-20220912-155415.png](https://docs.appsanywhere.com/__attachments/a_60887d039f0d8a628db2ec6f5274ab1f74cccd1716c0928c502c279c259024ce/image-20220912-155415.png?cb=c32d1194263c8ecf915dbd669566b1c5)
   The embed displaying all of the apps within the list

As is the case when sharing an app list, if any of the apps contained within an App List have not been provisioned correctly, they will not be displayed to some users. Those users will see a warning if we detect that some applications appear to be missing.

### Creating an App List

1. Navigate to the AppsAnywhere Embed within your LMS or web page as an administrator

2. Select**Associate app list** if no list has been associated, or **Associate a different app list** if one is already linked. The App Lists will then be displayed for you to associate with your current course

3. Here, you can select **Create a new list** which will open a new tab to your AppsAnywhere instance where you can start editing the App List.

   When creating a new App List you can see which course it will be linked to at the top of the page.  
   ![image-20220912-155646.png](https://docs.appsanywhere.com/__attachments/a_8c233ab30a52c8f1230e1dbbf54d6771fb663931fc62f067ef4fd45f3fa0cbc1/image-20220912-155646.png?cb=b3c0e6380d265e1e64771e8a23df37d7)
   The AppsAnywhere instance creating a new app list
4. For information on how to configure LMS and exam availability take a look at the section below for Configuring applications for LMS and exam availability

### Editing an App List

1. Navigate to the AppsAnywhere Embed within your LMS or web page as an administrator

2. If the App List does not contain the required apps, you can select **Edit this list**to add the applications yourself

3. This will open a new tab to your AppsAnywhere instance where you can start editing the App List

   ![image-20220912-155734.png](https://docs.appsanywhere.com/__attachments/a_74b6514c1ff5ad2b902ad74b407049d9004306c4ba0cddd65e107b5398f5ba3c/image-20220912-155734.png?cb=e16d27e9e69abf31aa52913abd187776)
   The AppsAnywhere instance displaying an app list
4. For information on how to configure LMS and exam availability take a look at the section below for Configuring applications for LMS and exam availability

Adding and removing applications saves the App List automatically so there's no need to worry about clicking a save button!

### Configuring applications for LMS and exam availability

When editing an App List associated to a course you can configure the *LMS* and *exam* availability for each application.  
Before configuring your apps for exam environments, the apps you want to enable should have at least one [Cloudpaging delivery method](https://docs.appsanywhere.com/appsanywhere/3.6/cloudpaging-delivery-method.md)

1. Navigate to the AppsAnywhere Embed within your LMS or web page as an administrator

2. Selecting **Edit this list** will open a new tab to your AppsAnywhere instance with the App List edit screen displayed.

3. You will see two checkboxes at the bottom of each app in the App List**:**

   1. The **LMS** checkbox notates whether the app is displayed in the Embed

   2. The **Exam** checkbox notates whether the app is exam ready and will be reflected in the Shared App List - Request Apps API

4. Once you're happy with the selections, select **Finished**.

Once this is done, you can now close the AppsAnywhere tab and navigate back to your web page. Updates to the LMS availability will take effect immediately.

### Disassociating an App List

1. To remove an App List, selecting **Edit this list** will open a new tab to your AppsAnywhere instance with the App List edit screen displayed.

2. You can then **Delete** the list,which will delete the App List and disassociate the App List from the course.

---
version: "3.6"
language: "en"
---
# Appliance Configuration Console (ACC)

## Overview

The **AppsAnywhere Appliance - Configuration Console** or **ACC** provides the ability to manage and configure all aspects of the AppsAnywhere virtual appliance.

For your convenience, we have provided this menu based configuration tool to replace the need to use the Linux command line.

## Logging In

If you are setting up an AppsAnywhere appliance for the first time, you'll find the login details and steps to follow under:

* [First-time Configuration](https://docs.appsanywhere.com/appsanywhere/3.6/first-time-configuration.md)

If you are returning to the ACC, please login using the **setup** user account password that you created during first-time configuration.  
Customer access to the ACC is only available via the hypervisor console (e.g. via vSphere or Hyper-V).

If you lost the setup account password for an existing AppsAnywhere appliance, the AppsAnywhere team can reset this for you, but only if remote access was previously provided.

Please contact AppsAnywhere[Support](https://support.software2.com/) for assistance if you are unable to login.

## Setup Menu

The ACC is loaded automatically after you login to the appliance using the **setup** user account.

The **setup** user has access to the following options:  
![image2020-12-5_10-53-48.png](https://docs.appsanywhere.com/__attachments/a_9765a0dca7fc5f8bad6ac0990b78f20a0cc11e823ca31c55808e5663daf8a571/image2020-12-5_10-53-48.png?cb=b5a2109d3bbdddfbdf165eb3793f5628)

Please refer to the following sections of this documentation for further details:

* [Configure Networking](https://docs.appsanywhere.com/appsanywhere/3.6/configure-networking.md)

* [Configure Single Sign-On](https://docs.appsanywhere.com/appsanywhere/3.6/configure-single-sign-on.md) [](https://docs.software2.com/tbc)

* [Configure SSH Access](https://docs.appsanywhere.com/appsanywhere/3.6/configure-ssh-access.md)

* [Configure Proxy Settings](https://docs.appsanywhere.com/appsanywhere/3.6/configure-proxy-settings.md)

* [Configure NTP Settings](https://docs.appsanywhere.com/appsanywhere/3.6/configure-ntp-settings.md)

* [Configure System Updates](https://docs.appsanywhere.com/appsanywhere/3.6/configure-system-updates.md)

* [Configure PHP Locale](https://docs.appsanywhere.com/appsanywhere/3.6/configure-php-locale.md)

Exiting the ACC for the **setup** user will return the user to the appliance console login prompt.

---
version: "3.6"
language: "en"
---
# Applying and Renewing SSL certificates 

## Format

We recommend certificates are supplied to AppsAnywhere in **.PFX** (Personal Information Exchange) format as this format is password protected by default and contains all the required certificate files (certificate, chain and key). The password associated with the .PFX file must be securely provided.

Certificates in different formats and articles with instructions on converting them are usually provided by the certificate authority e.g.,

1. [SSL Converter - Convert SSL Certificates to different formats (sslshopper.com)](https://www.sslshopper.com/ssl-converter.html)

2. [How to convert a certificate into the appropriate format (digicert.com)](https://knowledge.digicert.com/solution/SO26449.html)

If required, see [Generating a certificate request (csr)](https://docs.appsanywhere.com/appsanywhere/generating-a-certificate-request-csr).

## Applying SSL Certificates

Once the certificate has been provided by the certificate issuer, the .pfx file should be securely saved alongside the certificate request (csr) and key.

### AppsAnywhere

If SSL is terminated at the load balancer, the certificates only need to be applied on there.

Otherwise, a member of the AppsAnywhere team will apply them on the servers.

### Cloudpaging

If SSL is terminated at the load balancer, the certificates only need to be applied on there.

Otherwise, a Cloudpaging administrator should follow [Configuring Cloudpaging SSL Certificates](https://docs.appsanywhere.com/appsanywhere/configuring-cloudpaging-ssl-certificates) .

### Parallels RAS

If SSL is terminated at the load balancer, the certificates only need to be applied on there.

Otherwise, a Parallels RAS administrator should follow [Parallels RAS Administrator's Guide - SSL Certificate Management](https://www.parallels.com/uk/products/ras/resources/).

## Renewing SSL Certificates

When certificates are renewed, they will need to be updated on the services that host them, whether this is the load balancer and/or the AppsAnywhere servers.

If they are hosted on the load balancer Cloudpaging or Parallels RAS, the team that manages those services should update the certificates. This is possible without intervention form AppsAnywhere Support.

For certificates hosted on AppsAnywhere Servers, the new certificate file will need to be saved in the AppsAnywhere share, or one of the servers. A [support ticket](https://support.appsanywhere.com/hc/en-us/requests/new)should then be raised to provide the certificate password and arrange a time for a member of the AppsAnywhere team to update it.

No service outage is required, providing the load balancer is setup with health checks.

Otherwise, the service will be:

* At risk from the start of the change for approx. 30 minutes

* Offline for approx. 5 minutes whilst the service restarts

---
version: "3.6"
language: "en"
---
# AppsAnywhere Cloud

**AppsAnywhere Cloud** is our SaaS (Software-as-a-Service) offering of AppsAnywhere. With AppsAnywhere Cloud you can focus on delivering software to your end users and leave the servers and infrastructure to us.

* [Find out more about AppsAnywhere Cloud](https://www.appsanywhere.com/resource-centre/appsanywhere-cloud)

* [AppsAnywhere Cloud specifications](https://www.appsanywhere.com/product/tech-specs/appsanywhere-cloud-specifications)

* [AppsAnywhere Cloud Deployment Guide](https://docs.appsanywhere.com/appsanywhere/3.6/appsanywhere-cloud-deployment-guide.md)

---
version: "3.6"
language: "en"
---
# AppsAnywhere Cloud Delivery Delivery Method

This feature requires AppsAnywhere Cloud Delivery to be enabled.

## Overview

The **AppsAnywhere Cloud Delivery** delivery method allows users to access apps from the **AppsAnywhere Library**, which is a great option for providing Windows apps to non-Windows devices, or providing a heavy app to a lightweight device.

## Before you start

To work with **AppsAnywhere Cloud Delivery** one of our Implementations or Support staff will need to perform some initial configuration to connect things up.

If the delivery method appears for you when attempting to add a new delivery method to an application (shown below), this is usually a good indicator that everything is set up for you.  

## Getting started

You can find the new delivery method when [Adding delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/adding-delivery-methods.md) to an app if you select the **AppsAnywhere** category from the left-hand side of the **Add New Delivery Method** dialog, by searching for **AppsAnywhere Cloud Delivery**, or by finding it in the list of all delivery methods.  
![Screenshot 2026-04-30 at 16.41.21.png](https://docs.appsanywhere.com/__attachments/a_78c787b6f57c2edfa31f36b1100409249a71e7ee960fe779b3ef4a16518f7ebb/Screenshot%202026-04-30%20at%2016.41.21.png?cb=1b570ee84688ee99c8f8d10763a58f2b)

## The delivery method

The delivery method itself is intentionally simple. In this case, simply pick which Cloud application should be launched from those available.

If an application isn't listed and you think it should be, please get in touch with us.

You can now set any restrictions, OS compatibility or hardware profiles as you would for any other delivery method. If you're not sure about these, check out [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) .  
![image-20260318-100850.png](https://docs.appsanywhere.com/__attachments/a_80b5470b84828b1d6e3e33b127749b6b8fda3364b025e7f113af903d99376c76/image-20260318-100850.png?cb=ac4f4ce8388a329fd408ca8c3978eaf2)

Now you can freely provide the application via the new **AppsAnywhere Cloud Delivery** technology to all your users however you prefer!

---
version: "3.6"
language: "en"
---
# AppsAnywhere Cloud Deployment Guide

## This article only applies to AppsAnywhere Cloud deployments.

### Introduction

This article details the information that AppsAnywhere will gather as part of the implementation process to configure a new AppsAnywhere instance.

#### Contacting AppsAnywhere

If at any stage you cannot find the information you need or have any questions, please reach out via [GuideCX](https://app.guidecx.com/) or [AppsAnywhere Support](http://support.appsanywhere.com/).

Our dedicated team are also available to help you throughout this process and we can arrange further support calls as needed.

## CNAMES

To point your domain name to the cloud-hosted AppsAnywhere infrastructure, it is required that you create the following CNAME records in your DNS.

The documentation below uses generic placeholders and an Implementation Consultant will provide the following fields.

* `<customer.domain>`

* `<customer.code>`

* `<azure.region>`

### AppsAnywhere

For your AppsAnywhere portal, please create a CNAME record for portal address that you wish to use.  
Your AppsAnywhere portal address will be the how the service is accessed by your student and staff members, so it needs to be a simple to remember address that can be typed, remembered, and bookmarked.

By default, we work on the assumption that the service will be call **appsanywhere** and this is hosted under you **\<customer.domain\>.**This is common for the majority of our customers and helps to ensure documentation and support is simplified as it refers to "AppsAnywhere".

So, for example, if your public domain was, [**springfield.ac.uk**](http://springfield.ac.uk/)then your portal address would be [**appsanywhere.springfield.ac.uk**](http://appsanywhere.springfield.ac.uk/).  

|      Customer CNAME record       |    |       Azure Hosted DNS record        |
|----------------------------------|----|--------------------------------------|
| appsanywhere.`<customer.domain>` | \> | `<CustomerCode>`.appsanywhere.online |

This address will need to resolvable both internally and externally.

You will also need to provide a valid SSL certificate for the portal address.

Our preferred format for receiving certificates is PFX, but we can convert other formats if this is not possible, so please make sure the ++full certificate, chain, key and password++ are supplied.

### Cloudpaging

For Cloudpaging, even though all the servers are hosted in Azure, to comply with the licensing terms, the Cloudpaging **Paging** servers also need a `<customer.domain>` hosted address.

The Paging servers deliver the application data to the end-user client via the Cloudpaging player, so again this address needs to be resolved both internally and externally.

There is ++no requirement++ for any SSL certificate for this address as by default all the package data is encrypted.  

|   Customer CNAME record    |    |                     Azure Hosted DNS record                     |
|----------------------------|----|-----------------------------------------------------------------|
| paging.`<customer.domain>` | \> | `<CustomerCode>`-cloudpaging.`<AzureRegion>`.cloudapp.azure.com |

## Pre-Caching on a Network File Share

Whilst the vast majority of Cloudpaged applications are paged directly from the hosted paging servers in Azure, pre-caching is required for optimal performance with larger, more complex applications.

Further information is available on the following documentation.

* [++How to configure and use pre-caching on managed devices++](https://support.appsanywhere.com/hc/en-us/articles/360013414374-How-to-Configure-and-Use-Pre-caching-on-Managed-Devices)

This is a mandatory requirement for [AppsAnywhere Cloud](https://www.appsanywhere.com/product/tech-specs/appsanywhere-cloud-specifications) to achieve optimal performance on managed devices.

## SAML SSO

A SAML identity provider will be used to provide authenticated access and single sign on (SSO) to the AppsAnywhere instance.

When setting up your SAML IDP application, your return-to address will be:

* `https://appsanywhere.<customer.domain>/sso/saml2/appsanywhere`

Please refer to [Single Sign-On Settings](https://docs.appsanywhere.com/appsanywhere/3.2/single-sign-on-settings) and [SAML 2.0 Common](https://docs.appsanywhere.com/appsanywhere/3.2/saml-2-0-common) documentation for more information.

### IDP Metadata

When you create your SAML app, we will require the IDP metadata URL or XML file so we can complete the AppsAnywhere configuration:  

|------------------------------|------------------------------------------------------------------------------------------------------|
| **Property**                 | **Value**                                                                                            |
| IDP Metadata URL or XML file | e.g. <https://login.microsoftonline.com/xxxxxxxxx/federationmetadata/2007-06/federationmetadata.xml> |

### SAML Attribute Provisioning information

SAML attributes retrieved when a user authenticates, form the basis of the filtering process used to display which relevant applications have been provisioned to the user. This information is used by AppsAnywhere to know which attribute from the SAML response should be used to retrieve group membership(s)

To create and configure user access, **SAML User** , **Displayname** and **Group** attribute names are required:  

|-----------------|-----------------------------------------------------------------------|-----------------------------------------------|
| **Property**    | **Attribute**                                                         | **Expected Value/Format**                     |
| **User**        | `e.g. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`     | e.g. **user@domain**                          |
| **Group**       | `e.g. http://schemas.microsoft.com/ws/2008/06/identity/claims/groups` | e.g. **5e581c85-8025-xxxx-a342-xxxxxxxx6fde** |
| **DisplayName** | `e.g.http://schemas.microsoft.com/identity/claims/displayname`        | e.g **John Smith**                            |

This information will be used to configure mapping once AppsAnywhere is online by following

* [Creating SAML Attribute Mappings](https://docs.appsanywhere.com/appsanywhere/creating-saml-attribute-mappings)

#### AppsAnywhere Support Account

For the AppsAnywhere team to install, administer and support AppsAnywhere, an account needs to be created in your directory and associated with the SAML IDP application.  

|---------------------|----------------------------------------------------------------------------------------------------------------------|
| **Username**        | e.g. **appsanywhere@** `<customer.domain>`                                                                           |
| **Usage**           | * A directory account used by AppsAnywhere for installation and support. * Used to login to the AppsAnywhere Portal. |
| **Password Policy** | * Reset as per your normal security protocols. * Account can later be disabled when not in use, if preferred.        |

The support account credentials are stored securely internally and only available to AppsAnywhere support staff for the purpose of their jobs.

This account can be a single generic contractor account, but if your security requirements require single named accounts, please let us know, along with any submission/contractor forms, so we can register the appropriate support staff.

Within AppsAnywhere, levels of access are granted via Roles. Details of the available roles are available on [User Roles and Permissions](https://docs.appsanywhere.com/appsanywhere/user-roles-and-permissions).

---
version: "3.6"
language: "en"
---
# AppsAnywhere & Cloudpaging Infrastructure Diagram

![image-20220329-131051.png](https://docs.appsanywhere.com/__attachments/a_2a9870ecc913062b7a857ccaf13619f6a1a4ef001e7a78a985251f83fc7135a5/image-20220329-131051.png?cb=9de1e29e97c4fb1a50b36b03a1c55786)

**PDF Download**

[AppsAnywhere_Cloudpaging_Infrastructure_Diagram.pdf](https://docs.appsanywhere.com/__attachments/a_588a419ed47cd4561a6ea7957a836cc31b8a4defe88e2e14bd2d06f0d6193d14/AppsAnywhere_Cloudpaging_Infrastructure_Diagram.pdf.md?cb=3b0996007bb641621c230ead5a51da59)

---
version: "3.6"
language: "en"
---
# AppsAnywhere, Cloudpaging & Parallels RAS Infrastructure Diagram

![image-20220329-131205.png](https://docs.appsanywhere.com/__attachments/a_883f54ebfe6eeafc82ff094f616ee703c82ac957c619781a3c0335701270edb4/image-20220329-131205.png?cb=3794c302e9db5a9992543a47d495e40e)

**PDF Download**

[AppsAnywhere_Cloudpaging_RAS_Infrastructure_Diagram.pdf](https://docs.appsanywhere.com/__attachments/a_3a19b49d345df06e2f215935eb5a499fe65e962dd6f392c572171ed223857672/AppsAnywhere_Cloudpaging_RAS_Infrastructure_Diagram.pdf.md?cb=72e225348627a11a54487bf9b45a6c2d)

---
version: "3.6"
language: "en"
---
# AppsAnywhere Infrastructure Diagram

![image-20220329-130853.png](https://docs.appsanywhere.com/__attachments/a_b9a3661033493fa03ac790eafc69610e968ade1b9f8039291d25fe25c5f3d45b/image-20220329-130853.png?cb=5b54eb571103e96da097e92a1f5566d7)

**PDF Download**

[AppsAnywhere_Infrastructure_Diagram.pdf](https://docs.appsanywhere.com/__attachments/a_879a2f0ba09b0ea33696c55379c21e49775588654d929278bb2b7daebf756b2a/AppsAnywhere_Infrastructure_Diagram.pdf.md?cb=96ef39d6a2c406715baff192662e4fcc)

---
version: "3.6"
language: "en"
---
# AppsAnywhere & Parallels RAS Infrastructure Diagram

![image-20220329-131626.png](https://docs.appsanywhere.com/__attachments/a_4df36011081e8c4aee19d626ee6e084e8a19ef2cf1481114b07fd1ad0c6522d0/image-20220329-131626.png?cb=2c272db491c643f4840648b8c1f056de)

---
version: "3.6"
language: "en"
---
# AppsAnywhere Process and Data flow

## Introduction

This document provides a summary of the AppsAnywhere process and data flow for both the basic system design and the standard operations that are performed.

A summary of data captured and/or stored at various points is also provided.

Please note that the focus of this document is the AppsAnywhere product.

Details of Numecent Cloudpaging and Parallels RAS are only covered from the integration standpoint.

However, a brief traffic flow summary is included for these products.

## AppsAnywhere

### Basic Design

The following sections provide a basic and example system design for the various products. These do not include all components and modules that can be part of the solution, specifically with Parallels RAS.

Although the AppsAnywhere, Numecent Cloudpaging and Parallels RAS configurations below have been separated, the environment is normally combined.

#### AppsAnywhere and Numecent Cloudpaging

The [Infrastructure Diagrams](https://docs.appsanywhere.com/appsanywhere/3.6/infrastructure-diagrams.md) provide details of an example/basic system design for AppsAnywhere with Numecent Cloudpaging.

### User login to AppsAnywhere

The following diagram provides an overview of the AppsAnywhere login sequence.  
![image-20220426-101302.png](https://docs.appsanywhere.com/__attachments/a_6309311ae4e7481d04d542fcb34823630dcd7f0d9aa6514723eb58e1a646186c/image-20220426-101302.png?cb=4d8774f26cd28dd7174d0fd9ef9a2f19)

This process is actioned when the user accesses AppsAnywhere through their browser. All access to the AppsAnywhere instance is via HTTPS/443.

The "authenticate user" process will authenticate the user using the credentials supplied with one of the DC's in the linked active directory domain. This will use Kerberos where available but will fall back to NTLM if required.

By default, the following user information is written into the AppsAnywhere database.

**NOTE**: There are additional values/fields at are populated which are not listed. However, these are internal fields like unique identifiers and tour progress etc which do not contain user specific information.  

|---------------|--------------|---------------------|
| **Data type** | **Value**    | **Description**     |
| User          |              |                     |
|               | Domain       | FQDN                |
|               | Short Domain | NetBIOS domain name |
|               | Username     | User's username     |
|               | Display Name | User's Display Name |

If AppsAnywhere Analytics is enabled (which is not+ enabled by default) a login event is written to the Analytics database by the AppsAnywhere server currently processing the request. This event contains the following information user and device information: -

**NOTE**: There are additional values/fields at are populated which are not listed. However, these are internal fields like unique identifiers etc do not contain user specific information.  

|---------------|--------------------------------|-------------------------------------------------------------------------------------------|
| **Data type** | **Value**                      | **Description**                                                                           |
| Session       |                                |                                                                                           |
|               | Browser OS Family              | Returned browser OS value (e.g. WIN, IOS, OSX etc).                                       |
|               | Browser OS Family string       | Returned browser OS family string value (e.g. Windows, masOS, iOS etc).                   |
|               | Browser OS Version             | Returned browser OS version value (e.g. WIN_10 OSX_MOJAVE, IOS_13 etc).                   |
|               | Browser OS Version string      | Returned browser OS version string value (e.g. Windows 10, Catalina (10.15), iOS 13 etc). |
|               | Browser OS architecture        | Returned browser OS architecture value (e.g. X64, X86).                                   |
|               | Browser OS architecture string | Returned browser OS architecture string value (e.g. 64-Bit, 32-Bit).                      |
| User          |                                |                                                                                           |
|               | Domain                         | FQDN                                                                                      |
|               | Short Domain                   | NetBIOS domain name                                                                       |
|               | Username                       | User's username                                                                           |
|               | Display Name                   | User's Display Name                                                                       |

### User validation (Windows and MAC only)

The following diagram provides an overview of the AppsAnywhere validation sequence. This process will only occur if the user has been successfully authenticated as detailed in the previous step.

This process only occurs on Windows and macOS devices.  
![image-20220426-101323.png](https://docs.appsanywhere.com/__attachments/a_38f37449bf7a752104478f00e348ae6cf69d03f73f2f1f3681a7ffd4fcf92651/image-20220426-101323.png?cb=494a3f1814df42f45e8391b36ed7808c)

The validation information is collected from the device and passed to the AppsAnywhere server via an encrypted message. All communication between the AppsAnywhere Client and Server is performed over HTTPS/443.

The encrypted message contains the following user and device information: -  

|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| **Value**          | **Description**                                                                                                                                   |
| Device Name        | NetBIOS machine name                                                                                                                              |
| Device Type        | Laptop or Desktop device type                                                                                                                     |
| Local IP           | Local IP address of the device                                                                                                                    |
| Logon Domain       | NetBIOS logon domain name                                                                                                                         |
| Logon Username     | Logon username in the format "DOMAIN\\USERNAME"                                                                                                   |
| OS Category        | OS category (e.g. Windows, macOS etc).                                                                                                            |
| OS Version         | OS build version number                                                                                                                           |
| SCCM info          | Information retrieved from the SCCM Client (if available) regarding available and published applications.                                         |
| Local applications | A list of EXE files from the "App Paths" local registry key and a list of Uninstall strings.                                                      |
| Citrix info        | Information retrieved from the Citrix Receiver/Workspace Client (if available) regarding available applications and configured storefront URL(s). |

This validation information is only used within the active session to filter the list of available objects the user sees within the AppsAnywhere Portal. None of this information is stored in the AppsAnywhere database.

If AppsAnywhere Analytics is enabled (which is not enabled by default) device information is written to the Analytics database by the AppsAnywhere server currently processing the request. This event contains the following information device information: -

**NOTE**: There are additional values/fields at are populated which are not listed. However, these are internal fields like unique identifiers etc do not contain device specific information.  

|---------------|------------------------|------------------------------------------------------------------------------------------|
| **Data type** | **Value**              | **Description**                                                                          |
| Device        |                        |                                                                                          |
|               | Domain                 | FQDN                                                                                     |
|               | Short Domain           | NetBIOS domain name                                                                      |
|               | Name                   | Device NetBIOS name                                                                      |
|               | OS Family              | Returned device OS family value (e.g. WIN, OSX etc).                                     |
|               | OS Family String       | Returned device OS family string value (e.g. Windows, macOS, iOS etc).                   |
|               | OS Version             | Returned device OS version value (e.g. WIN_10 OSX_MOJAVE, IOS_13 etc).                   |
|               | OS Version string      | Returned device OS version string value (e.g. Windows 10, Catalina (10.15), iOS 13 etc). |
|               | OS architecture        | Returned device OS architecture value (e.g. X64, X86).                                   |
|               | OS architecture string | Returned device OS architecture string value (e.g. 64-Bit, 32-Bit).                      |
|               | Local IP               | Local IP address of device                                                               |
|               | Remote IP              | External IP address of device                                                            |
|               | Country                | Country location of device (e.g. GB, US etc).                                            |
|               | Country string         | Country location string of device (e.g. United Kingdom, United States etc).              |

### Launch Cloudpaged application

The following diagram provides an overview of the AppsAnywhere sequence of the user launching a Cloudpaged application. This process will only occur if the user has been successfully authenticated and validated as detailed in the previous steps. This process also only applies to Windows devices.  
![image-20220426-101338.png](https://docs.appsanywhere.com/__attachments/a_c7704fc6becca5d2551cd11a3202d155a805677f6530352f03d81417c1d434f4/image-20220426-101338.png?cb=1dc79fb3d11f938c27c9f92fb6ef5ad9)

All communication between the AppsAnywhere Client and Server is performed over HTTPS/443.

The AppsAnywhere Client is passed the launch request via the browser in an encrypted string format. The AppsAnywhere Client decodes the request and determines the required actions. In this case the request is for a Cloudpaged application.

At first the AppsAnywhere Client will determine the minimum required version of the Cloudpaging Player as defined within the AppsAnywhere admin portal. If it is not installed or an older version, it will be installed or upgraded automatically.

Once the Cloudpaging Player requirements have been met, a partial validation of the user and device takes place. This is due to user and OS restrictions assigned to the select delivery methods, in this case Cloudpaging.

The partial validation information is sent via an encrypted message which contains the following user and device information: -  

|----------------|-------------------------------------------------|
| **Value**      | **Description**                                 |
| Device Name    | NetBIOS machine name                            |
| Device Type    | Laptop or Desktop device type                   |
| Local IP       | Local IP address of the device                  |
| Logon Domain   | NetBIOS logon domain name                       |
| Logon Username | Logon username in the format "DOMAIN\\USERNAME" |
| OS Category    | OS category (e.g. Windows, macOS etc).          |
| OS Version     | OS build version number                         |

If all criteria have been met the AppsAnywhere Client will send a request to the AppsAnywhere Server for a secure Cloudpaging token for the required application. In turn, the AppsAnywhere Server will contact the Cloudpaging Admin/License server(s), which then issues the secure token. The token is then returned to the AppsAnywhere Client by the AppsAnywhere Server.

This secure token is received by the AppsAnywhere Client and passed to the Cloudpaging Player.

The Cloudpaging Player will then process the request, virtualize the application and launch it once complete.

As part of this request the following user and device information is stored within the AppsAnywhere and Cloudpaging databases. This information is linked to the users/device unique session ID.  

|---------------|-----------------|-----------------------------------------------------------------------------|
| **Data type** | **Value**       | **Description**                                                             |
| User          |                 |                                                                             |
|               | Domain          | FQDN                                                                        |
|               | Short Domain    | NetBIOS domain name                                                         |
|               | Username        | User's username                                                             |
|               | Display Name    | User's Display Name                                                         |
| Device        |                 |                                                                             |
|               | Device Type     | Laptop or Desktop device type                                               |
|               | Domain          | FQDN                                                                        |
|               | Short Domain    | NetBIOS domain name                                                         |
|               | Name            | Device NetBIOS name                                                         |
|               | OS Family       | Returned device OS family value (e.g. WIN, OSX etc).                        |
|               | OS Version      | Returned device OS version value (e.g. WIN_10 OSX_MOJAVE, IOS_13 etc).      |
|               | OS architecture | Returned device OS architecture value (e.g. X64, X86).                      |
|               | Local IP        | Local IP address of device                                                  |
|               | Remote IP       | External IP address of device                                               |
|               | Country         | Country location of device (e.g. GB, US etc).                               |
|               | Country string  | Country location string of device (e.g. United Kingdom, United States etc). |

If AppsAnywhere Analytics is enabled (which is not enabled by default) a launch and session entry are added which are linked to the previously stored device and user information.

As part of the continued session authentication performed by the Cloudpaging Player while the application is virtualized and/or running, the Player will send a token renewal request to the AppsAnywhere Server over HTTPS/443. The secure token file is reissued if the renewal is successful. The renewal request contains the unique session ID that is assigned when the application is first cloudpaged.

For the delivery of the Cloudpaging virtualized application content, the Cloudpaging Player will communicate directly with the Cloudpaging Paging servers. This communication is performed over HTTP/80. Even though the requests and data are sent/received over HTTP, the content is encrypted so is not readable by anything other than the Cloudpaging Player. The default encryption level is 256bit AES, however this is configurable during the application/content packaging process.

---
version: "3.6"
language: "en"
---
# AppsAnywhere Release Notes

These release notes contain a high-level list of changes made to each version of AppsAnywhere.

## 3.6.0

**Release Date:**26th May 2026

### **Features**

#### Brightspace integration

Seamlessly launch and manage AppsAnywhere applications directly within D2L Brightspace, giving students instant access to the tools they need without leaving their learning environment.  
![Screenshot 2026-05-20 at 15.35.17.png](https://docs.appsanywhere.com/__attachments/a_528782bfdc31e7a0db80196973c1ba6bf7598cfa139ede22f0c9085ea15bcb68/Screenshot%202026-05-20%20at%2015.35.17.png?cb=86fc45416b2961ca21f26951d1fbe419)
Using AppsAnywhere within Brightspace

[Find out more in our documentation for this feature](https://docs.appsanywhere.com/appsanywhere/3.6/integrating-with-brightspace.md)

#### Cloud Delivery Reports

The Cloud Delivery Reports page has been updated to improve clarity, with descriptors about each metric.  
![reports-metrics.png](https://docs.appsanywhere.com/__attachments/a_8ecc30f8ec45c521f4acdcc445c93a1f9efed8adb6a5f7fc37044048603cafd3/reports-metrics.png?cb=393503d462c518759baa26a5f298b89d)

[Find out more in our documentation for this feature](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-reports.md)

### **Fixes**

* AA-6423 - Cloudpaging upgrade list sort by created date sorts numerically instead of by date

* AA-6428 - API App setup task times out when using a slow database a connection

* AA-6479 - Accessing the API Keys settings admin page fails with a "No settings were found for the given channel." error

* AA-6490 - AppsAnywhere portal displays outdated client warnings that cannot be actioned by the AppsAnywhere Client

* AA-6533 - Cloudpaging shortcuts and Cloudpaged launches fail due to missing context

* AA-6536 - User/group directory records are not associated with headless Cloudpaging sessions when using LDAP login with UPN

* AA-6568 - Windows executable delivery methods fail to launch with "Something unexpected happened" message in the portal

* AA-6570 - Cloudpaging application list sort by size sorts lexagraphically instead of byte value

* AA-6594 - Audit trail does not correctly show UTF-8 characters

* AA-6599 - Documentation link does not work for VDI Direct Launch Delivery Method

* AA-6600 - VDI Direct Launch is not ordered alphabetically

* AA-6601 - AppStream environments are incorrectly filtered on MySQL for Cloud Delivery

* AA-6604 - AppsAnywhere Portal app collection titles do not update when user language changed

* AA-6605 - AppsAnywhere Portal validation troubleshooter widget can overflow the page when long text used in retry validation button

* AA-6609 - Category UI shrinks when selecting applications

* AA-6610 - Cloudpaged Delivery Method fail to launch when automatic dependencies are unavailable on the current device

* AA-6612 - Documentation link on LTI Embeds page does not work

* AA-6614 - Some Cloud applications cannot be selected when adding a Cloud Delivery delivery method when there are more than 10 Cloud Delivery Apps

* AA-6618 - Hardware Profiles Admin UI shrinks when viewing linked delivery methods

* AA-6627 - Cannot unset LDAP connections on some SSO methods

* AA-6632 - Cannot switch between LDAP connections on the AppsAnywhere Admin LDAP Browser page

## Version 3.5

### 3.5.4

**Release Date:**12th March 2026

#### **Fixes**

* AA-6533 - Cloudpaging shortcuts and Cloudpaged launches fail due to missing context

### 3.5.3

**Release Date:**13th January 2026

#### **Fixes**

* AA-6475 - Migration of delivery methods to Windows 11 fails for soft deleted apps

### 3.5.2

**Release Date:**17th December 2025

#### Fixes

* AA-6469: Cloudpaged launches fail when using Cloudpaging 9.5+

### 3.5.1

**Release Date:**2nd December 2025

#### Fixes

* AA-6436: Incorrect name for Cloud Delivery Custom in the Delivery Methods screen

* AA-6441: Application edit page main content changes size when changing tabs

* AA-6442: Show delivery method count instead of license policy count by default in Cloudpaging applications admin list view

### 3.5.0

**Release Date:**2nd December 2025

#### Features

##### Cloudpaging applications management

A new screen has been added for the management of Cloudpaging applications from within AppsAnywhere.

This will allow you to view and delete applications (including their .stp file) directly from AppsAnywhere.  
![image-20251117-104552.png](https://docs.appsanywhere.com/__attachments/a_ed25ab13acb9eb3b8bdedae73aad2fa8b481351ed5d953f006d28e76bfa94ce7/image-20251117-104552.png?cb=30793a06dd465efaf39c411e19545786)

See [Managing and deleting Cloudpaging applications](https://docs.appsanywhere.com/appsanywhere/3.6/managing-and-deleting-cloudpaging-applications.md) for more details.

##### Automatic support for new OS versions

On upgrade, you will have the decision to apply all new OS versions to delivery methods that currently have the `Other` option enabled, e.g. if your delivery method has `macOS Other` enabled, we would also turn on support for any new OS versions that did not exist on your AppsAnywhere version.  
![image-20251117-105215.png](https://docs.appsanywhere.com/__attachments/a_7339b6471778db5edeaaf545b3e6da5dd8b71aecb0b2b22ed3ef009c29051922/image-20251117-105215.png?cb=aacc70e339ba5410e1f10fdeb4306086)

##### Updated Azure Virtual Desktop launch guidance for the new Windows App

Microsoft are transitioning from the Remote Desktop app to the **Windows App** for end users accessing Azure Virtual Desktop.

Users can now view updated instructions for both Remote Desktop and Windows App when launching Azure Virtual Desktop to match what they are using.  
![image-20251117-111414.png](https://docs.appsanywhere.com/__attachments/a_3a66a5c1dd8315db7096aa52f8eae33ba04f456ef968fd191626f6ef7f97ea0e/image-20251117-111414.png?cb=1cd63e73c98cd167b67cbae97ba5b72d)

##### VDI direct launch

The Frame delivery method is now the **VDI Direct Launch delivery method.**

This delivery method allows admins to provide a URL to launch a virtual desktop or application in the user's web browser.

While still supporting Frame, this now allows for one-click web-based Azure Virtual Desktop launches via [++Azure Virtual Desktop Direct Launch URLs++](https://learn.microsoft.com/en-us/windows-app/direct-launch-urls?tabs=avd).  
![image-20251117-110527.png](https://docs.appsanywhere.com/__attachments/a_3738016456c632e25679e3e6fc239aade23caa97606339c94743380fa86f2ba8/image-20251117-110527.png?cb=1f00568d7c489c3153e75a718c31ecf9)

#### Fixes

* AA-6219: First configured DNS server being unavailable causes application performance issues (incl. local DNS caching)

* AA-6279: Student portal does not meet WCAG 2.2 AA

* AA-6300: Users not told why they're unable to delete Cloudpaging Delivery Methods associated with multiple upgrades

* AA-6329: Delivery method allowed device name restriction incorrectly applied when only an excluded pattern is set

* AA-6330: Non UUID Cloud Delivery session user IDs not handled correctly

* AA-6354: Cloud Delivery custom apps cannot be deleted when associated with soft deleted DMs

* AA-6380: Warning logged when accessing analytics pages

* AA-6421: Non UUID Cloud Delivery session user IDs not handled correctly for session usage records

* AA-6422: Cloud Delivery session usage report access denied errors not handled gracefully during processing

## **Version 3.4**

## 3.4.3

**Release Date:**13th January 2026

### **Fixes**

* AA-6475 - Migration of delivery methods to Windows 11 fails for soft deleted apps

### 3.4.2

**Release Date:**17th December 2025

#### Fixes

* AA-6469: Cloudpaged launches fail when using Cloudpaging 9.5+

### 3.4.1

**Release Date:**24th October 2025

#### Fixes

* AA-6294 - AppsAnywhere Cloud Delivery EULA updates

* AA-6328 - Cloud Delivery session list dates not shown in the expected timezone

* AA-6399 - Acceptance of EULAs not automatically reset when content changes

### 3.4.0

**Release Date:**September 2025

#### Features

##### Support for Windows 11 on ARM devices

Windows 11 on ARM (ARM64) devices can now be targeted via Operating system compatibility via the **Windows 11 → ARM64 (64-Bit)**option. All delivery methods currently supporting Windows 11 now have the Windows 11 ARM OS compatibility option.  
![image-20250730-160923.png](https://docs.appsanywhere.com/__attachments/a_da1e32e91b261e5d8542cd1d38600c3b83ba25cfdec2b475df33d8c7516e0514/image-20250730-160923.png?cb=7335a299cfcd2a065b35f22617a990fd)  
When upgrading from an older version, delivery methods which have the Windows 11 x64 option enabled will automatically have the ARM64 option enabled.

This ensures a consistent experience for users already using AppsAnywhere on a Windows 11 ARM device, where their devices were previously recognised as x64.

We recommend administrators review their Windows 11-enabled delivery methods via the [Delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/adding-delivery-methods.md) screen and update these settings for Windows 11 ARM64.

##### Cloud Delivery Session Widget

Portal now has a Cloud Delivery session widget. This shows users their sessions and allows them to either end the session, or reconnect to a session in a tab they may have accidentally closed.  
![6c510d8b-166a-452b-b042-0e2b448414c0.png](https://docs.appsanywhere.com/__attachments/a_d6d001dcc0f892dd517a4d338489ef3456d1228ccec4e72548dfcb96ca8d632d/6c510d8b-166a-452b-b042-0e2b448414c0.png?cb=a166fda09f531d64e701210a2acafa1c)

##### Cloud Delivery session tracking in admin

A brand new session tracking table is available in admin

This view shows a list of Cloud Delivery sessions with the environment they are running in, user information, status of the session and the ability to Expire the session.  
![image-20250801-081950.png](https://docs.appsanywhere.com/__attachments/a_5d82f169ac7f9051b214361aa72b72fab9e4f77402a46447b757a72cfc05e79c/image-20250801-081950.png?cb=56ad0ddda64513b5facc922402bd0bc0)

[Find out more in our documentation for this feature](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-sessions.md)

##### Cloud Delivery concurrency and usage reports

A brand new Reports page is available in admin.

This view shows metrics for AppsAnywhere Cloud Delivery sessions for the max concurrency, number of currency limits hit, average duration of a session, total session duration and the number of unique users that have started a session.  
![image-20250730-155320.png](https://docs.appsanywhere.com/__attachments/a_b0867e3983bc08f1cb075aa41a73e69a4998751eb02f6f2be2af0aadc0aa65c5/image-20250730-155320.png?cb=9c222f64ebf0ece75f61c00f064c08ce)

[Find out more in our documentation for this feature](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-reports.md)

##### Update of AppsAnywhere Cloud Delivery related delivery methods

Cloud Delivery Preview has been renamed to **AppsAnywhere Cloud Delivery Custom Apps** - see [the documentation](https://docs.appsanywhere.com/appsanywhere/3.5/appsanywhere-cloud-delivery-custom-delivery-method.md) for more information.

There are new logos for the AppsAnywhere Cloud Delivery methods now.

##### Support for Android 16

Support for targeting the latest operating system release for Android 16.

##### Support for Cloudpaging 9.6 and AppsAnywhere Windows Client 2.5

Cloudpaging Player 9.6 is now supported, bringing support for running x64 Cloudpaging packages on Windows on ARM (arm64) devices.  
Due to Cloudpaging Player changes to install paths, registry keys and product code, Cloudpaging Player 9.6 and above can only be installed with an AppsAnywhere Windows Client of 2.5.0 or above. Mechanisms are in place to prevent the installation of the wrong version via AppsAnywhere, but administrators must enforce the correct installation order when deploying via MDM to avoid broken installations of the player.

##### Other Improvements

* Enabling ODBC connection pooling by default

* Visual Indicator on launch buttons in portal that app will be launched in Cloud Delivery

* Improved LDAP auth logging

* Improved wording in message when launching a Cloud Delivery app, causing the first one to stop working

* Title and IconUrl are now provided in application for the initial launch message

#### Deprecations \& Removals

See [Deprecation Notices](https://docs.appsanywhere.com/appsanywhere/3.1/deprecation-notices) for more details on upcoming deprecations.

There are no deprecations or removals in this release.

#### Fixes

* AA-5799 - No favicon displayed in browser when using admin

* AA-5971 - Fix obfuscated exceptions that occur during Analytics usage import due to type-hint related fatal error

* AA-6036 - AppStream environment client secret cannot be updated

* AA-6096 - AAL is not applied during a Cloudpaging application upgrade

* AA-6102 - Error when deleting AppStream environment

* AA-6128 - App Library delivery method does not warn a license is required for licensed apps

* AA-6147 - Cloudpaging App Session instability

* AA-6168 - Application layout HTML content may be included in Secure Download delivery method file downloaded content

* AA-6180 - Delivery methods are not displayed correctly for apps with an Azure Virtual Desktop delivery method

* AA-6181 - Kerberos logins fail when LDAP connection does not have a username format set

* AA-6253- Windows 11 devices detected as Windows 10 by AppsAnywhere versions prior to 3.3 are not detected as Windows 11

*** ** * ** ***

## **Version 3.3**

### 3.3.5

**Release Date:**13th January 2026

#### **Fixes**

* AA-6475 - Migration of delivery methods to Windows 11 fails for soft deleted apps

### 3.3.4

**Release Date:**12th September 2025

#### **Fixes**

* AA-6291 - Delivery Method unavailable reason incorrectly displayed as OS compatibility issue whenever a delivery is unavailable on Windows 11

### 3.3.3

**Release Date:**1st August 2025

#### **Fixes**

* AA-6253 / AA-6246 - Windows 11 devices detected as Windows 10 by AppsAnywhere versions prior to 3.3 are not detected as Windows 11

### 3.3.2

**Release Date:**24th June 2025

#### **Fixes**

* AA-6168 - Application layout HTML content may be included in Secure Download delivery method file download content

* AA-6180 - Delivery methods are not displayed correctly for apps with an Azure Virtual Desktop delivery method

* AA-6181 - Kerberos logins fail when LDAP connection does not have a username format set

### **3.3.1**

**Release Date:**4th April 2025

#### **Features**

##### Support for Cloud Delivery

Cloud Delivery is our answer to your VDI needs. You can now launch any Windows app on a non-Windows device and provide apps on under-powered Windows devices, without the need for an institution's IT team to set-up and manage their own VDI (virtual desktop infrastructure).

Apps you request will be packaged and hosted centrally, to run on demand in our Cloud environment, managed by the AppsAnywhere team, and presented for launch through the AppsAnywhere platform.

* Launch Windows apps on any device​

* Apps are packaged and hosted centrally

* Only pay for what you use​

* Smart Prioritization keeps usage costs down​

* Connect with popular cloud storage solutions​

* Apps and infrastructure managed for you

[Find out more about Cloud Delivery](https://www.appsanywhere.com/product/cloud-delivery)

##### Delivery methods view for admins

A brand new Delivery Methods view is available in admin.

This view displays all delivery methods in your AppsAnywhere system and has powerful search and filtering options to help you view and understand how you are delivering applications across AppsAnywhere.  
![A screenshot of the Delivery Methods view, showing an example of the data and filtering options.](https://docs.appsanywhere.com/__attachments/a_def93881542e9036a88f5783e42d4404c3162e9f22acdc17e5e8d4968b574d3c/image-20250320-145617.png?cb=cbd21bea94ddd3ca2c5aafcb33c7b8fb)

[Find out more in our documentation for this feature](https://docs.appsanywhere.com/appsanywhere/3.3/adding-delivery-methods).

##### Support for targeting Windows 11

Windows 11 devices can now be targeted via Operating system compatibility. In previous versions Windows 10 and Windows 11 were grouped together as "Windows 10/11".  

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ![image-20250320-145038.png](https://docs.appsanywhere.com/__attachments/a_45bc76109aa11d4be6366e62eae21443d5e8450d782c0adc9de56fb14eafc0b9/image-20250320-145038.png?cb=ab3812af49889f357f26bb6f7d70b0c3) | ![image-20250320-145110.png](https://docs.appsanywhere.com/__attachments/a_676571d88d600b4cf99cbabba36ee5dd4d2207970c805e114b53913a931898ce/image-20250320-145110.png?cb=e1dfe1aa07f95f2c80f9fdf8171e6609) |

When upgrading to AppsAnywhere 3.3, any delivery methods that are configured to allow "Windows 10/11" will be automatically updated to use the equivalent Windows 10 and Windows 11 options. Once upgraded you can update the Operating system compatibility to restrict your delivery methods to either Windows 10 or Windows 11 if required. Architecture settings are retained, for example:

* Windows 10/11 (64-bit) → Windows 10 (64-bit) + Windows 11 (64-bit)

* Windows 10/11 (32-bit) → Windows 10 (32-bit) + Windows 11 (32-bit)

**Note on Windows 11 32-bit option**

A 32-bit option is available for Windows 11 to assist with the transition to separate Windows 10 and Windows 11 options for 32-bit only applications.

However, since there is no 32-bit release of Windows 11 this option will not match any devices.

##### Support for SAML login for Entra ID users with more than 150 groups

AppsAnywhere now supports user provisioning and login via SAML with Entra ID for users that are members of more than 150 groups.

To enable support for this feature, you must configure an [Entra ID connection](https://docs.appsanywhere.com/appsanywhere/3.6/entra-id.md) and link this with your [Entra ID SAML SSO method](https://docs.appsanywhere.com/appsanywhere/3.6/saml-azure.md).

##### Quick links - Add custom links to the login screen and student portal

Quick links allow you to add a custom link to the login screen and student portal interface. This is useful if you need to display a link to a resource, such as your accessibility statement, to all students while they are using AppsAnywhere and before they log in.  
![A screenshot showing the AppsAnywhere login screen, highlighting a quick link to an accessibility statement.](https://docs.appsanywhere.com/__attachments/a_04205b9ebdc187b4cd277767eae94e188945555d14949577ca4c4c233f5006dd/image-20250320-170917.png?cb=d889efa8426e46440d502f06f5ea21a3)

Quick links are configurable via [General Settings \| Quick Links](https://docs.appsanywhere.com/appsanywhere/3.2/general-settings#id-(3.2)GeneralSettings-Quicklinks).

##### Support for the latest Android, iOS and macOS releases

Support for targeting the latest operating system releases:

* Android 15

* iOS 18

* macOS 15 Sequoia

##### Improved performance with HTTP/2 (and Brotli compression)

![The HTTP2 logo](https://docs.appsanywhere.com/__attachments/a_b91bd737a476347b7cb840c0d373b2784b20fde828bb0963562df90a1aa69051/image-20250320-161011.png?cb=06b90943055c719292aea3681fcab235)

With AppsAnywhere 3.3, both [HTTP/2](https://http2.github.io/) and [Brotli](https://brotli.org/) compression are enabled by default, improving the performance of the student portal and admin interface.

The majority of modern load balancers support HTTP/2, but some may require configuration changes. HTTP/1.1 will be used as a fallback if your environment does not support HTTP/2.

##### Support for MySQL 8.4 LTS

We have added support for MySQL 8.4 - the latest LTS release of the MySQL database engine. This is the successor to MySQL 8.0 LTS, which is end-of-life 30th April 2026.

You will need to upgrade to AppsAnywhere 3.3 **before**upgrading to MySQL 8.4.

##### Other improvements

* HTTPS is now used when searching for application icons from our icon database within the admin interface.

* We now display a created date for Cloudpaging upgrades in the admin interface.

* The wording of the session connectivity message has been updated for improved clarity.

* The Student Hub link has been renamed to Knowledge Hub.

#### **Deprecations \& Removals**

See [Deprecation Notices](https://docs.appsanywhere.com/appsanywhere/3.1/deprecation-notices) for more details on upcoming deprecations.

There are no deprecations or removals in this release.

#### **Fixes**

* AA-3488 - LDAP records cannot not be imported if they contain special characters ie. quotes and apostrophes

* AA-3825 - The allowed length of Portal Banner links is too restrictive

* AA-4031 - Unable to assign license to a delivery method when accessing admin via HTTP/2

* AA-4428 - Old client download files are never cleaned up

* AA-4605 - It is possible to see a link to Analytics in the Portal when Analytics is not enabled

* AA-4641 - Linked licenses are not removed when a delivery method is deleted

* AA-5233 - 'None' app count option in portal preferences menu does not translate dynamically when language is changed

* AA-5321 - Launching multiple applications via VMware Horizon shuts down existing client connection if the user is logged in via LDAP UPN

* AA-5363 - Clearing custom content caches can error when expected cache directories do not exist

* AA-5384 - AppStream shows in the Desktop delivery methods list for Global Admin users

* AA-5396 - Launching multiple applications via VMware Horizon shuts down existing client connection when using SAML SSO

* AA-5410 - Disabling App Lists feature causes Cloudpaging settings page load to fail

* AA-5517 - Application and provision expiry emails not sent

* AA-5633 - SAML private keys, SSO icons, branding and banners not syncing on new servers

* AA-5648 - "Enter a value for the license data" error when creating new app license

* AA-5658 - Applications in App List not showing correctly when interchanging between more than one App List

* AA-5667 - Kerberos SSO fails when the LDAP connection Username format is set to User Principle Name (UPN)

* AA-5692 - Content-Length headers in Analytics responses may break some Analytics views (e.g. Explores)

* AA-5818 - Application supports X-Original-URL / X-Rewrite-URL header override

* AA-5848 - Cloudpaging licence policy expiration date is not updated when setting application expiry date/action

* AA-5856 - List of delivery methods allowed with automatic dependencies is not filtered and 'undefined' is displayed on delivery method selection panel

* AA-5869 - Patches applied to a previous version are still listed as installed after an in-place upgrade

* AA-5878 - All Cloudpaging sessions are being created with an expiration date of 2025-01-01

* AA-5883 - File downloads do not use configured appliance proxy settings

* AA-5964 - No user feedback when updating license templates

* AA-5966 - Orphaned Cloudpaging app sessions cannot be cleaned up

* AA-6025 - Deleting an app causes PHP memory issues

* AA-6031 - Authentication URL and paths are not pre-populated when adding a OAuth2 Entra ID SSO method

* AA-6049 - Incorrect French Canadian translation for launch success

*** ** * ** ***

## **Version 3.2.0**

**Release Date:**March 2024

### **Features**

#### In-place upgrades

Want to upgrade to the latest version of AppsAnywhere more regularly but find the current process too time-consuming? Well, you'll be pleased to know that one of the key features we've added to AppsAnywhere in this release is a more efficient way of upgrading to the latest version through an in-place upgrade process.

A faster process with less downtime during the upgrade period and fewer requirements during the upgrade window. It is more automated and simpler to perform for everyone involved -- and compatible for anyone upgrading from 3.1. Now you can benefit from the latest features at your convenience.

#### Portal accessibility enhancements

AppsAnywhere has been externally audited and certified to WCAG 2.1 AA level. Making our portal as accessible as possible is important to us, and we have been able to go even further in 3.2 thanks to the collaboration and feedback of our customers. If you'd like to know more about our approach to accessibility you can read [more in our recent blog](https://www.appsanywhere.com/resource-centre/product/enhancing-accessibility-with-appsanywhere) post.

#### In-App provisioning

Provisioning an application is now much simpler. If you're in the process of configuring a new app or editing an existing app, you can now select a group(s) of users directly on the app administration page. You don't have to go to the provisioning page as a separate action; which should save lots of time when determining who can have access to an app.  
![A screenshot showing the new In-app provisioning interface in AppsAnywhere 3.2](https://docs.appsanywhere.com/__attachments/a_8655966c5b7c978031d18036ce720e96f4816c907994cacd1019e2a9b9e52123/image-20240229-145322.png?cb=054d15624eef7feaf5029b6a14371e3e)
Add an app to a provision directly from the app itself!

#### Improved workflow for adding apps to app lists

We've added two new ways to add apps to an app list:

* Browse and select apps from a grid-like view

* You can now add apps to a list while creating it

![A screenshot of the new app lists user interface in AppsAnywhere 3.2](https://docs.appsanywhere.com/__attachments/a_8e27023abbadb318220ca4ff86b1db6268666634a5314c30b0e01503ce77719a/image-20240305-165002.png?cb=ce6aaf340ad4df92350dd54101a5eb11)
An improved user experience for creating app lists.

These options, while retaining the option to search for an app to include in an app list, make it much easier to build your lists for yourself or to share with others.

#### Connection tests and live status info on the admin dashboard

AppsAnywhere can connect to a lot of external services, and we want to give admin users an easy way to know the latest delivery method integrations, LDAP and AppsAnywhere servers. We've added a new panel in the admin dashboard with red/green light indicators for each of these services. One of the key benefits here is that in the case of reviewing connections and integrations, they're not always being made use of straight away, so it's important to have an easy way to have the status flagged.  
![A screenshot showing the new status dashboard in AppsAnywhere 3.2](https://docs.appsanywhere.com/__attachments/a_bdbf8907e202393d98471e2141f4758fcf51a3b17fcda0c999bffa738fc8d2c5/image-20240229-145614.png?cb=2d7b0489d5b95fd6977c2b27c459b546)
The new status dashboard shows the status of key systems and integration connections.

The status dashboard shows the current AppsAnywhere server you are logged into and will show an alert if an AppsAnywhere server is down or in maintenance mode.

The status dashboard and the connection tests features support the following integrations:

* LDAP connections (if configured)

* AppStream connections (if configured)

* Cloudpaging connections (if configured)

* Jamf Pro connections (if configured)

To support the TLS certificate checks which are a part of this feature, there is a new network connectivity requirement for all AppsAnywhere servers to be able to access the configured Base URL (load balanced address) via HTTPS (TCP/443).

#### Embeddable portal for custom websites

It is already possible to embed AppsAnywhere into your Blackboard or Canvas user experience. Now we've made it possible to do the same from any website that you design and update; by embedding our portal and integrating it using the same LTI (learning tools interoperability) standard.

#### Jamf Pro connections now use Bearer Token authentication

AppsAnywhere will now use Bearer Token authentication when communicating with Jamf Pro version 10.35.0 and above.

See [Connecting to Jamf Pro](https://docs.appsanywhere.com/appsanywhere/3.6/connecting-to-jamf-pro.md) in the user manual.

#### Proxy configuration has been simplified

Outbound HTTP proxy servers configuration is now configured entirely via the Application Configuration Console (ACC). The **Settings -\> General -\> Web Proxy Address** setting has been removed and is no longer required.

See [Appliance Configuration Console (ACC) -\> Configure Proxy Settings](https://docs.appsanywhere.com/appsanywhere/configure-proxy-settings) in the user manual.

### **Deprecations**

See [Deprecation Notices](https://docs.appsanywhere.com/appsanywhere/3.1/deprecation-notices) for more details on upcoming deprecations.

#### Apache (Cosign) and Apache (Custom SSO) methods have been removed

Affected SSO methods will be removed during the upgrade to \>= 3.2.

Customers are encouraged to migrate to modern alternatives such as SAML 2.0.

#### Shortcut management is no longer enabled by default for new installations

It will remain enabled by default for existing installations.

#### Token and External Service SSO methods are deprecated

The Token and External Service SSO methods are deprecated and will be removed in AppsAnywhere 3.3.

Customers are encouraged to migrate to modern alternatives such as SAML 2.0.

### **Compatibility**

#### Supported Microsoft SQL Server versions

SQL Server 2022 is now supported.

The minimum supported SQL Server version is now SQL Server 2017.

SQL Server 2014 is no longer supported as its end-of-life date of [9th July 2024 is approaching](https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2014).

#### Supported MySQL versions

The minimum supported MySQL version is now 8.0. Note: Only MySQL LTS releases (e.g. 8.0) are supported. Innovation releases (e.g. 8.1, 8.2, 8.3) are not supported. See [Oracle Blog - Introducing MySQL Innovation and Long-Term Support (LTS) versions](https://blogs.oracle.com/mysql/post/introducing-mysql-innovation-and-longterm-support-lts-versions).

MySQL 5.7 is no longer supported and was end-of-life on 31st October 2023.

#### AppsAnywhere client

* AppsAnywhere Windows client 2.0.1 and above.

* AppsAnywhere macOS client 2.0.1 and above.

### **Fixes**

* AA-3254 - Secure Downloads Delivery Method failing with large files

* AA-3720 - VMware Horizon Desktop Delivery Method settings not persisting

* AA-4645 - Legacy list views (Provisions, Categories) and Resource Edit fail to load if an item name contains double quotes

* AA-4737 - Links to the Analytics application dashboard result in "Invalid Filters" errors

* AA-4874 - Error when trying to remove a provision or application with a Cloudpaging delivery method that has a large number of app sessions awaiting expiry

* AA-4947 - 401 Unauthorized error retrieving list of resources from Jamf Pro

* AA-5035 - Error Processing Task for Automated Tasks during setup

* AA-5061 - Automated setup task loops on some exceptions

* AA-5065 - All Looker dashboards are listed in Analytics 'Shared dashboards' and 'My dashboards' menus

* AA-5078 - Proxy settings are not used for all outbound requests, preventing install/upgrade when a proxy is required for outbound traffic

* AA-5097 - Emails are not sent from the user help contact form

* AA-5117 - WCAG 2.4.7 (AA) violation: Filter menu covers launch button

* AA-5127 - Active buttons in user preferences menu do not have sufficient contrast (WCAG: 1.4.3)

* AA-5128 - Help form textarea error icon colour is incorrect in dark mode

* AA-5129 - Help form problem type dropdown has a preselected option

* AA-5130 - Transparent error, warning and success messages (WCAG: 1.4.3)

* AA-5131 - Language tag not coded correctly (WCAG: 3.1.1 and/or 3.1.2)

* AA-5154 - Parallels Cloudpaged Native launches fail when no LDAP connection is configured

* AA-5158 - Filters are disabled in Analytics dashboards

* AA-5172 - Ending AppStream embed session displays an error to the user

* AA-5183 - Some applications cannot be selected when adding an AppStream Native delivery method when the associated image contains more than 10 applications

* AA-5197 - LTI embed authentication improvement

* AA-5198 - Some valid characters cannot be used in AppStream app names

* AA-5206 - Cannot delete a new Cloudpaging delivery method with upgraded app sessions

* AA-5210 - Cloudpaging app sessions not removed when there are a large number awaiting expiry

* AA-5212 - Analytics information fails to show on Application / Desktop edit screens

* AA-5217 - Cannot delete an old Cloudpaging delivery method with upgraded app sessions

* AA-5220 - AppStream embeds do not work for students

* AA-5222 - Log files are not rotated due to missing logrotate utility

* AA-5225 - Analytics usage concurrency data stops displaying after a certain date

* AA-5228 - Duplicate Cloudpaging usage analytics import issue

* AA-5312 - User Help Settings: When Popup Help Content is selected, "Help Text" is erroneously required

* AA-5319 - Options cannot be modified when creating/updating a VMware Horizon delivery method

* AA-5329 - Broken links on the Admin Portal

* AA-5330 - Analytics Explore routes are accessible to an Analytics User

* AA-5331 - The Admin logo links to the incorrect page for an Analytics-only user (without Admin permissions)

* AA-5333 - Cloudpaging applications with dependencies fail to launch

* AA-5336 - Embeds - "Edit this list" goes to the wrong URL

* AA-5340 - Cloudpaging settings cannot be set without the exam addon

* AA-5343 - logrotate does not rotate logs in the /var/www/appsanywhere/api/data/logs directory

* AA-5346 - "SQLSTATE\[42000\]: Syntax error or access violation: 1064" encountered when attempting to create a database user in MySQL 8

* AA-5350 - MySQL 8 schema migration failure

*** ** * ** ***

## **Version 3.1.0**

**Release Date:**June 2023

### Features

#### Pre-launch Dialogs

* This feature gives administrators the ability to configure some custom text for any application which will be presented to the user in a dialog before an application is launched. This feature has many use cases that involve the need to impart important information to the user such as an End User Licence agreement, a licence key for a software download, or instructions about the application itself. The administrator has control over whether it is possible for the user to supress the dialog in future launches.

* The Pre-launch Dialog admin screen comes with a rich-text editor so that more formatting can be included in the dialog including links to alternative apps (for example in the scenario that there are 2 different version of the same app with different licencing rules you could provide a warning with a link to the unique URL of the alternative app). This rich-text editor has also been applied as an enhancement to the App Description edit screen.

#### Updated virtual appliance operating system

* Ahead of the upcoming End of Life of CentOS 7 in June 2024, the AppsAnywhere virtual appliance is now based on Rocky Linux 8.

#### User Portal Preferences

* Portal users now have the ability to customise their experience. This will allow them to not only select their theme (Dark/Light/System), but also how many apps they want displayed on their home-screen. Moving from a default of two rows of 3 apps, to rows of 4 in this version, the user can now set in the browser how many apps they would like to display from 0 (if they prefer search) up to a total of 20 on the home-screen.

* For new students, a default "Apps" collection will be displayed ensuring that an A-Z of available apps will be viewable (up to a maximum of 20) on first log-in. This ensures that there will be some apps visible to the users to launch from day one until they start building their smart collections through usage.

* A user's session will now memorise which collection they have selected on log-out. When the user logs back in they will land on the same collection; meaning that if 'Favorites' is their preferred collection for example, they will land back where they left off.

![User Preferences.png](https://docs.appsanywhere.com/__attachments/a_08f458d68575b5a95ddd45e2b27470085649cd4475722b8d440d4493dd023985/User%20Preferences.png?cb=c7b721e085d5cc06365372574082ff7a)

#### Improved Accessibility

* We have made over 70 changes to the user portal to address a variety of accessibility needs making AppsAnywhere 3.1 the most accessible version of the product yet.

#### Dynamic content in the Admin Dashboard

* The Did You Know? and What's New sections of the admin dashboard now have dynamic content allowing for AppsAnywhere to update them outside of a product upgrade. This mean that admins can be notified of important information such as a new release or links to helpful documentation at a time that is most relevant.

#### User Portal Preferences

* Portal users now have the ability to customise their experience. This will allow them to not only select their theme (Dark/Light/System), but also how many apps they want displayed on their home-screen. Moving from a default of two rows of 3 apps, to rows of 4 in this version, the user can now set in the browser how many apps they would like to display from 0 (if they prefer search) up to a total of 20 on the home-screen.

* A user's session will now memorise which collection they have selected. When the user logs back in they will land on the same collection; meaning that if 'Favorites' is their preferred collection for example, they will land back where they left off.

![User Preferences.png](https://docs.appsanywhere.com/__attachments/a_08f458d68575b5a95ddd45e2b27470085649cd4475722b8d440d4493dd023985/User%20Preferences.png?cb=c7b721e085d5cc06365372574082ff7a)

#### Apps view

* A new "Apps" collection can be enabled as the default for new users, ensuring that an A-Z of all available apps will be viewable (up to a maximum of 20) on first log-in. This makes sure that that there will be some apps visible to the users to launch from day one until they start building their smart collections through usage.

* **Note:** To enable this as the default view for new users, you must enable the option under *Admin -\> Setting -\> General -\> Behaviour → Default to "Apps" on the Portal home screen.*By default this option is not enabled and the first app collection you have configured will be the default for new users.

![image-20230614-132208.png](https://docs.appsanywhere.com/__attachments/a_55fb17f8212ca8dceef8cbfb8daeddc29b416225e0b9d858a52253c15665e57c/image-20230614-132208.png?cb=df2b026b176329f8f6c94b8af61f031c)

#### Improved Accessibility

* We have made over 70 changes to the user portal to address a variety of accessibility needs making AppsAnywhere 3.1 the most accessible version of the product yet.

#### Dynamic content in the Admin Dashboard

* The Did You Know? and What's New sections of the admin dashboard now have dynamic content allowing for AppsAnywhere to update them outside of a product upgrade. This mean that admins can be notified of important information such as a new release or links to helpful documentation at a time that is most relevant.

#### Simplified app collection admin

* We have simplified the management of app collections by combining the search and grid view options into a single panel.

* **Note:** If you previously had the same collection configured with different names on the search and grid views, this is no longer possible. For smart collections (Favourites, New and Recent), the collection name is no longer configurable. These changes will be enforced and take effect the next time you update app collection settings via *Admin → Settings → App collections.*

![image-20230614-132957.png](https://docs.appsanywhere.com/__attachments/a_2531c79373d24d67dd477df4e557b282127cbe1950e5b334c09f3319dee058e9/image-20230614-132957.png?cb=07c223570108cb3492389d2dcae02acd)

#### Bundled translations

* We now provide the following languages out of the box with highlighted ones new to 3.1:

  * **Arabic (Saudi Arabia)**

  * **Welsh**

  * English (UK)

  * English (US)

  * Danish

  * Catalan

  * Spanish

  * German

  * French Canadian

  * Norwegian

### Fixes

* AA-4742 - Analytics device "Last Seen Date" is never updated

* AA-4875 - Cloudpaging app sessions not being automatically expired

* AA-4884 - When "Loading more" applications on the grid view, switching to the search view then back only shows the "new" applications

* AA-4937 - Azure AD OAuth 2.0 SSO method using Azure AD Graph API which is being deprecated 30 June 2023

* AA-3656 - Difficulty interacting with smaller embedded analytics dashboards

* AA-4674 - Summarized Analytics data for Cloudpaged delivery methods is not created

* AA-4712 - Cloudpaging dependencies of Cloudpaged delivery methods show as unavailable when dependency type is set to 'Automatic' (but can still be launched)

* AA-4962 - Broken API App database configuration when setting up both the database and the user through the wizard

* AA-4172 - There is a small window (1536-1582 pixels) where horizontal scroll bars appear in grid view

* AA-4427 - Unable to use hardware profiles to limit access based on single value (Memory or Dedicated GPU)

* AA-4650 - Security fix relating to setting admin user roles

* AA-4714 - App collection that is configured to appear only on the search view may not display correctly on the grid view when the 'View all' button is pressed

* AA-4916 - Users may accidentally close the Azure Virtual Desktop guide dialog when switching windows

* AA-4954 - Amazon AppStream Embedded Streaming URL should be the default option when a AppStream custom domain is configured

*** ** * ** ***

## **Version 3.0.0**

**Release Date:**December 2022

### Features

#### User Experience

* **Additional Smart App Collections** to make it easier for students to find their apps:

  * New -- Applications and desktops that have been recently added to the system within the last month

  * Recent -- The last 6 applications and desktops that a student has launched displayed on the search screen, and up to the last 50 on the grid view

  * Desktops -- Desktops that are available to the user

* **A less obtrusive post-launch dialog** - launch dialogs are no longer pop-ups and presented more subtly within the portal

* **Edit this app** - The ability for admins to jump straight to an application edit screen from the portal more info screen

* **Portal dark mode** -- allowing users to manually select or use system preferences to shift between light and dark visual theme

#### Delivery Methods

* **New delivery methods:**

  * Amazon AppStream 2.0 -- providing the option to launch via a streaming URL or the embed streaming method via an AppStream integration

  * Nutanix Frame -- Launch a session via a Frame URL

* **Enhancements:**

  * WVD has been updated to Azure Virtual Desktop and given more control to users with the ability to cancel a launch. The AVD dialog can now differentiate between the native and web client when providing instructions and guidance

  * Guidance added on the ability to configure an SSO experience between AppsAnywhere and VMware Horizon

#### Higher Ed

* **Blackboard Learn integration:**

  * The ability to configure App Lists to associate them to a course

  * The ability to launch applications directly in Blackboard Learn

* **SAML attribute mappings -**removes the necessity for an LDAP connection by providing the ability for AppsAnywhere to take the required user data from the SAML login and then user roles

  * Provisioning and delivery method restrictions can be set up using the SAML attributes

* **Improved Canvas integration -**The Canvas integration has been enhanced in line with the new Blackboard Learn integration. Canvas integration users should expect to see an improved visual presentation

#### Analytics and Data

* **AppStream and Frame launch data** available in Analytics

* **Analytics data in the admin dashboard:**

  * Providing Application usage data (launches in last 30 days, rolling average, 1 year, all time) in the application list and edit screens and ability to sort by this information

  * Availability of admin dashboard data to all admins (logins this month, active users, devices seen this month)

#### Updated Client Setup

* **Includes the** **new v1.1.0 Client Setup application**

* For further details, please refer to the Client Setup release notes:

  * <https://software2.atlassian.net/wiki/spaces/PDCL/pages/2878144513>

  * <https://software2.atlassian.net/wiki/spaces/PDCL/pages/2877980683>

### Fixes

* AA-4216 - The number of row value expressions in the INSERT statement exceeds the maximum allowed number of 1000 row values

* AA-4303 - Incorrect MySQL syntax error when upgrading

* AA-4326 - Incorrect MySQL syntax error when migrating favourites as part of upgrade

* AA-4358 -- Parallels RAS Client launches fail when SSO that is not SAML is configured in AppsAnywhere

* AA-4277 - When using Cloudpaging upgrades, application status checks may use different logic than from before 2.11

* AA-2233 - Automatic dependencies with Cloudpaged delivery methods do not work in conjunction with device-based restrictions

* AA-4046 - When creating an app list whose name only contains special characters, its slug is randomly generated, which means it isn't consistent

* AA-4276 - Directory record lookup is always performed on Cloudpaging renew, regardless of provision check frequency

* AA-4307 - Database schema upgrade fails on SQL Server \< 2016

* AA-4393 - Machine Provisions no longer working after upgrade

* AA-4418 - On Site Client Suppression not working

* AA-4421 - Automatic dependencies do not work via Parallels RAS

* AA-4512 - Intermittent validation failures due to invalid or expired timestamp

* AA-4574 - Incorrectly migrated SAML federated domain data

* AA-4654 - Windows 32-bit (x86) not detected correctly after client validation

* AA-4184 - When "On Site" suppression option not enabled post upgrade

* AA-4423 - When the highest priority Cloudpaging delivery method is made unavailable as a result of dependency checks, the dependent app can erroneously be made unavailable as well

* AA-4191 - If a user has an analytics role but not an admin role and clicks the AppsAnywhere logo in Analytics then they are navigated to a 403 Forbidden page

* AA-4194 - AVD Launch dialog does not differentiate between the native client and web client when providing instructions/guidance.

* AA-4197 - Icons for soft-deleted applications are unable to be migrated

* AA-4430 - Forced MFA in Office365 breaks OAuth 2 single sign-on methods

* AA-2645 - Admins are unable to change default attribute for a user's unique ID for an Open LDAP connection

* AA-4288 - Automatic (no popup) dependencies are not launched automatically

* AA-4620 - The create list button is duplicated on the search screen when the user has no app lists

* AA-4675 - Intermittent error when running Analytics cron, halting concurrency calculations

*** ** * ** ***

## **Version 2.12.0**

**Release Date:**June 2022

### Features

* **New portal user interface**

  * An all new design, rebuilt from the ground up for performance and flexibility

  * API driven; data - such as search results - are only loaded as required

  * A new streamlined home screen featuring Search and App Collections

  * An improved search for finding apps quickly, and launching them directly

  * Less intrusive validation with built-in troubleshooter

  * New app launch experience with help

  * Unavailable apps are no longer hidden

  * Clearer descriptions of why apps are unavailable

  * App Collections ([documentation](https://docs.appsanywhere.com/appsanywhere/3.6/managing-app-collections.md))

    * Intelligent, customisable groups of applications

    * Can be displayed on the new home view and grid view (configurable)

    * Supported collections: Favorites, Categories

  * App Lists are now more discoverable, appearing on the home and grid views

  * New user menu options to validate and to download the client on-demand.

* **Refreshed admin user interface design**

  * Refreshed design with rebuilt foundations

  * Menus have been consolidated for more consistent navigation

  * Built-in search for admin pages

* **App Hardware Profiles (** [**documentation**](https://docs.appsanywhere.com/appsanywhere/3.6/hardware-profiles.md)**)**

  * Control which delivery methods are available based on the hardware specification of a users' device

  * Supported metrics: Minimum memory (RAM), Discrete graphics card present?

  * Requires AppsAnywhere client 1.6.0 or above (Windows, macOS)

* **Improved Client Setup**

  * A new independent executable 'setup' app for Windows and macOS

  * Intelligently downloads, installs/upgrades the correct client version automatically

    * This requires an institution ID within square brackets within the app filename, otherwise it will fall back to installing the latest client version

  * Only used for installs via the portal (e.g. BYOD)

  * Managed deployments will continue to use the existing .msi and .pkg installers

* **Improved Detection of Locally Installed Executables (** [**documentation**](https://docs.appsanywhere.com/appsanywhere/3.6/locally-installed-delivery-method.md)**)**

  * New option to specify a list of absolute directory paths to search for an executable (Windows only)

  * The Locally Installed delivery method user interface in admin has been overhauled to make the available options easier to understand

* **Improved Parallels RAS Authentication**

  * SAML authentication is now passed through to the Parallels client, removing the need for users to login again when authenticated via this SSO method

  * Requirements:

    * Parallels Remote Application Server \>= 18.2

    * Parallels Client for Windows \>= 18.2

    * Parallels Client for macOS \>= 18.1.0.1

    * The same SAML SSO source configured in AppsAnywhere and Parallels RAS Server

* **Restrict manual logins (** [**documentation**](https://docs.appsanywhere.com/appsanywhere/3.6/general-settings.md)**)**

  * Control over the manual username/password login option **when SSO is enabled**

  * Three options: Show (default), Hide, Hide and disable

* **Bundled translations (** [**documentation**](https://docs.appsanywhere.com/appsanywhere/3.6/language-settings.md)**)**

  * We now provide the following languages out of the box:

    * English (UK)

    * English (US)

    * Danish

    * Catalan

    * Spanish

    * German

    * French Canadian

    * Norwegian

* **Support for upcoming operating system releases**

  * macOS 13 Ventura

  * iOS 16

  * Android 13

### Fixes

* `AA-3682` - AppsAnywhere shortcut launches with dependencies do not function in Parallels headless sessions

* `AA-1276` - Cannot Select "Prefetch All" for online/floating Cloudpaging delivery methods

* `AA-1886` - Cloudpaging application upgrade launch error on new application when launch command changes

* `AA-3563` - Error when launching Parallels: Cloudpaged delivery methods on Linux/iOS/Android devices in 2.11

* `AA-3688` - Unable to launch applications with VMware horizon client 8.3.0

* `AA-3836` - Application fails to authorize and is removed after /labs login

* `AA-3861` - Error when moving application between Provisions

* `AA-3894` - Hardware profile tab fails to open in some scenarios

* `AA-3524` - Ensure the 'What's new?' section of the admin homepage is focusable for keyboard users, and does not interfere with the normal focus flow

* `AA-3885` - objectGUID values in Active Directory that start with bytes representing 'N;' halt login

* `AA-3011` - AppsAnywhere cannot detect the difference between an iPad and macOS when it comes to apps requiring validation

*** ** * ** ***

## **Version 2.11.0**

**Release Date:** July 2021

### Features

* AA-2555 - Automated App Licensing - Manage license details for compatible Software2 apps through AppsAnywhere Admin

* AA-3271 - Update the look-and-feel to reflect the upcoming v3 User Interface

  * This includes a selectable theme to revert the UI to the old style, until customers are ready to transition

* AA-3400 - Add support for upcoming operating system versions

  * iOS 15

  * MacOS 12 Monterey

  * Android 12

* AA-3409 - App List API now lists locally installed delivery methods, as well as Cloudpaging delivery methods

As it is not yet clear how Windows 11 releases will be numbered, all future releases will continue to be categorized as Windows 10. We have preempted a switch to 11.x versioning to ensure that AppsAnywhere continues to function in this scenario.

### Fixes

* AA-528 - Unable to verify session data during Cloudpaging renewal requests

* AA-1679 - Moving apps from one provision to another causes launch errors for users

* AA-1734 - Issue generating database proxies following system upgrade

* AA-2167 - External Website delivery method not accepting "ms-windows-store://" URLs

* AA-2621 - Unable to specify custom login endpoint for AzureAD SSO authentication

* AA-2755 - "No new applications to add" when Cloudpaging API takes more than one minute to respond

* AA-3014 - Some Canvas integration functionality is still operational, even when the App List feature is disabled

* AA-3022 - Copy button is not working for an App List share URL

* AA-3082 - Custom launch button text is not being displayed for the primary delivery method for desktops

* AA-3100 - Validation issues caused by macOS versioning switching to 11.x

* AA-3128 - jQuery is out of date, which is being highlighted by security scans

  * The admin UI is being overhauled in stages, starting in v2.10, and the older libraries will be phased out as part of a larger-scale re-structure

  * The version of jQuery has been updated for the user-facing portal UI but there are too many dependencies in the admin UI for this to be achieved

* AA-3131 - Error displaying apps in the portal when an app set as an automatic dependency has no valid delivery methods

* AA-3134 - Encrypted SAML assertions are not supported for SAML SSO

* AA-3201 - Error launching Parallels HTML5 Cloudpaged applications in recent browser versions

* AA-3223 - System e-mails are not being delivered following change to SendGrid authentication options

* AA-3237 - Analytics menu is not loading until all reports have loaded, and in some cases, not at all

* AA-3241 - Cloudpging cache folder created with incorrect permissions if cron job is run before first Cloudpaging use

* AA-3249 - App List data migration task fails on upgrade if there are no app lists defined

* AA-3257 - Analytics summarization tasks fail when usage events exist on a daylight saving time boundary day

* AA-3273 - Navigating the user profile menu with the keyboard results in the screen scrolling up and down

* AA-3277 - References to "OS X" should be changed to "macOS"

* AA-3299 - Analytics summarization task does not summarize all data when repository filtering is in use

* AA-3328 - Secondary launch options are not being translated in the portal UI

* AA-3354 - Hyperlinks to newly-created Analytics dashboards do not open the dashboard as expected

* AA-3364 - Validation issues when device is connected to a domain which reports as an alias of the primary domain

* AA-3478 - App Sessions resulting from Parallels: Cloudpaged launches contain incorrect (unknown) launch usernames

* AA-3521 - Cloudpaging launches fail when the validation data returned by the client contains a NetBIOS domain name that has lower-case characters

## **Version 2.10.0**

**Release Date:** December 2020

### Features

* AA-2056 - Provide access to lists of apps from within Canvas LMS (LTI Integration)

* AA-2057 - Give admins the ability to access app list information via an API

* AA-2924 - Prompt users to launch their app using Windows Virtual Desktop

  * Includes third-party client management for the Windows Virtual Desktop clients

* AA-2712 - Implement the newer, more secure communication with Parallels RAS native clients

* AA-2996 - Add support for upcoming operating system versions

  * iOS 14

  * MacOS 11 Big Sur

  * Android 11

### Fixes

* AA-964 - Session is being re-validated after taking the tour

* AA-1326 - List of available apps fails to load when dependencies are unavailable

* AA-1783 - List of available apps stops rendering if an app's dependencies are not provisioned in the same provision

* AA-2273 - App name is trimmed on Analytics dashboard

* AA-2329 - Client download being offered on iOS due to changes in default browser behavior

* AA-2411 - Unable to re-enable an app that has passed its expiration date

* AA-2488 - Number of favorited app shows incorrect total if apps have been deleted

* AA-2497 - Current theme on branding settings page always shows as default, even when a custom theme is applied

* AA-2546 - Additional launch options are clipped when they extend beyond the bottom row of apps

* AA-2748 - List of OS filters on the main portal page cannot be seen at certain zoom levels

* AA-2913 - Windows pass-through SSO does not work when the domain name contains a hyphen

* AA-2920 - Hovering over an app name that has been trimmed does not display the full name

* AA-2979 - Upcoming browser changes to SameSite cookie behaviour are set to break certain app functionality

* AA-2999 - Migrating app list availability data fails on upgrade when using SQL Server

* AA-2952 - (From AAMAC-65) App changes required to improve security of OSX Install delivery method on macOS

* AA-3031 - Corrected grammatical error on direct download tooltip

* AA-3077 - LDAP connection username field is limited to 64 characters

* AA-3037 - Login form username and password placeholders are not translatable

  * Customers using a non-english translation will need to ensure their translation file is updated with the new keys, to avoid translation issues on the login screen

    * See the **/admin/settings/language** page for a list of missing translation keys

* AA-3145 - Forward compatibility change for Analytics integration

  * Analytics releases past version 24-07-2020 will require AppsAnywhere v2.10

### **Compatibility**

Beware of minimum AppsAnywhere Client version requirement and backwards compatibility issues with Parallels RAS

* AppsAnywhere 2.10 **requires** AppsAnywhere Client versions 1.4.0 and above

  * Users that do not have the minimum 1.4.0 client will **not** be able to launch Parallels RAS apps, or Windows Virtual Desktop apps from AppsAnywhere v2.10

  * Customers should ensure that the 1.4.0 client is deployed to all managed machines and set as the minimum version in client settings when using AppsAnywhere v2.10

* Due to the changes for AA-2712, the **minimum** supported version of the Parallels RAS native clients is 16.5

  * Customers should ensure that a later version of the Parallels RAS client is deployed to all managed machines and the minimum version is set in client settings when using AppsAnywhere v2.10

*** ** * ** ***

## **Version 2.9.0**

**Release Date:** June 2020

### Features

* Virtual Appliance Delivery

  * Improved performance

  * Improved reliability

  * Quicker installation

  * More reliable upgrades

### Fixes

* AA-507: Secure Download File Size Limitation

* AA-1731: Cloudpaging 2/5-min warning being given to users whose app session shouldn't have expired

  * The resolution for this issue means potentially fewer sessions will be expired by AppsAnywhere

  * Overall Clougpaging license usage *may* increase as sessions which would previously have been expired (in error) may now exist for longer

* AA-1766: Updated LDAP directory username not reflected in AppsAnywhere, disallowing login

* AA-1782: Cron errors seen in log files when run on Linux without Analytics being installed

* AA-2332: On login, user redirected to most recently-accessed endpoint (even if it was an internal API URL, such as keep-alive)

* AA-2500: Page content overflows on some admin pages

* AA-2505: Issue launching Citrix: Cloudpaged delivery methods in some situations

* AA-2552: Security update for Parallels RAS integration with native clients

*** ** * ** ***

## **Version 2.8.0**

**Release Date:** November 2019

### Fixes

* AA-1757: Accessibility: "app-manager-run" image on setup instructions does not have alt tag

* AA-1758: Accessibility: Discoverable "don't show me this again" checkbox not labelled

* AA-1760: Accessibility: Colour contrast is insufficient for some text

* AA-1759: Accessibility: Web aria group on app cards should have name

* AA-1792: Launching a 'direct download' delivery method after launching any 'Parallels' delivery method causes both apps to launch

* AA-1839: Frontend Performance: The render time in IE \& Edge is too long when a large number of apps are being used

  * Several improvements have been made to increase rendering performance

  * Customers should be careful when selecting icons for their apps that they are not excessive in size.

  * For best performance, save icon files at 110px x 110px and compress images using a tool such as [tinypng.com](https://tinypng.com/)

* AA-1245: Apps with more than two automatic dependencies cannot be launched

* AA-1497: ChromeOS support is missing for Parallels delivery methods

  * Support has been added for Parallels delivery methods on ChromeOS

  * The ChromeOS client for Parallels does not currently support the launch mechanism used by AppsAnywhere

  * In order to use this functionality, users must install the Android client from the Google Play Store, or Parallels must update their client support

* AA-1634: Inaccurate macOS version displayed after validation following macOS upgrade

* AA-1664: Mass action button greyed out when trying to manage app sessions

* AA-1777: Reporter Graphs not loading in AppsAnywhere 2.7

* AA-1778: Windows Executable delivery method not working in some circumstances

* AA-1780: SAML SSO: HTTP 500 error when using multiple domains \& UPN username attribute

  * SAML SSO options now include the ability to define "Domain Aliases" so domains can be recognised even if they are referred to differently in the SAML response

* AA-1784: "Remove on Expiration" setting not enabled by default when creating Cloudpaging delivery method

* AA-1785: Cannot launch Parallels apps using the latest Android Parallels client

* AA-1790: Automatic dependency launch opens a new tab pointed at /undefined/provision/true

* AA-1802: Unknown user shown after leaving the frontend logged for an extended period, results in "No delivery method ID" error on launch

  * AppsAnywhere session cookies now set to expire after 5 minutes

  * A keepalive has been added from the frontend UI to keep the session alive

  * If the keepalive fails, or the session expires, users will be re-directed to login, rather than given the perception that they are still authenticated

* AA-1441: Operations applied to the list of apps fail to be applied to machine-provisioned apps under some circumstances

* AA-1563: AutoRun should be disabled if user selects to launch via the AppsAnywhere client

* AA-1661: The screen for editing a Locally Installed delivery method freezes when an error is encountered

* AA-1731: Cloudpaging 2/5-min warning being given to users whose app session shouldn't have expired

  * The resolution for this issue means potentially fewer sessions will be expired by AppsAnywhere

  * Overall Clougpaging license usage *may* increase as sessions which would previously have been expired (in error) may now exist for longer

* AA-1761: Cloudpaged RAS delivery method view not retaining settings

* AA-1781: Error loading user profile following a 2.7 upgrade resulting in users being unable to login

* AA-1787: Analytics: OS label under 'Active devices by OS' missing for unknown OSs

* AA-1920: Creating an app list only functions when using simple grid view

* AA-1954: /labs setting is not being persisted through login

* AA-2274: Cron timeouts are too restrictive

* AA-1627: Reporter cron updates failing when there are non-English characters in app/license names

* AA-1743: Multiple dependencies can be saved with the same ID

* AA-2256: Unable to mass-expire app sessions

* AA-647: Admin UI is not clear that only Cloudpaging delivery methods are acceptable as automatic dependencies

  * Automatic dependencies are only intended for use with Cloudpaging delivery methods. To ensure this is the case, the following rules are now applied:

    * Dependency Type can only be set to "Automatic" if the main app is only using Cloudpaging delivery methods

    * Dependency Type can only be set to "Automatic" if defined dependencies are only using Cloudpaging delivery methods

    * Dependencies can only be added when dependency type is set to "Automatic" if they are only using Cloudpaging delivery methods

  * If an app is currently configured that does not conform to the new restrictions, a warning will be displayed on the dependencies tab

* AA-1442: Favourites are not marked correctly on initial load of app list

* AA-2036: Error accessing AppsAnywhere EULA content(s) for some users

* AA-2330: End users are presented with welcome tour after AppsAnywhere upgrade

*** ** * ** ***

## **Version 2.7.0**

**Release Date:** July 2019

**New Product:**AppsAnywhere Analytics (AA-1411 / AA-1412)

A powerful, easy to use business intelligence product designed to enable customers to better understand use of software within their organisation

* AppsAnywhere now tracks and stores much of the data it processes, including

  * Who is logging in

  * Which devices they are logging in from

  * What they are launching

  * How it is delivered to them

* Import of usage information from metered delivery methods to show concurrency information across delivery technologies

* Built-in dashboards tailored to show the most useful information "out-of-the-box"

* Ability to explore the data model quickly and easily to create your own custom reports and visualizations

* Ability to create and share custom dashboards containing the most valuable information for your organization

\* Metered delivery methods currently include Cloudpaging, Parallels Cloudpaged (Native and HTML5) and Citrix Cloudpaged

### Features

* AA-513 / AA-1184 / AA-1356: Ability to create and share lists of apps/desktops

* AA-1585: User interface enhancements to the admin portal to allow optimized navigation.

* AA-1564: Linux (other) category added to OS available compatibilities to cover unrecognized, or un-identified Linux distributions

* AA-1713: Accessibility enhancements for 508 compliance, including improved readability of login screen and navigability of EULA screens

* AA-1732: Added support for Windows Server 2019 as well as future support for iOS 13, macOS Catalina and Android Q

**Fixes:**

* AA-1678: Cloudpaging launches made using advertised shortcuts not correctly tracking as the user that launched it

* AA-1579: Cloudpaging delivery methods being offered on non-compatible Windows devices (X-box)

* AA-1722: Location information is incorrect due to out-of-date GeoIP database

* AA-1731: Cloudpaging 2-minute warning periodically being displayed for users that should not have had their session expired

* AA-1663: App admins unable to upload custom icons to an application

* AA-1578: Valudation error when validating device enrolled to a Jamf environment not known to AppsAnywhere

*** ** * ** ***

## **Version 2.6.0**

**Release Date:** December 2018

### Features

* AA-323: Citrix Receiver (Workspace App) Integration for Windows managed devices

* AA-322: Add ability to present End User License Agreements on first use of AppsAnywhere

* AA-663: Provide auditing functionality for all changes made in AppsAnywhere admin

* AA-1041: Provide more granular administrator roles (e.g. global admin, system admin, app admin)

* AA-1109: Add ability to launch Parallels RAS apps using iOS native client

* AA-1111: Add ability to launch Parallels RAS apps using Linux native client

* AA-1112: Add ability to launch Parallels RAS apps using Android native client

* AA-828: OS compatibility recognition for XBox and Playstation

* AA-996: OS compatibility recognition for Debian Linux

* AA-497: Add OS compatibility setting for "other" (unrecognised) OSs

* AA-1010: Improve support for IE and Edge on Windows touch-screen devices

* AA-1081: Accessibility enhancement: Provide "skip to content" button when site receives focus

* AA:1083: Accessibility enhancement: Make the main application list accessible through keyboard navigation

* AA-1085: Accessibility enhancement: Make the user profile menu and associated areas accessible through keyboard navigation

* AA-1279: Accessibility enhancement: Make the welcome tour accessible through keyboard navigation

* AA-1094: Accessibility enhancement: Improve the ability for users to make use of AppsAnywhere using speech recognition tools

* AA-1097: Accessibility enhancement: Make AppsAnywhere more accessible to those using screen readers

* AA-1188: Mask the Swivel Two-Factor Authentication PIN on the 2FA input dialog

* AA-1203: Send AppsAnywhere URL to client during validation to avoid the need for a call to the central API

* AA-1285: Add a simple way to check that all translation files are up to date following an upgrade

### Fixes

* AA-1291: Compatibility issue with Cloudpaging 9.1.5 server

* AA-1135: Anonymous users being recorded in Cloudpaging reporting data

* AA-693: Unable to launch multiple apps from the same Cloudpaging package

* AA-1287: User interface making too many context calls to the server when a large number of apps exist

* AA-1012: App icons not being correctly displayed in large grid view

* AA-1277: Reporter cache can be manually regenerated for current or future dates, causing issues with future caching

* AA-651: A large number of app sessions can overload the manage apps sessions page

### Known Issues

There are several known issues with the new Parallels Native Client integration for iOS, Android and Linux that have been released

with this version in the hope that they are resolved by updates to the Parallels Clients before the next version of AppsAnywhere is released

* Users must re-enter their password when launching apps on iOS and Android

* Launch parameters cannot be sent to apps installed on the server using the parallels native client on iOS, Android or Linux

* Cloudpaging apps cannot be launched through the parallels native client on iOS, Android or Linux

* Support for the Android native client on Chromebooks is currently limited to ARM devices (not x86)

* Use of the Android native client on Chromebooks is currently **untested**

*** ** * ** ***

## **Version 2.5.0**

**Release Date:** 29^th^ June 2018

### Features

* AA-657: Jamf Pro Integration

* AA-533: Expand the SSO capabilities of AppsAnywhere

* AA-942: AppsAnywhere Client Detection

* AA-208: Ability to change launch button text

* AA-522: Change default value of 'Prefetch All' setting when offline usage is selected for Cloudpaging delivery methods

* AA-746: Allow setting of 'Licence Invalidation Time' value for Cloudpaging delivery methods

* AA-521: Allow setting of 'Remove on Expiration' value for Cloudpaging delivery methods

* AA-741: Add confirmation to mass app session evictions and expirations

* AA-512: Provide ability to select default auth location

* AA-294: Provide additional information when managing applications

* AA-383: Allow more IP CIDR ranges in general settings

* AA-850: Reduce the number of database calls made when loading app config

* Added support for iOS 12, macOS 10.14 and Android 9.0

### Fixes

* AA-769: App expiration date affected by delivery method settings

* AA-755: Cloudpaged Parallels apps do not launch on macOS

* AA-739: Delivery method friendly name not used on upgrade list page

* AA-691: Take a tour: not working when suppression is in place

* AA-683: Desktop icons not displayed correctly in Internet Explorer

*** ** * ** ***

## **Version 2.4.0**

**Released:** 16^th^ February 2018

### Features

* AA-317: Ability to monitor status of and manage Zend Server license from within AppsAnywhere

* AA-327: Allow admins to restrict access to delivery methods based on associated Active Directory records

* AA-327: Allow admins to restrict access to delivery methods based on whether or not the device is a laptop

* AA-517: Ability to offer users access to help and support information from the AppsAnywhere dashboard

* AA-299: Ability to add custom rolling banner images to the AppsAnywhere dashboard

* AA-504: Ability to bulk manage Cloudpaging app sessions

### Fixes

* AA-649: State of check boxes not properly reflected on first page load, only on refresh

* AA-534: Timeout issues when trying to refresh the available Cloudpaging applications list

* AA-532: Cannot enable front end caching

* AA-529: Selectable date range not updated when switching from 'Never Expire' to any other setting

* AA-527: Cloudpaging patch version is incorrectly reset when editing a delivery method

* AA-526: Launch command not updating correctly when editing Cloudpaging delivery methods

* AA-525: Editing Cloudpaging delivery methods creates a duplicate

* AA-511: VMware Horizon delivery methods do not support brackets in Resource Name field

* AA-510: Unable to set UNC path for a Secure Download delivery method

* AA-500: Users cannot login if their password contains special characters

* AA-488: Unable to delete a delivery method if it is part of an upgrade

* AA-448: Previous session are not correctly terminated when logging in via SSO

* AA-385: Unexpected error thrown if device lookup fails in domain

* AA-549: Dependencies pop-up has a missing translation

* AA-530: Client download screen translation issue

* AA-671: Reporting users to not have a link to access reporter

* AA-645: Domain membership not correctly detected on mac OS

* AA-487: Cloudpaging DMs do not reflect newly-added patch versions ([see notes](https://docs.appsanywhere.com/appsanywhere/3.6/cloudpaging-delivery-method.md))

* Added support for Andriod Oreo

*** ** * ** ***

## **Version 2.3.0**

**Released:** 16^th^ October 2017

### Features

* Parallels RAS Integration (remote apps and desktops)

* AA-320: Multi-lingual Support

* AA-313: Interactive Welcome Tour, Hints and Tips

* AA-204: Hub-specific reporting for shared Cloudpaging environments

* AA-306: Ability to name delivery methods to ease administration

* AA-298: Ability to specify custom launch commands for Cloudpaging delivery methods

* AA-318: Integration with S2Library for selection of app icons from the community repository

* AA-301: User can now have layout and language preferences persist across devices

* AA-300: New dependency option for automatic without user popups

* AA-458: Official support for Chrome OS

### Fixes

* AA-490: Missing support for mac OS High Sierra

* AA-485: Missing support for iOS 11

* AA-329: OS Compatibilities not being correctly summarized when editing a delivery method

* AA-328: Incorrect counts shown in filter menu when OS compatibility is not 100% across all versions

* AA-307: DB port required during setup making it difficult to configure instance connections

* AA-297: MAC device descriptions of more than 32 characters break validation

* AA-290: Clustering job client_copy fails to download client installers through proxy

* AA-238: Erroneous authentication prompt when disabling frontend caching via cache settings

**Note**

All AppsAnywhere servers require an internet connection for normal operation. Please see the updated [Server Requirements](https://docs.appsanywhere.com/appsanywhere/3.6/server-requirements.md) page for more information

*** ** * ** ***

## **Version 2.2.0**

**Released:** 30^th^ June 2017

### Features

* Azure Active Directory single sign-on support (including Office 365 tile support)

* Managed Cloudpaging upgrades

* Third party client management

* Locally installed apps detection

* VMWare Horizon Integration (remote apps and desktops)

* Moved AppsAnywhere client version management into AppsAnywhere

* New Add Delivery Method screen to make it easier to find the suitable delivery method

### Fixes

* Resolved issue causing double prompts for basic authentication following failed single sign-on attempt

* Resolved issue with branding not working following v1 migration during setup

* Resolved issue with delivery methods not being available on Windows Server operating systems

* Resolved issue where Cloudpaging apps could not be launched from the Player if a user logged out of AppsAnywhere

* Extended validation timeout from 21s to 60s to reduce the number of failures

* Resolved issues with apps not being visible on unknown Linux distros

* Updated GeoIP database

*** ** * ** ***

## **Version 2.1.1**

**Released:** 13^th^ April 2017

### Fixes

* Removed duplicate calls to get-favorites API

* Fixed timing issue stopping apps that required validation being re-contextualized once validation completes

* Fixed issue with applications not being correctly marked as unavailable

* Removed console logging by default to improve performance

* Reduced the number of API calls required for fetching application details

* Added scrolling to category and filter dropdowns

* Updated method for rendering applications to improve performance in IE and Edge

* Reduced number of calls to update-icon API by combining requests

* Split app list rendering into chunks to reduce wait time for initial view

* Added conflict resolution for apps that are provisioned to the user AND the machine

* Reduced number of context API calls for machine apps

* Added caching to application dependency info to improve performance

* Added fix for apps with dependencies that aren't correctly contextualized

* Moved rendering of app totals until after all context has returned to avoid the perception of losing apps as they are marked as unavailable

* Removed restriction icons from main app view - reducing page HTML by \> 50% for IE and Edge performance

* Simplified compatibility icons and favorites icon to further reduce HTML

* Remove flexbox rendering to improve performance

* Removed case sensitivity from app list sorting

* Resolved issue expiring App Sessions (reported by Kingston)

* Resolved issue with category information not being applied to machine-based apps (reported by Durham)

* Resolved issue with converting Cloudpaging licenses to Offline enabled (reported by Oxford Brookes)

* Resolved issue uploading app icons when system contains a large number of apps

* Updated Geo-IP database

*** ** * ** ***

## **Version 2.1.0**

**Released:** 14^th^ February 2017

### Features

* Support for deployment of SCCM and App-V packages via AppsAnywhere and Software Center

* Improved caching of context data to increase front-end performance

* Added ability to enable/disable/refresh system cache via admin

* Various improvements to the installation/upgrade procedure

* Added option for "BYOD only" restriction

* Ability to deliver AppsAnywhere client downloads from within AppsAnywhere and manage 3rd party installed versions (centrally)

### Fixes

* Performance improvements for reporting

* Reporter general settings page still susceptable to IE bug

* Current delivery method OS compatibilities not displayed on edit

* Unable to switch Cloudpaging Environments when creating a delivery method

* Dependencies not visible on the dependencies view when they should be

* Username incorrectly reported to Cloudpaging on app launch

* Problems loading the dashboard in IE10

* Validation required flag incorrectly set on MacOS

* Validation does not occur in Safari

* Validation banners should not be branded

* Applications ordered by added date instead of alphabetically

* Various UI bug fixes

*** ** * ** ***

## **Version 2.0.2**

**Released:** 13^th^ January 2017

### Features

* Added ability to customize portal branding with custom imagery and color scheme

* Added ability to create custom themes for the interface by overwriting template files

* Added checks and warnings for deleting applications or provisions when active app sessions exist

### Fixes

* Issue with banner suppression on managed machines

* "Use Cloudpaging license warnings" setting not being applied correctly

* Updates to SSO settings to (finally) avoid the IE bug that stops forms submitting data!

* WindowsInstall delivery option not launching applications properly

* Healthcheck URL does not return the proper status code

* Reinstated ability to delete applications and provisions

* Current set OS compatibilities not reflected when editing a delivery method

* Multiple fixes for user interface bugs

* Validation and application launches are not executed in Safari

* Error caused by removing and immediately re-setting dependencies

* Long page timeouts eventually cause Apache to crash on Windows

## **Version 2.0.1**

**Released:** 7^th^ December 2016

### Features

* Added support for latest Windows \& OSX versions

* Support for native OSX application installs through AppsAnywhere

* Support for launching locally installed applications through AppsAnywhere

### Fixes

* Issue launching applications via RemoteApp delivery method

* Improve page load performance when using SSO

* Performance improvements for dashboard application load

* Removed ability to delete applications to avoid an identified bug with existing app sessions not being handled correctly

*** ** * ** ***

## **Version 2.0.0 - Initial Release**

**Released:** 19^th^ October 2016

### Features

* PHP 7, Zend Framework 3, Zend Server 9 support

* Improved installation setup and configuration workflow

* Single application entity, multiple deployment methods

* Custom build local client

* Delivery method contextualization

* Smart prioritization

* OSX support

* AppsAnywhere brand

---
version: "3.6"
language: "en"
---
# AppsAnywhere Server Specifications

## Supported Hypervisors

The following hypervisors are supported, and compatible VM images are available:

* Microsoft Azure Virtual Machine (Azure VHD Generation 1 and Generation 2 - Generation 2 is recommended)

* AWS EC2 (OVA)

* Microsoft Hyper-V on Windows Server 2016 or later (VHDK)

* VMware vSphere 7.x or later (OVA)

Other hypervisors and image formats, including conversion to other image formats, are not officially supported and are done at a customer's own risk.

If you would like to request support for a hypervisor or image format, contact AppsAnywhere support or use our [feedback forum](https://feedback.appsanywhere.com/).

### Specification

A hypervisor will need to be configured to provide these resources, unless importing the VMware OVA template; in which case the specification will be configured automatically.

#### Standard

* 4 vCPUs

* 8 GB RAM

* 32 GB HDD (thin provisioned)

* Gigabit Ethernet adapter (1Gbps connection is ideal)

* IPv4 address (IPv6 is not supported)

#### Azure

* D-Series v4 or later (D4s v4, 4vCPU, 16GB RAM)

* F-Series v2 or later (F4s v2, 4vCPU, 8GB RAM)

* Custom managed OS disk (SSD) (500 IOPS per disk) -- 32GB

### Server Components

All components listed are what is stock as part of the image. Updates are installed during deployment and automatically based on the configured update schedule.

* Rocky Linux: v8.10

* Kernel: v4.18.0-553.40.1

* Apache: 2.4.37-65.module+el8.10.0+1938+3b7755d4.3

* PHP: v7.1-1.el8.remi

* PHP: v8.2-5.el8.remi

* Microsoft SQL ODBC Driver: v17.10.6.1-1

* OpenSSL: v1.1.1k-14.el8_10

#### Additional Components

*Azure VHD*

* WALinuxAgent v2.7.0.6-8.el8_8

* Azure VHDs are created based on instructions provided by Microsoft on [Create and upload a CentOS-based Linux VHD](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-upload-centos?toc=/azure/virtual-machines/linux/toc.json#centos-70).

* Microsoft documentation detailing how to upload a custom VHD are available on [Upload a VHD to Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-upload-vhd-to-managed-disk-cli).

*AWS (OVA)*

* Amazon SSM Agent v3.3.1611.0-1

This build is configured by default with the following enabled/configured:

1. Networking and DHCP enabled by default.

2. Unrestricted SSH access.

3. The **setup** user account is allowed SSH access.

4. Amazon SSM Agent installed and enabled.

Due to the above it is advisable that a security group is linked to the EC2 instance that restricts access via SSH/22 to specific IP addresses/ranges.

The required steps to import this OVA image within AWS can be found on [Importing a VM as an image using VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html).  
Any other format or conversion of the AppsAnywhere appliance is not officially supported.

## Analytics

### Supported Hypervisors

* Microsoft Azure Virtual Machine (Azure VHD Generation 1 and Generation 2 - Generation 2 is recommended)

* AWS EC2 (OVA)

* Microsoft Hyper-V on Windows 2012 R2 or later (VHDK)

* VMware vSphere 7.x or later (OVA)

Other hypervisors and image formats, including conversion to other image formats, are not officially supported and are done at a customer's own risk.

If you would like to request support for a hypervisor or image format, contact AppsAnywhere support or use our [feedback forum](https://feedback.appsanywhere.com/).

### Specification

A hypervisor will need to be configured to provide these resources, unless importing the VMware OVA template; in which case the specification will be configured automatically.

#### Standard

* 4 vCPUs

* 8 GB RAM

* 32 GB HDD (thin provisioned)

#### Azure

* 2 vCPUs

* 8 GB RAM

* Standard OS Disk

* 32 GB Data Disk -- SSD (500 IOPS per disk)

### Server components

All components listed are what is stock as part of the image. Updates are installed during deployment and automatically based on the configured update schedule.

* Rocky Linux v8.8

* Kernel v4.18.0-477.27.1.el8_8

* PHP CLI v8.2.12-1.el8.remi

* OpenSSL v1:1.1.1k-9.el8_7

* Java OpenJDK v1:11.0.21.0.9-2.el8_8

* Chromium v109.0.5414.119-1.el8

* Looker v23.6.139

#### Additional Components

*Azure VHD*

* WALinuxAgent v2.7.0.6-8.el8_8.rocky.0.1

* Azure VHDs are created based on instructions provided by Microsoft on [Create and upload a CentOS-based Linux VHD](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/create-upload-centos?toc=/azure/virtual-machines/linux/toc.json#centos-70).

* Microsoft documentation detailing how to upload a custom VHD are available on [Upload a VHD to Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/disks-upload-vhd-to-managed-disk-cli).

*AWS (OVA)*

* Amazon SSM Agent v3.2.1705.0-1

This build is configured by default with the following enabled/configured:

1. Networking and DHCP enabled by default.

2. Unrestricted SSH access.

3. The **setup** user account is allowed SSH access.

4. Amazon SSM Agent installed and enabled.

Due to the above it is advisable that a security group is linked to the EC2 instance that restricts access via SSH/22 to specific IP addresses/ranges.

The required steps to import this OVA image within AWS can be found on [Importing a VM as an image using VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html).

### Supported Database servers

Please refer to [Database Requirements](https://docs.appsanywhere.com/appsanywhere/database-requirements) for more information.

---
version: "3.6"
language: "en"
---
# AppStream

## Overview

AppStream environments contain the details from your Amazon AppStream infrastructure, which allows apps to be launched via AppStream. After an environment is added, select the appropriate AppStream delivery method in an application and it will use the details of your environments to determine which apps are available to launch.

This documentation covers connecting your existing AWS infrastructure to AppsAnywhere and configuring AppsAnywhere to start delivering resources made available through AppStream.

It is assumed therefore that AppStream infrastructure already exists, is configured, and is able to deliver resources through the standard means (without AppsAnywhere).

* [Viewing AppStream Environments](https://docs.appsanywhere.com/appsanywhere/3.6/viewing-appstream-environments.md)

* [Adding an AppStream Environment](https://docs.appsanywhere.com/appsanywhere/3.6/adding-an-appstream-environment.md)

* [Editing an AppStream Environment](https://docs.appsanywhere.com/appsanywhere/3.6/editing-an-appstream-environment.md)

* [Deleting an AppStream Environment](https://docs.appsanywhere.com/appsanywhere/3.6/deleting-an-appstream-environment.md)

Once AppsAnywhere is connected AppStream, resources can be delivered by adding [AppStream Delivery Methods](https://docs.appsanywhere.com/appsanywhere/3.6/ras-delivery-methods.md).

---
version: "3.6"
language: "en"
---
# AppStream Delivery Methods

## Overview

The AppStream delivery method allows users to access apps in your Amazon AppStream environments from within AppsAnywhere by reading information about available Stacks, Fleets and Applications from one or more AppStream environments that you create.

## Before you start

* To work with AppStream, you must first [set up AppStream environments](https://docs.appsanywhere.com/appsanywhere/3.6/appstream.md)

* All delivery methods share some basic, common settings that you will need to understand before continuing. Make sure you have read the [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) article before continuing.

Once you understand the common settings and how they work, you can go to the application you want to manage:

1. From the AppsAnywhere admin portal, search for Applications, or go to **Applications \> Applications** in the navigation menu

2. **Click Edit** next to the application you wish to manage

## Application Delivery Methods

There is currently only one delivery method that you can add to your application that utilizes the AppStream integration. You will see this when [Adding delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/adding-delivery-methods.md) to an app if you select the **AppStream** category from the left-hand side of the **Add New Delivery Method** dialog.

The delivery method fields are described in detail in this section.

### AppStream: Native

The **AppStream: Native** delivery method generates a streaming URL based on the Application details retrieved from AWS itself; this URL is then used to allow users to connect and launch the application within the browser.

The following table describes each field and setting available when creating this type of delivery method, it's intended value, and an example for each.  

|    Field Name    |                                                                                                                                                                                                                                                    Description                                                                                                                                                                                                                                                     |                                                                                                  Intended Value                                                                                                  |                       Example                       |
|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| Environment      | The environment from which the app will be delivered, as defined in the [**AppStream**](https://docs.appsanywhere.com/appsanywhere/3.6/appstream.md) section.                                                                                                                                                                                                                                                                                                                                                                                   | The name of an AppStream environment you have previously configured, selected from the list of options.                                                                                                          | Live AppStream Environment                          |
| Stack name       | A list of Stacks retrieved form AWS using the credentials set on the selected Environment. If these Stacks are not loaded as expected, ensure the correct policies were applied within AWS for the access key provided.                                                                                                                                                                                                                                                                                            | The name of the AppStream Stack which contains the desired application to launch.                                                                                                                                | MyAppStreamStack                                    |
| Fleet name       | The Fleet associated to the selected Stack selected. If the Fleet is not loaded as expected, ensure the correct policies were applied within AWS for the access key provided.                                                                                                                                                                                                                                                                                                                                      | This information is populated automatically based on the Stack selected. Contains the name of the AppStream Fleet associated with the chosen Stack.                                                              | MyAppStreamFleet                                    |
| Application name | A list of Applications for the determined Fleet.                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | The name of the Application you wish to launch.                                                                                                                                                                  | Mozilla Firefox                                     |
| Launch type      | The type of launch to be done, either launching via **Streaming URL** or **Embedded Streaming URL**. The Streaming URL launch type will redirect the user to the URL directly, and the Embedded option will display the AppStream session within AppsAnywhere, allowing for better control of the applications being launched. However, in order to make use of the embedded launches the [AppStream environment](https://docs.appsanywhere.com/appsanywhere/3.6/adding-an-appstream-environment.md) will need to be using a **Custom domain**. | For environments using custom domains, we recommend using the embedded URL option. This will ensure that users cannot switch between applications in the session and that launch analytics will be more accurate | Embedded Streaming URL                              |
| Session context  | Optional arguments to be passed through to the AppStream session on launch, which can then be consumed by a custom script you may have set up. More information about this can be found in the official AppStream documentation: [Managing Stacks and Fleets: Session Context](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-stacks-fleets.html#managing-stacks-fleets-session-context).                                                                                                   | The expected argument(s) for your custom script. This field is currently heavily restricted in length, due to an AppStream limitation.                                                                           | "[https://www.google.com](https://www.google.com/)" |

If Fleets, Stacks or Applications do not load as expected, ensure that the correct AWS policies are in place for the Environment credentials specified. You can read more on this [here](https://docs.appsanywhere.com/appsanywhere/3.6/adding-an-appstream-environment.md).

---
version: "3.6"
language: "en"
---
# Branding AppsAnywhere

## Overview

Admins have ability to change logos and headers to personalise the AppsAnywhere environment, including variants specific to dark mode. If branding is not configured, then AppsAnywhere will provide default branding.

## Branding AppsAnywhere

To navigate to the branding settings you must:

* Log into AppsAnywhere as an admin user

* Click on **Return to Admin** to access the AppsAnywhere admin portal

* Hover over the settings menu (the cog icon found at the top right of the page)

* Click on **Branding**on the dropdown menu

### Dark mode

Dark mode reduces the amount of light emitted by displays, reducing eye strain in dark environment, as well as reducing the amount of power some devices use.

When in dark mode, the colour scheme changes from light backgrounds with dark text to dark backgrounds with light text.  
It is only possible to view the login and portal sections of AppsAnywhere in dark mode.

Each user can choose if the portal is displayed in dark or light mode by opening the theme menu, located at the top right of the portal.

The following options are available:  

|        **Theme**         |                                                  **Description**                                                  |
|--------------------------|-------------------------------------------------------------------------------------------------------------------|
| Light                    | The portal will always be displayed in light mode.                                                                |
| Dark                     | The portal will always be displayed in dark mode.                                                                 |
| System default (Default) | The portal will be displayed in either light or dark mode, depending on which is requested by the user's browser. |

By default *System default* will be selected*.*

A dark mode specific system logo, header logo and login background can be uploaded. The dark mode specific version will appear when the portal is displayed in dark mode, with the primary version appearing in light mode.  

![localhost_3000_.png](https://docs.appsanywhere.com/__attachments/a_381e8944986c8ffd9667043ded858326e451b5891c2aa848c421df356aa626a1/localhost_3000_.png?cb=50ec4dbd04f94a6680055478f3b640e3)  
![CleanShot 2022-09-01 at 14.24.52@2x.png](https://docs.appsanywhere.com/__attachments/a_7ed49223a231fe553ea1d56a7c2b710043118ef7802ed9ccec595700e2c68808/CleanShot%202022-09-01%20at%2014.24.52@2x.png?cb=44acaf275f3c3bf299152bef17c65f94)

### System logo

This setting will allow the user to upload their own system logo. This logo will appear at the top of the box on the login screen, above the login form and also in the e-mails sent out by the system.

In addition to the primary logo, a dark mode version can also be uploaded, this version will be displayed when the portal is in dark mode. If a dark mode version is not provided then the primary logo will be displayed in dark mode.

To upload an image click inside an image box or drag and drop an image. You can also remove images or revert back to the defaults by clicking on **Revert both versions of the logo to their defaults**below the image boxes the image box or selecting remove on the newly uploaded image at the bottom of the image box.  
Try to maintain an 8:1 aspect ratio with this image and ideally with a minimum size of 350x50 to ensure it is scaled correctly, especially on mobile devices. At this time, this image must be saved in the PNG image format and we recommend using an image with a transparent background.  
![CleanShot 2022-09-01 at 15.04.32@2x.png](https://docs.appsanywhere.com/__attachments/a_40437bead97f2d6b522662afe991ad5e5d7ba66ec8e09e761c4ef1a888690247/CleanShot%202022-09-01%20at%2015.04.32@2x.png?cb=f51a18870f382de9c6191b05b2a59456)

### Header logo

This setting will allow the user to upload their own header logo. This logo will appear at the top left of every page of the front-end portal and would typically be the same as or similar to the main system logo.

In addition to the primary logo, a dark mode version can also be uploaded, this version will be displayed when the portal is in dark mode. If a dark mode version is not provided then the primary logo will be displayed in dark mode.

To upload an image click inside an image box or drag and drop an image. You can also remove images or revert back to the defaults by clicking on **Revert both versions of the logo to their defaults**below the image boxes or selecting remove on the newly uploaded image at the bottom of the image box.  
Try to maintain an 8:1 aspect ratio with this image and ideally with a minimum size of 350x50 to ensure it is scaled correctly, especially on mobile devices. At this time, this image must be saved in the PNG image format and we recommend using an image with a transparent background.  
![CleanShot 2022-09-01 at 15.08.13@2x.png](https://docs.appsanywhere.com/__attachments/a_513f566a2b6bd037a1dbf299ca2d69c9bc39d4f947b49bb967a9a99543b3f248/CleanShot%202022-09-01%20at%2015.08.13@2x.png?cb=d689ec90acabadf7603a2faeb0be9860)

### Login background

This setting will allow the user to upload their own login background. This image will appear as the backdrop of the login page and will spans the entire height and width.

In addition to the primary image, a dark mode version can also be uploaded, this version will be displayed when the portal is in dark mode. If a dark mode version is not provided then the primary image will be displayed in dark mode.

To upload an image click inside an image box or drag and drop an image. You can also remove images or revert back to the defaults by clicking on **Revert both versions of the logo to their defaults**below the image boxes or selecting remove on the newly uploaded image at the bottom of the image box.  
This image should ideally be around 1890x1060 to ensure it is large enough to display correctly across all devices. At this time, this image must be saved in the JPEG image format and we recommend keeping it below 500KB in size.  
![CleanShot 2022-09-01 at 15.08.39@2x.png](https://docs.appsanywhere.com/__attachments/a_df3144c5abd7b989bb160dd9a0897e72bf1c98ccedb36c93770555123d9f56bd/CleanShot%202022-09-01%20at%2015.08.39@2x.png?cb=f5c37c4050f94ecb2e74fea02fc53124)

---
version: "3.6"
language: "en"
---
# Browsing a Directory

## Overview

AppsAnywhere provides a built-in directory browser so you can easily see the entities that are available in your directory that can be used to grant people access to AppsAnywhere and the applications within it. There are a number of different ways to locate the records you need, which we will cover in this article.  
Before you can provision applications to directory entities (users, groups or machines), you will need to import those records into AppsAnywhere. See [Importing directory entities](https://docs.appsanywhere.com/appsanywhere/3.6/importing-directory-entities.md) for more information.

## Accessing the LDAP browser

1. Log into AppsAnywhere as an admin user

2. Click on Return to Admin to access the AppsAnywhere admin portal

3. On the navigation menu at the top of the page, go to **Active Directory** \> **Directory Browser**

When you first visit the directory browser, you will likely see an empty table:  
![screenshot-feature-s2hub-124-s2dv-co-uk-2016-08-24-14-32-30.png](https://docs.appsanywhere.com/__attachments/a_810b0c803e08129c3792dd55916e1b79a3641dbb4cda22ddb6cf0c03d14f8b07/screenshot-feature-s2hub-124-s2dv-co-uk-2016-08-24-14-32-30.png?cb=19ddf3012c82ac69c50f4157bbf7f954)

## Manual Browsing

If you aren't sure exactly what you are looking for, you can browse the directory from the top level.

To do this, start by clicking the **Search Base Directory** button ![image2016-8-24 15:17:41.png](https://docs.appsanywhere.com/__attachments/a_b9227445e13abf6bcf9d8c9450d43d21169e81cfe97d21b7aeea95d103b67b59/image2016-8-24%2015:17:41.png?cb=6c896f46819800bd68639133ffcb40f3)

This will load the contents of the selected directory at the topmost level  
![image2016-8-24 15:18:50.png](https://docs.appsanywhere.com/__attachments/a_0f56b0617ff7bcca9b20953cc3a247e33a426b360a02c5d657b5093172412ee4/image2016-8-24%2015:18:50.png?cb=5add366409caf6edc1eebd6db7b1f12b)

* Any objects that contain child objects will be presented as a hyperlink which you can click to drop down a level.

* Use the **Up One Level** button to work yourself back up the directory tree

* You can use the paging controls just underneath the table on the right to access more results, if they don't all fit on one page

* You can change the number of results shown at a time using the Show x entries dropdown just above the table on the left

The Search box just above the table on the right will quickly filter the current table of results with any term you enter. This is a great way to quickly find something you are looking for on a page with lots of results (such as the "Domain Users" page)

## Searching

By far the quickest way to locate an entity in your directory is using the Search Directory widget on the right hand side of the page  

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ![image2016-8-24 15:27:56.png](https://docs.appsanywhere.com/__attachments/a_69928170b61b3dc0018cf7d8ba622ccdbba6af24d5eada376c6da43fe3ee485b/image2016-8-24%2015:27:56.png?cb=c5ab583287d7340d82b79db40bf84a0c) | To locate an entity anywhere in your directory: 1. Select the type of object you want to search for from **Groups** , **Machines** and **Users** 2. If you are looking for an exact result, or the search takes an unreasonably long time, tick **Disable Wildcard** 3. Enter the text you want to search for in the text box 4. Click the **Search** button The table of records will then show the results of your search, rather than a list of objects contained within a certain part of the directory. You can use the live search box just above the table on the right hand side to search within your results. |

As you can see from the image below, in the AppsAnywhere directory, a search for "ryan" returns two user entities.  
![image2016-8-24 15:34:20.png](https://docs.appsanywhere.com/__attachments/a_e3df6050838a5b30ca14f4c2e7685b17eb16a816deb771b6df453f756765570b/image2016-8-24%2015:34:20.png?cb=af4982bf61ff125f335d176795c200e7)

## Switching Connections

If you have more than one directory linked to AppsAnywhere, you may need to use the directory switcher widget in the bottom right of the LDAP browser page to change which directory you are currently connected to in order to browse and search one of your other directories. You will see the directory switcher under the **Available Connections** heading under the main search form on the right-hand side of the page.

In order to change the connection currently being used, click **Use** next to the connection you wish to switch to in the directory switcher.  
![image2016-8-24 14:53:1.png](https://docs.appsanywhere.com/__attachments/a_d7473a2096eaed55caa21854462639d885333dcb1a5a44ba9370d282274c6bde/image2016-8-24%2014:53:1.png?cb=85bd60bdd75b3c48661840f1dc3d72da)

The directory switcher will then update to show the new directory as in use, indicated by the green tick.

---
version: "3.6"
language: "en"
---
# Building a RemoteApp Instance

## Overview

A lot of our customers are looking to deliver Windows applications to non-Windows devices and many are also looking for ways to deliver applications that are running in a controlled environment to un-controlled, or remote, devices. VDI is often the solution to both of those problems and Microsoft's RemoteApp is a great way to make a start in that area. At AppsAnywhere, we use RemoteApp heavily as part of our demos to demonstrate the power of VDI and running apps across different platforms. In this article, we take you through how we set up a basic RemoteApp environment and in the next article, we show you how easy it is to link RemoteApp with AppsAnywhere.

## Before you begin

In order to set up a RemoteApp environment, you will need to have a couple of things in place. These are:

1. A machine with a fresh install of Windows Server. We are using 2012 R2 in this article but feel free to use whatever flavour you like.

2. Your machine should be joined to your domain. It doesn't *have* to be, but it makes things a whole lot simpler.

3. You need to be logged in as admin. If you are joined to the domain, then log in as domain admin.

Once you have those three things sorted, you are ready to go!

## Setting up RemoteApp

The following process is what the AppsAnywhere team use to configure a single-server demo environment for RemoteApp. These notes are meant to assist a complete novice get up and running with their first RemoteApp server but do not reflect any best practice for using RemoteApp in a production environment.

Refer to Microsoft documentation on [Remote Desktop Services](https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/welcome-to-rds) for further information.

### Launch the Add Roles and Features Wizard

In order to start the process of setting up RemoteApp, you need to add the Remote Desktop Services role to the server. This is done through the Add Roles and Features wizard.

1. Open up **Server Manager**

2. Click on **Manage**

3. Select **Add Roles and Features**

![image2017-3-8 21:59:26.png](https://docs.appsanywhere.com/__attachments/a_9bdbd481fbc03baa9a40b92af4ecfa3e93f1ef8e553b8db628ca1fea0e0d4c8e/image2017-3-8%2021:59:26.png?cb=8d1eb787233c5566a1fd08fe58ad804e)  

#### Make your way through the wizard

When the wizard opens, you will be presented with an information screen. Be sure to read this screen carefully and be certain that installing this role onto your server will not affect any other services provided by that machine before continuing.

1. Click **Next**

![image2017-3-8 22:1:51.png](https://docs.appsanywhere.com/__attachments/a_d55d36e4609c088f72b73a9956ddaea12a529c7153faff74a8841eed49c94103/image2017-3-8%2022:1:51.png?cb=d5375a720328a64fd9a8780c4e0358d9)  

#### Select the installation type

Remote Desktop Services is a bit of a special case when it comes to adding the role to the server and so has a category of its own, separate to the usual list of available roles and features.

1. Check sure **Remote Desktop Services Installation**

2. Click **Next**

![image2017-3-8 22:3:17.png](https://docs.appsanywhere.com/__attachments/a_4721ae256559d93fdf31c5d90069e9f0d1a852b609bbbba3926355f25e5882f4/image2017-3-8%2022:3:17.png?cb=edb2b1de64c130c0fdbcd0aea4e6b4f3)  

#### Select the deployment type

On this screen, you select whether you want to install a single-server deployment or set up a multi-server environment with all of the various components required for RemoteApp split across different machines. For the purpose of this example, we use the Quick Start option, with all components residing on the same box. Be sure to select the option that best suits your requirements.

1. Select **Quick Start**

2. Click **Next**

For more information on the Standard Deployment option, take a look at this [technet blog entry](https://blogs.technet.microsoft.com/askperf/2015/04/07/remote-desktop-services-rds-2012-session-deployment-scenarios-standard-deployment/)

![image2017-3-8 22:3:53.png](https://docs.appsanywhere.com/__attachments/a_83ff14c960605bc1d8f07b56926e5cdc7a1021aa1ece4facb4b842f218c42c0b/image2017-3-8%2022:3:53.png?cb=90e0ae9a7634e76a26fb975f085214e6)  

#### Choose VDI or session-based deployment

RemoteApp can utilize VMs running in a Hyper-V infrastructure in order to run the session that the user is connecting to. For simplicity however, we choose to use session-based desktop deployment as this is much more self-contained, which better suits the requirement of our demo system.

1. Choose Session-based desktop deployment

2. Click **Next**

For more information on Virtual machine-based desktop deployment, take a look at this [technet article](https://technet.microsoft.com/en-us/library/dn645525(v=ws.11).aspx)

![image2017-3-8 22:4:23.png](https://docs.appsanywhere.com/__attachments/a_6e429065334ad9af7a16f75772acd59a4fa0f12069172f3c6741d7288bebc8f3/image2017-3-8%2022:4:23.png?cb=1db4b402e22da155401971846a5598b6)  

#### Choose the server to install to

At this point you select which server you are wanting to install the selected services on. In our example this is a simple choice as we are only working with the server we are currently connected to.

1. Make sure the selected server is correct

2. Click **Next**

![image2017-3-8 22:5:48.png](https://docs.appsanywhere.com/__attachments/a_246bbde615a83335f24fd9d5685fb0ae9d94fa6d67dd00aab5b8bb52d434e53e/image2017-3-8%2022:5:48.png?cb=a08081570839cce60a8475f9eee07506)  

#### Review the details

This final screen just confirms the details of the servers that will be affected and the roles that will be installed on each (or in our case, just the one). Ensure the details are correct and then continue.

1. Tick **Restart the destination server automatically if required**

2. Click **Deploy**

![image2017-3-8 22:6:45.png](https://docs.appsanywhere.com/__attachments/a_ee1a3f7596d7f9cf05db5e6557f6c7bb5e1729f6ac32f49701df522fb38901a4/image2017-3-8%2022:6:45.png?cb=3acc22c04071512ea8a741da6416c2e8)  

#### Sit back and wait for the installation to complete

As an I.T. enthusiast you will be well versed in the art of watching progress bars slowly fill up. Adopt your favorite waiting position while the installation progresses.

If you get bored, try typing '**google pacman**' into Google...  
![image2017-3-8 22:7:34.png](https://docs.appsanywhere.com/__attachments/a_8e2218aec41a1dca9ab0b6f7b981b6768cad8deb79274a0845a7d7732658d70b/image2017-3-8%2022:7:34.png?cb=89f5f82d814083ba8f4ad4465cbe1f29)  

#### Re-connect to the server

The installation process involves at least one re-start, so you may need to re-connect to the server. Once you re-connect you will see that the process has resumed where it left off before the restart.  
![image2017-3-8 22:12:42.png](https://docs.appsanywhere.com/__attachments/a_2cd4a26f6c3fc3a534a866156555bcb0bb9c4fd583445feca9115638661d79aa/image2017-3-8%2022:12:42.png?cb=d2bed53bd3287331811c8a703cb9343e)  

#### Installation Complete!

Eventually, you will see the following screen, indicating that the installation is complete.

1. Make a note of your rdweb URL (it will come in handy later)

2. Close the Add Roles and Features Wizard.

That's it! Take a look at the next article that will take you through [Linking your RemoteApp server](https://docs.appsanywhere.com/appsanywhere/3.6/linking-your-remoteapp-server.md) to AppsAnywhere  
![image2017-3-8 22:37:53.png](https://docs.appsanywhere.com/__attachments/a_0a72f6238e5c8b80516a1a883528e9adba29ec514be61233da2e2f42a618e4a9/image2017-3-8%2022:37:53.png?cb=dc9e5b38213627736f7b25bc9aa87315)

## Licensing Concerns

By default, a newly installed RemoteApp server will come with a 119-day grace period on the licensing. If you are running a proof-of-concept of RemoteApp then this should be more than sufficient time to run an evaluation. If you intend to use the system for longer however, you will need to hold (or purchase) the appropriate licenses and [specify a licensing server](https://technet.microsoft.com/en-us/library/cc754487(v=ws.11).aspx) for your RemoteApp Session Hosts to connect to.

Once setup is complete, you will see the following friendly reminder that this is yet to be completed:  
![image2017-3-8 22:29:0.png](https://docs.appsanywhere.com/__attachments/a_f2d8261722902f825f26c73e782d78820a1fbb0973ccec419a16c9bbe5ac0608/image2017-3-8%2022:29:0.png?cb=79fe4d691c72cd418263338e08235bc8)

---
version: "3.6"
language: "en"
---
# Cache Settings

## Overview

AppsAnywhere has the ability to cache data for users which stores information regarding applications assigned to that user, groups and machine. Additionally it also caches data for languages and delivery methods.

## Viewing Cache Settings

Navigate to the Cache settings page:

* Log into AppsAnywhere as an admin user

* Click on **Return to Admin** to access the AppsAnywhere admin portal

* Hover over the settings menu (the cog icon found at the top right of the page)

* Click on **Caching**on the dropdown menu

### Enable from end Caching?

This setting affects the caching of delivery method data during smart prioritisation, as well as the caching of which application are assigned to users, groups and machines. This will need to be refreshed to reflect any changes made to user settings.

### Language Caching

This setting affect the caching of language data, and will need to be refreshed if new languages are added to the system. This setting cannot currently be disabled.

### Jamf Pro API Caching

This setting affect the caching of Jamf Pro API data, and will need refreshing if you wish to see changes made in Jamf PRO reflected in AppsAnywhere when importing policies, e-books and MAC App Store applications. This setting cannot currently be disabled.

![image2019-2-18 10:37:5.png](https://docs.appsanywhere.com/__attachments/a_0cb26072e085751f4b71fc0c173af040de2be0978ad064d985af80974de5eb9f/image2019-2-18%2010:37:5.png?cb=93ac0242361211dd67464796d611c6ae)

---
version: "3.6"
language: "en"
---
# Citrix Cloudpaged Delivery Method

## Overview

There are many different ways in which an application can be delivered to an end user and which one you choose to use could depend on a number of factors such as the type of device they are using, who owns the device or where they are physically located, as a few examples. The Citrix Cloudpaged delivery method is available to Windows devices and triggers the locally installed Citrix Workspace app to initiate the delivery of a Cloudpaged app into the terminal server environment and then present it to the user.

## Before you start

A [Cloudpaging Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/cloudpaging-delivery-method.md) must be configured before creating a Citrix Cloudpaged delivery method and the Citrix environment must be [configured for Cloudpaging](https://docs.appsanywhere.com/appsanywhere/3.6/configuring-a-citrix-environment-for-cloudpaging.md).

All delivery methods share some basic, common settings that you will need to understand before continuing. Make sure you have read the [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) article before continuing.

Once you understand the common settings and how they work, navigate to the application to be configured:

1. From the AppsAnywhere admin portal, search for Applications, or go to **Applications \> Applications** in the navigation menu

2. Click **Edit** next to the application you wish to manage

## Creating the delivery method

Adding a new delivery method:

1. On the application management page, select the **Delivery Methods** tab

2. Under the list of current delivery methods, click the **Add New Delivery Method** button

3. Select **Citrix: Cloudpaged**from the Add Delivery Method screen

4. Click **Add** or double click the delivery method

5. The form for adding a new Citrix native delivery method will then load up on the right-hand side

6. Complete the required details (described below)

7. Set the [Operating System Compatibilities](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) and the [Restrictions](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md)for the delivery method

8. Click **Save**

If the save was successful, you will see the form replaced with the following message and your new delivery method will be added to the bottom of the list on the left-hand side  
![image2021-8-10_10-38-18.png](https://docs.appsanywhere.com/__attachments/a_0fdcd5a3e3a7e2d107bd79dd0c3e198239f3010c282bd4a76fd52e2015d2da61/image2021-8-10_10-38-18.png?cb=636a814e4a0f721a0863c4bac45f2f05)

If there were any errors with the data you entered, you will be prompted to correct these before you can continue.

## Delivery Method Fields

The following table describes each field and setting available for this delivery method, it's intended value and an example for each  

|          Field Name           |                                                             Description                                                              |                                                                          Intended Value                                                                           |                 Example                 |
|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| Citrix Pro Server Environment | The Citrix Environment from which the application will be served. field provides a list of currently configured Citrix Environments. | Select the appropriate environment from the list which the published application is defined within                                                                | "Central Citrix Environment"            |
| Resource Name                 | The name of the AppsAnywhere Launcher published application in the Citrix environment                                                | This field is pre-populated with the AppsAnywhereLauncher published application name If this was changed in Citrix, the value must be updated to the correct name | AppsAnywhereLauncher                    |
| Launch Method                 | The launch method the AppsAnywhere Client will use to start the application via the Citrix Receiver/Workspace App                    | By default the **Environment Default**launch method is used, however a specific launch method for the application can be selected if required.                    | Launch Quick Launch Environment Default |
| Cloudpaging Delivery Method   | This field contains a list of Cloudpaging delivery methods configured for the application                                            | Select the appropriate Cloudpaging delivery method                                                                                                                | "\<application specific\>"              |

## Prioritizing

Now that your delivery method is in the list of those available, it is important that you prioritize it accordingly to determine exactly when it will be used.

To understand this process completely, take a look at the [Prioritizing delivery methods](https://docs.software2.com/display/S2HubAdmin/Prioritizing+delivery+methods) article.

---
version: "3.6"
language: "en"
---
# Citrix Desktop Delivery Method

## Overview

There are many different ways in which an application can be delivered to an end user and which one you choose to use could depend on a number of factors such as the type of device they are using, who owns the device or where they are physically located, as a few examples. The Citrix desktop delivery method is available to Windows devices and is a great way of delivering Windows applications to devices that wouldn't usually be capable of running that application.

## Before you start

A Citrix environment must be configured by following [Adding a Citrix environment](https://docs.appsanywhere.com/appsanywhere/3.6/adding-a-citrix-environment.md). A Desktop must also be created in AppsAnywhere Admin \> Desktops.

All delivery methods share some basic, common settings that you will need to understand before continuing. Make sure you have read the [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) article before continuing.

Once you understand the common settings and how they work, navigate to the desktop to be configured:

1. From the AppsAnywhere admin portal, search for Desktops, or go to **Desktops \> Desktops** in the navigation menu

2. Click **Edit** next to the desktop you wish to manage

## Creating the delivery method

Adding a new delivery method:

1. On the desktop management page, select the **Delivery Methods** tab

2. Under the list of current delivery methods, click the **Add New Delivery Method** button

3. Select **Citrix: Desktop** from the Add Delivery Method screen

4. Click **Add** or double click the delivery method

5. The form for adding a new Citrix Desktop delivery method will then load up on the right-hand side

6. Complete the required details (described below)

7. Set the [Operating System Compatibilities](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) and the [Restrictions](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) for the delivery method

8. Click **Save**

If the save was successful, you will see the form replaced with the following message and your new delivery method will be added to the bottom of the list on the left-hand side  
![image2021-8-10_10-38-18.png](https://docs.appsanywhere.com/__attachments/a_e75ca35c6aa64b4d99bba2ebd1ece39255fd7112321e9637aed9fd8487fca482/image2021-8-10_10-38-18.png?cb=636a814e4a0f721a0863c4bac45f2f05)

If there were any errors with the data you entered, you will be prompted to correct these before you can continue.

## Delivery Method Fields

The following table describes each field and setting available for this delivery method, it's intended value and an example for each  

|          Field Name           |                                                             Description                                                              |                                                                 Intended Value                                                                 |                 Example                 |
|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| Citrix Pro Server Environment | The Citrix Environment from which the application will be served. field provides a list of currently configured Citrix Environments. | Select the appropriate environment from the list which the published application is defined within                                             | "Central Citrix Environment"            |
| Resource Name                 | The "Display Name" of the published desktop defined within the Citrix Delivery Group                                                 | The display name from the Citrix environment                                                                                                   | Client desktop                          |
| Launch Method                 | The launch method the AppsAnywhere Client will use to start the application via the Citrix Receiver/Workspace App                    | By default the **Environment Default**launch method is used, however a specific launch method for the application can be selected if required. | Launch Quick Launch Environment Default |

Prioritizing

Now that your delivery method is in the list of those available, it is important that you prioritize it accordingly to determine exactly when it will be used.

To understand this process completely, take a look at the [Prioritizing delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/prioritizing-delivery-methods.md) article.

---
version: "3.6"
language: "en"
---
# Citrix Native Delivery Method

## Overview

There are many different ways in which an application can be delivered to an end user and which one you choose to use could depend on a number of factors such as the type of device they are using, who owns the device or where they are physically located, as a few examples. The Citrix native delivery method is available to Windows devices and triggers the locally installed Citrix Workspace app to initiate the launch of an app natively installed in the terminal server environment.

## Before you start

The application to be delivered must be published in the Citrix environment.

All delivery methods share some basic, common settings that you will need to understand before continuing. Make sure you have read the [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) article before continuing.

Once you understand the common settings and how they work, navigate to the application to be configured:

1. From the AppsAnywhere admin portal, search for Applications, or go to **Applications \> Applications** in the navigation menu

2. Click **Edit** next to the application you wish to manage

## Creating the delivery method

Adding a new delivery method:

1. On the application management page, select the **Delivery Methods** tab

2. Under the list of current delivery methods, click the **Add New Delivery Method** button

3. Select **Citrix: Native**from the Add Delivery Method screen

4. Click **Add** or double click the delivery method

5. The form for adding a new Citrix native delivery method will then load up on the right-hand side

6. Complete the required details (described below)

7. Set the [Operating System Compatibilities](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) and the [Restrictions](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md)for the delivery method

8. Click **Save**

If the save was successful, you will see the form replaced with the following message and your new delivery method will be added to the bottom of the list on the left-hand side  
![image2021-8-10_10-38-18.png](https://docs.appsanywhere.com/__attachments/a_994392a6d7f1dc7ade36213d071d4e15afd177882d817969d3b6e487475ab60d/image2021-8-10_10-38-18.png?cb=636a814e4a0f721a0863c4bac45f2f05)

If there were any errors with the data you entered, you will be prompted to correct these before you can continue.

## Delivery Method Fields

The following table describes each field and setting available for this delivery method, it's intended value and an example for each  

|          Field Name           |                                                             Description                                                              |                                                                                                                Intended Value                                                                                                                 |                 Example                 |
|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| Citrix Pro Server Environment | The Citrix Environment from which the application will be served. field provides a list of currently configured Citrix Environments. | Select the appropriate environment from the list which the published application is defined within                                                                                                                                            | "Central Citrix Environment"            |
| Resource Name                 | The "Application name" of the published application defined within the Citrix application settings                                   | The application name from the Citrix environment. The application can however have a different name for users and administrators so it is important to enter the correct value based on how the applications will be provisions to the users. | Word 2016                               |
| Launch Method                 | The launch method the AppsAnywhere Client will use to start the application via the Citrix Receiver/Workspace App                    | By default the **Environment Default**launch method is used, however a specific launch method for the application can be selected if required.                                                                                                | Launch Quick Launch Environment Default |
| Arguments                     | Additional arguments that should be passed to the application when it is launched                                                    | Arguments should be enclosed in double quotes                                                                                                                                                                                                 | "\<application specific\>"              |

Prioritizing

Now that your delivery method is in the list of those available, it is important that you prioritize it accordingly to determine exactly when it will be used.

To understand this process completely, take a look at the [Prioritizing delivery methods](https://docs.software2.com/display/S2HubAdmin/Prioritizing+delivery+methods) article.

---
version: "3.6"
language: "en"
---
# Citrix Netscaler / ADC

## Overview

The following configuration and instructions are provided as a guide. The information should be reviewed before being applied, and referenced against any existing Citrix Netscaler / ADC configuration currently in use.  
Please refer to your load balancer vendor for support and further information, e.g. [Citrix ADC](https://docs.citrix.com/en-us/citrix-adc/current-release)documentation.

### AppsAnywhere

The following Server, Monitor, Service Group and Virtual Server configurations can be used with AppsAnywhere.

#### Add Servers

To add the AppsAnywhere server details so they can be used with a virtual server and service group, login to the Citrix Netscaler / ADC interface and select **Servers** from the **Traffic Management** **-\> Load Balancing**section:  
![image2020-10-29_17-14-12.png](https://docs.appsanywhere.com/__attachments/a_3824fc2572a0362b2d2d205b5f944b634b8ae8188bdb224e67c2da362c9ad304/image2020-10-29_17-14-12.png?cb=b1e11b9ed64faef3c17944486349bfb7)

Click **Add**to define an entry for your AppsAnywhere server. This process will need to be completed for each individual server:  
![image2020-10-29_17-18-40.png](https://docs.appsanywhere.com/__attachments/a_728d0d1c93ac477e47dce40f84442234c548e6d880f95bd577996e7e4e9c1fbc/image2020-10-29_17-18-40.png?cb=f31d4a927907dbbc5229657661cb19c5)

Specify the required name and IP address of your AppsAnywhere server and click **Create** to add the entry:  
![image2020-10-29_17-20-19.png](https://docs.appsanywhere.com/__attachments/a_e8943c882f33426ec0ca7fa6cc061d26fc8ae8913652eee982519e76123d8c23/image2020-10-29_17-20-19.png?cb=ba65132a32a682d3130a3866dc2b4eff)

For example:  
![image2020-10-29_17-21-26.png](https://docs.appsanywhere.com/__attachments/a_5a793c37b22422c17debec0596e92f09d069b75e1196d16eb2a94af90b786cfb/image2020-10-29_17-21-26.png?cb=71769b18e8b23faaca135ae78f1c7174)

#### Add a monitor

To add a service monitor, select **Monitors** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-10-29_17-26-45.png](https://docs.appsanywhere.com/__attachments/a_54690703a2ccc59fc15ff809c1b921721b98348db184b3a0bb2a69431077a7db/image2020-10-29_17-26-45.png?cb=e1f4c0130e38caec4fa6aac0e3dd283c)

Click **Add**to create a new monitor.  
![image2020-10-29_17-28-1.png](https://docs.appsanywhere.com/__attachments/a_26a4a8f349d3ede8ee49d1673ff6c4b12d1bd228af39ade918bb3570d3ab472c/image2020-10-29_17-28-1.png?cb=59e5769abe5fbc1b1e4b01ee6af4f586)

Specify a name for the monitor and click the "\>" icon to select the monitor type.  
![image2020-10-29_17-29-22.png](https://docs.appsanywhere.com/__attachments/a_0a367896e00ae54f0d726a5c9f8b580c28708d68cb417e07f810aed70f234ddf/image2020-10-29_17-29-22.png?cb=aa58fb751e10fb32c4caf13b46514264)

Choose **HTTP** and click **Select.**  
![image2020-10-29_17-30-51.png](https://docs.appsanywhere.com/__attachments/a_ba3bbeda09c83b1426c72fffcb54481ac7ee405009b8967f4e9a521bb5f57471/image2020-10-29_17-30-51.png?cb=f30f8e9db2762126d7bd343793032b80)

Set

* Interval = 30 seconds

* Response Time-Out = 10 seconds

Change the **HTTP Request** value to "HEAD /healthcheck" .

Enable the **Secure** option.  
![image-20220712-142754.png](https://docs.appsanywhere.com/__attachments/a_3d187681454364f6f162d77e9719ca54ba14432781af75b7224b2092042f2ced/image-20220712-142754.png?cb=cbba91507fdd45e1520bbc45c0f99b22)

Click **Create** to add the monitor.  
Other options such as check intervals and timeouts can be adjusted if required.

#### Create a Service Group

To create a service group containing the AppsAnywhere Server, select **Service Groups** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-11-26_13-40-47.png](https://docs.appsanywhere.com/__attachments/a_af58841c6910590401c28e35e89ea0aa399efaeaf611b0bee629b4bd4492d2ec/image2020-11-26_13-40-47.png?cb=41f479686e945cf8196e5349161fb96b)

Click **Add** to create a new Service Group:  
![image2020-11-26_13-42-12.png](https://docs.appsanywhere.com/__attachments/a_3d130473d8c001372c92dbd70f47f5770a1f3e802919ed7abb8eba3a228fdd76/image2020-11-26_13-42-12.png?cb=e6ab7dc6b15bc487d50fb5c91ddc7202)

Specify the Name or the Service Group and select **SSL** from the protocol list. Click **OK** to continue.  
![image2020-11-26_13-44-9.png](https://docs.appsanywhere.com/__attachments/a_cbd45900bd37150e58c9b3501c0a5c75d55195cb735beb6014f86d078be726cd/image2020-11-26_13-44-9.png?cb=4a0323bd81859cd57ad0c7478a3907a5)

Click the **No Service Group Member** item under the **Service Group Members**section:  
![image2020-11-26_13-47-6.png](https://docs.appsanywhere.com/__attachments/a_f930db1091e517a1cec2b33f5ccb43bad8bc541871ecea25fdb513490f45ac01/image2020-11-26_13-47-6.png?cb=8841912e619639a4dee846db3f5e53c7)

Select the **Server Based** option on the **Create Service Group Member** page:  
![image2020-11-26_13-48-30.png](https://docs.appsanywhere.com/__attachments/a_f303321b05ce20d15fe6e6df378c52fc39eeceae41a8bae25a24ed4fcaeaca97/image2020-11-26_13-48-30.png?cb=d13faa104c589caf1037354ea8b6d4e3)

Click the "\>" icon next to the **Select Server** option, select your existing AppsAnywhere Servers and click **Select**to continue :  
![image2020-11-26_13-50-27.png](https://docs.appsanywhere.com/__attachments/a_3122c3b27330ffe83dd629193222326f5d797353b277b4c61f92aa100441dba5/image2020-11-26_13-50-27.png?cb=3247fdec9607ccb3ff9bdef563c9ba91)

Enter **443** in the Port number field and click **Create** to continue:  
![image2020-11-26_13-52-13.png](https://docs.appsanywhere.com/__attachments/a_413cb9df500a0069e69282e400f69cf696bd6b3bb8af9c5dda4bb34c539cd870/image2020-11-26_13-52-13.png?cb=f0277470c9f2a566d6ca7172cddbc951)

Click **OK** under the **Service Group Members** section to continue:  
![image2020-11-26_13-53-47.png](https://docs.appsanywhere.com/__attachments/a_6e9dccf846c5bce0dc64f8b4944cb5c596081a16fea090463ee497b9f1305166/image2020-11-26_13-53-47.png?cb=5a47397a605b4005b1fee308ffba221e)

Select **Monitors** from the **Advanced Settings** menu on the right-hand side of the page:  
![image2020-11-26_17-40-40.png](https://docs.appsanywhere.com/__attachments/a_d68080547d0e7ab73669d99f03bc0dab86a0e9689225e3ca54d378ca0b988ebb/image2020-11-26_17-40-40.png?cb=47ba4574223a94afc92da1f3d88c657f)

Click the **No Service Group to Monitor Binding** item under the **Monitors**section:  
![image2020-11-26_17-35-17.png](https://docs.appsanywhere.com/__attachments/a_e1d0eb2411205f4758840a4a5de74682ef7c8e11e7c207826b0d5a7b53ff50a0/image2020-11-26_17-35-17.png?cb=16064b73bae3c6399cc09dd0fab982a5)

Click the "\>" icon next to the **Select Monitor** option, select the Monitoring service created in the previous step and click **Select**to continue :  
![image2020-11-26_17-24-3.png](https://docs.appsanywhere.com/__attachments/a_2dc97b81d353fc5c31dd9accaff805dfabfc77186645abe2d248f53ebd7f4b4a/image2020-11-26_17-24-3.png?cb=8ae477f706f63bb663a9d2d135f7e095)  
![image2020-11-26_17-32-1.png](https://docs.appsanywhere.com/__attachments/a_9e6c986c41f2fb6591d76a808fe492e269bc4f0207bc3451fc58bc4d995bc3ba/image2020-11-26_17-32-1.png?cb=8d0748207ed946b4dc94cc9a1998776e)

Click **Bind** to continue:  
![image2020-11-26_17-32-33.png](https://docs.appsanywhere.com/__attachments/a_6e72bb2749f22100129745c857ef7db0a6286c9ee30b7fa52d3936d0e3a4f6d4/image2020-11-26_17-32-33.png?cb=286c86d4902692460551128750ce2125)

Click the the **Settings** Advanced Settings option  
![image-20220712-094410.png](https://docs.appsanywhere.com/__attachments/a_02ca72c792f9cbedf4d98a987b992982f1e026c7584b5b68d6ece3d5341cde86/image-20220712-094410.png?cb=801d3970e9382f6e6ecbe2190bf82579)

Enable the **Insert Client IP Header** and type in the **X-Forwarded-For** string for the **Header** text box and click **OK**  
![image-20220712-094358.png](https://docs.appsanywhere.com/__attachments/a_dbdabcb0777d5202af5b3847d09b64895439aa39e0dcef53ab66e79874f7c66c/image-20220712-094358.png?cb=cb807012649025897172693b418ac21e)

Click **Done** at the bottom of the page to complete the process.  
![image-20220712-094645.png](https://docs.appsanywhere.com/__attachments/a_7e058f605b99ede65b731734d136d2d724b0db6f2d01999af7efc2b68f62fb0a/image-20220712-094645.png?cb=f6ebba41dceb11b5845d4057c21e1d1e)

#### Create a Virtual Server

To create a Virtual Server, select **Virtual Servers** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-11-26_14-16-18.png](https://docs.appsanywhere.com/__attachments/a_63caee0e065515af35875fcdfe495ae7c94502331a0eb49f54c26def4c3d81a9/image2020-11-26_14-16-18.png?cb=3788301c9b3b4b1ee10cbb25f90f6f5d)

Click **Add** to create a new Virtual Server:  
![image2020-11-26_14-17-29.png](https://docs.appsanywhere.com/__attachments/a_4a136ae20078d430b3a48daea66c509051aa4c6c1309982be6239434dc4de27a/image2020-11-26_14-17-29.png?cb=4e25c9146b6765a6e7118cf48e80364e)

Specify the Name or the Virtual Server, select **SSL** from the protocol list and specify the IP Address the Virtual Server will listen on. Click **OK** to continue.  
![image2020-11-26_14-18-45.png](https://docs.appsanywhere.com/__attachments/a_76d4ee59267707e009ae68dba7668a68cd6500039aad7686eabd8b0fcb73403e/image2020-11-26_14-18-45.png?cb=1957d97c5b30410680c5939064440902)

Click the **No Load Balancing Virtual Server ServiceGroup Binding** item under the **Services and Service Groups**section:  
![image2020-11-26_14-21-55.png](https://docs.appsanywhere.com/__attachments/a_cf13ce23affca8297f92857561e4e75f062a10d0594650bbb357da4e81195630/image2020-11-26_14-21-55.png?cb=211a7c386323beb0c21b7b04117b9d17)

Click the "\>" icon next to the **Select Service Group Name** option, select your existing Service Group and click **Select**to continue :  
![image2020-11-26_14-23-20.png](https://docs.appsanywhere.com/__attachments/a_850dfadbd1a14eb77d1bae36ebef70b16bc098870cc46a4917ea4cfd1b044e64/image2020-11-26_14-23-20.png?cb=6e33ba22437b13aa19058fe62ec182ed)  
![image2020-11-26_14-25-28.png](https://docs.appsanywhere.com/__attachments/a_025464c401772fa95936b70554e51ed316931a9dbb8f858abcd349de444f0c37/image2020-11-26_14-25-28.png?cb=1aa5aff536d4c7e77778dc7874a395a4)

Click **Bind** to continue:  
![image2020-11-26_14-26-10.png](https://docs.appsanywhere.com/__attachments/a_470e1fdd9c3bff32ace088a18290a613122146f9cc617224749fbc4d9d2f681c/image2020-11-26_14-26-10.png?cb=140b54b72f07281d3c934b63be9893cc)

Click **Continue**to proceed:  
![image2020-11-26_14-31-15.png](https://docs.appsanywhere.com/__attachments/a_7c526a9e79b33972b12c32daa0e9cbcc2ff6779209a0ccc22a7135671ea42d6b/image2020-11-26_14-31-15.png?cb=83e4d1f828d1fc99e9a965cc2f47408a)

#### Add a certificate

Click the **No Server Certificate** entry under the **Certificate** section:  
![image2020-11-26_15-1-27.png](https://docs.appsanywhere.com/__attachments/a_5022e852f76caab0361fa33f7663e386d60042db7487fcf71832df8908ae68bd/image2020-11-26_15-1-27.png?cb=87efb573cea906eeecd5e41e999ca25a)

Click the "\>" icon next to the **Select Server Certificate** option, select your existing Server Certificate and click **Select**to continue :  
![image2020-11-26_15-2-22.png](https://docs.appsanywhere.com/__attachments/a_a27d767d1c1d964bd912632b1f76745edf515e26d7015f5582f0e752f36f3374/image2020-11-26_15-2-22.png?cb=b739b37844b09a498f5b83ea08cfc7ca)  
![image2020-11-26_15-4-32.png](https://docs.appsanywhere.com/__attachments/a_20a7c19fcacadf4504b9211cd370b34c86277025685c8bd349eb6f183a543db7/image2020-11-26_15-4-32.png?cb=d9f8e3ef34613fbfd8395d5a303d43f2)

Click **Bind** to continue:  
![image2020-11-26_15-6-17.png](https://docs.appsanywhere.com/__attachments/a_2625f233ac561832143c1660601c507fc2119f5dd2e900c5c59041da9bfd4e1a/image2020-11-26_15-6-17.png?cb=d1b84e7a8c90085ed37dde70a4a9f051)

Click **Continue:**  
![image2020-11-26_15-7-7.png](https://docs.appsanywhere.com/__attachments/a_5187f07aeda31af62078755e9739bee8331f4989ed95c1f9fe1e06ae0ea6558f/image2020-11-26_15-7-7.png?cb=564a1938017a1f6e35466e30032c90c0)

#### Configure No Caching

1. Navigate to Load Balancing \> Virtual Servers and select the AppsAnywhere entry

2. Click the + to add a Policy

3. Create a new Cache policy

   1. Choose Policy = Cache

   2. Choose Type = Request

4. Click Continue

5. Click Add under Policy Binding

6. Set

   1. Name = AppsAnywhere_No_Cache

   2. Action = NOCACHE

   3. Undefined-Result Action = NOCACHE

   4. Expression = `HTTP.REQ.HOSTNAME.CONTAINS("appsanywhere.uni.edu")`

   5. Replace [appsanywhere.uni.edu](http://appsanywhere.uni.edu/) with the AppsAnywhere DNS

7. Click Create

8. Click Bind

![image-20220719-104156.png](https://docs.appsanywhere.com/__attachments/a_e09be341934a0d72abd555a6205c64a7ebe477ee5207f35a76d9d07695fbb8f6/image-20220719-104156.png?cb=e6c79174271c29988d8773a7e6818ee1)

#### Configure Persistence

Select **Persistence** from the **Advanced Settings** menu on the right-hand side of the page:  
![image2020-11-26_15-8-40.png](https://docs.appsanywhere.com/__attachments/a_fa12a454b7bc4f3a4eb094aa8cee4725e56dffcd47dc8a63e2b578bdc98846ed/image2020-11-26_15-8-40.png?cb=e48f93f5d8e6320995a9d635b1649abc)

Select **SOURCEIP** under the **Select Persistence Type** section, click **OK**to continue:  
![image2020-11-26_15-9-16.png](https://docs.appsanywhere.com/__attachments/a_bfc4fee9096d28f98a5cec7c986cb0abec620a4ec0ca2d146196b3638b635d8c/image2020-11-26_15-9-16.png?cb=da031e1699260dd4ef08b596602af013)

Click **Done** at the end of the page to complete the Virtual Server creation:  
![image2020-11-26_15-18-39.png](https://docs.appsanywhere.com/__attachments/a_d35aa37b73aa966b8164416e51c4c15288920105731d16aa1c55162e51030c9a/image2020-11-26_15-18-39.png?cb=67ecf16891dd397e696b4a669f71a25b)

The new Virtual Server will now appear in the **Virtual Servers** list:  
![image2020-11-26_15-19-52.png](https://docs.appsanywhere.com/__attachments/a_22eeb348245a98a94815a07153c62852db77f0da1dc263b55e9e375005bfee0a/image2020-11-26_15-19-52.png?cb=05dc59373910a467d1674d16787d2082)

### Cloudpaging Admin/License Servers

The following Server, Monitor, Service Group and Virtual Server configurations can be used with the Numecent Cloudpaging Admin/License servers.

#### Add Servers

To add the Cloudpaging Admin/License server details so they can be used with a virtual server and service group, login to the Citrix Netscaler / ADC interface and select **Servers** from the **Traffic Management** **-\> Load Balancing**section:  
![image2020-10-29_17-14-12.png](https://docs.appsanywhere.com/__attachments/a_3824fc2572a0362b2d2d205b5f944b634b8ae8188bdb224e67c2da362c9ad304/image2020-10-29_17-14-12.png?cb=b1e11b9ed64faef3c17944486349bfb7)

Click **Add**to define an entry for your Cloudpaging Admin/License server. This process will need to be completed for each individual server:  
![image2020-10-29_17-18-40.png](https://docs.appsanywhere.com/__attachments/a_728d0d1c93ac477e47dce40f84442234c548e6d880f95bd577996e7e4e9c1fbc/image2020-10-29_17-18-40.png?cb=f31d4a927907dbbc5229657661cb19c5)

Specify the required name and IP address of your Cloudpaging Admin/License server and click **Create** to add the entry:  
![image2020-11-26_16-52-18.png](https://docs.appsanywhere.com/__attachments/a_06a37208be14a75fec936e7e12b621e109ad03d50ad9cd4d9aed53fe8402b950/image2020-11-26_16-52-18.png?cb=82a33e79c95a2aa202b2d010c1d90c41)

For example:  
![image2020-11-26_16-54-35.png](https://docs.appsanywhere.com/__attachments/a_42461ba9e3a3e3bfab99730cb3fe4c7a5040b6cf284dd54fd2f2f06e183de8b0/image2020-11-26_16-54-35.png?cb=0983e99ad16efb6a79a27a7daf2fbcaf)

#### Add a monitor

To add a service monitor, select **Monitors** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-10-29_17-26-45.png](https://docs.appsanywhere.com/__attachments/a_54690703a2ccc59fc15ff809c1b921721b98348db184b3a0bb2a69431077a7db/image2020-10-29_17-26-45.png?cb=e1f4c0130e38caec4fa6aac0e3dd283c)

Click **Add**to create a new monitor.  
![image2020-10-29_17-28-1.png](https://docs.appsanywhere.com/__attachments/a_26a4a8f349d3ede8ee49d1673ff6c4b12d1bd228af39ade918bb3570d3ab472c/image2020-10-29_17-28-1.png?cb=59e5769abe5fbc1b1e4b01ee6af4f586)

Specify a name for the monitor and click the "\>" icon to select the monitor type.  
![image2020-11-26_17-6-54.png](https://docs.appsanywhere.com/__attachments/a_782005bdac676947beb74262326797afd2c0feda57107edabb374a0439a79698/image2020-11-26_17-6-54.png?cb=cc9715e3da36308fef5c68e29343c6bf)

Choose **HTTP** and click **Select.**  
![image2020-10-29_17-30-51.png](https://docs.appsanywhere.com/__attachments/a_ba3bbeda09c83b1426c72fffcb54481ac7ee405009b8967f4e9a521bb5f57471/image2020-10-29_17-30-51.png?cb=f30f8e9db2762126d7bd343793032b80)

Set

* Interval = 30 seconds

* Response Time-Out = 10 seconds

Change the **HTTP Request** value to "HEAD /jukeboxserver/do/license/token/renew.tok?msid=ping" .

Enable the **Secure** option.  
![image-20220712-142714.png](https://docs.appsanywhere.com/__attachments/a_a4f8816a252ce75df47533a764c3b24cbd7b06226a4e9e74957ffdedb1ec163f/image-20220712-142714.png?cb=a77f3636a271aa34cd9a17c7c7675876)

Click **Create** to add the monitor.  
Other options such as check intervals and timeouts can be adjusted if required.

#### Create a Service Group

To create a service group containing the Cloudpaging Admin/License server, select **Service Groups** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-11-26_13-40-47.png](https://docs.appsanywhere.com/__attachments/a_af58841c6910590401c28e35e89ea0aa399efaeaf611b0bee629b4bd4492d2ec/image2020-11-26_13-40-47.png?cb=41f479686e945cf8196e5349161fb96b)

Click **Add** to create a new Service Group:  
![image2020-11-26_13-42-12.png](https://docs.appsanywhere.com/__attachments/a_3d130473d8c001372c92dbd70f47f5770a1f3e802919ed7abb8eba3a228fdd76/image2020-11-26_13-42-12.png?cb=e6ab7dc6b15bc487d50fb5c91ddc7202)

Specify the Name or the Service Group and select **SSL** from the protocol list. Click **OK** to continue.  
![image2020-11-26_17-37-22.png](https://docs.appsanywhere.com/__attachments/a_edd1951fadfb252d40ad0ced911512b87cfb2fb12bf2a7a7eecdd13f3e19aa6c/image2020-11-26_17-37-22.png?cb=b1054a9097dec59e3d599272f0a678c5)

Click the **No Service Group Member** item under the **Service Group Members**section:  
![image2020-11-26_17-37-50.png](https://docs.appsanywhere.com/__attachments/a_d702427111b1e70d2ec7e54abcbbdc99a5c7c0ced2b3528b880def7fdb287ed4/image2020-11-26_17-37-50.png?cb=9cc482f4d163fb35fb19dc02e805a092)

Select the **Server Based** option on the **Create Service Group Member** page:  
![image2020-11-26_13-48-30.png](https://docs.appsanywhere.com/__attachments/a_f303321b05ce20d15fe6e6df378c52fc39eeceae41a8bae25a24ed4fcaeaca97/image2020-11-26_13-48-30.png?cb=d13faa104c589caf1037354ea8b6d4e3)

Click the "\>" icon next to the **Select Server** option, select your existing Cloudpaging Admin/License servers and click **Select**to continue :  
![image2020-11-26_17-14-18.png](https://docs.appsanywhere.com/__attachments/a_7ee5dd085340e2b566032fee16975a9f6b10e07af2978305caed05acb88dfba5/image2020-11-26_17-14-18.png?cb=b411bf7facceab1328fc38e55b6ecdca)

Enter **443** in the Port number field and click **Create** to continue:  
![image2020-11-26_17-15-18.png](https://docs.appsanywhere.com/__attachments/a_c28e1d753af0f000731aa59f82b674b9acb29182119ded1e24dffe66971536ad/image2020-11-26_17-15-18.png?cb=7c98130fd978c8fe250fa046a8a52fa7)

Click **OK** under the **Service Group Members** section to continue:  
![image2020-11-26_17-39-21.png](https://docs.appsanywhere.com/__attachments/a_de13e57dcbc92c242c5c0c2cac5fcd58bcb01e6563abed5491a476a3f642a229/image2020-11-26_17-39-21.png?cb=229fe648f120da56139db87684d57bf8)

Select **Monitors** from the **Advanced Settings** menu on the right-hand side of the page:  
![image2020-11-26_17-40-29.png](https://docs.appsanywhere.com/__attachments/a_ef45f94764424612b55eadab893fc253023186aff4460eca6a41d79c8f31f958/image2020-11-26_17-40-29.png?cb=47ba4574223a94afc92da1f3d88c657f)

Click the **No Service Group to Monitor Binding** item under the **Monitors**section:  
![image2020-11-26_17-40-12.png](https://docs.appsanywhere.com/__attachments/a_3f68f21693a2feb23c517b9010e798d22ac640a51b92d333109fd2bc852f4a56/image2020-11-26_17-40-12.png?cb=2a0bceb7f9d5aabf02d91855666b59e4)

Click the "\>" icon next to the **Select Monitor** option, select the Monitoring service created in the previous step and click **Select**to continue :  
![image2020-11-26_17-24-3.png](https://docs.appsanywhere.com/__attachments/a_2dc97b81d353fc5c31dd9accaff805dfabfc77186645abe2d248f53ebd7f4b4a/image2020-11-26_17-24-3.png?cb=8ae477f706f63bb663a9d2d135f7e095)  
![image2020-11-26_17-25-6.png](https://docs.appsanywhere.com/__attachments/a_0296ec2ceaff4c82ac90113854443283c58f75fbebf23ccb3971a35bd51cc2d5/image2020-11-26_17-25-6.png?cb=11a280be42bc0c0db7086244795ad0cb)

Click **Bind** to continue:  
![image2020-11-26_17-25-48.png](https://docs.appsanywhere.com/__attachments/a_d2cbc4b77663cc4e4f84bc3c5ec1ef232cd16ff79686b13ea18f9b5f1e4a5c35/image2020-11-26_17-25-48.png?cb=2852ccacb78ccfb6ef84bbb7dd026b9b)

Click **Done** at the bottom of the page to complete the process:  
![image2020-11-26_17-41-27.png](https://docs.appsanywhere.com/__attachments/a_2a4cff38c2846e0191de12cc8d0a1aeda9b5a2c61048ee7811e1c6b7ef84ab91/image2020-11-26_17-41-27.png?cb=50a2994d8d4d52e21c38c78e15b28452)

#### Create a Virtual Server

To create a Virtual Server, select **Virtual Servers** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-11-26_14-16-18.png](https://docs.appsanywhere.com/__attachments/a_63caee0e065515af35875fcdfe495ae7c94502331a0eb49f54c26def4c3d81a9/image2020-11-26_14-16-18.png?cb=3788301c9b3b4b1ee10cbb25f90f6f5d)

Click **Add** to create a new Virtual Server:  
![image2020-11-26_14-17-29.png](https://docs.appsanywhere.com/__attachments/a_4a136ae20078d430b3a48daea66c509051aa4c6c1309982be6239434dc4de27a/image2020-11-26_14-17-29.png?cb=4e25c9146b6765a6e7118cf48e80364e)

Specify the Name or the Virtual Server, select **SSL** from the protocol list and specify the IP Address the Virtual Server will listen on. Click **OK** to continue.  
![image2021-1-6_17-54-15.png](https://docs.appsanywhere.com/__attachments/a_a1471183f3c78f60da47b80143684c3f6bc490dabae62137b66185edaaaf1251/image2021-1-6_17-54-15.png?cb=c1190acfe9e6e22056928c555778235a)

Click the **No Load Balancing Virtual Server ServiceGroup Binding** item under the **Services and Service Groups**section:  
![image2021-1-6_17-56-18.png](https://docs.appsanywhere.com/__attachments/a_eaf628064f86b8adcea28f3a97d0338a7867af6f53fdcf222bc9bf431044b754/image2021-1-6_17-56-18.png?cb=d2f184e5f4e2cd0eb315105765f56a5a)

Click the "\>" icon next to the **Select Service Group Name** option, select your existing Service Group and click **Select**to continue:  
![image2020-11-26_14-23-20.png](https://docs.appsanywhere.com/__attachments/a_850dfadbd1a14eb77d1bae36ebef70b16bc098870cc46a4917ea4cfd1b044e64/image2020-11-26_14-23-20.png?cb=6e33ba22437b13aa19058fe62ec182ed)  
![image2021-1-6_17-57-26.png](https://docs.appsanywhere.com/__attachments/a_a2d95aac82830df0fc292a65c5b39dac21ef70d82812d5220a3ee647c650d6e4/image2021-1-6_17-57-26.png?cb=ccbeb2a64a6f4259fa03a208e14abfbf)

Click **Bind** to continue:  
![image2021-1-6_17-58-54.png](https://docs.appsanywhere.com/__attachments/a_85a9a5bde9066626d32ed7ca9792a95b8d4016e3e08e868f5e0f735a4726a7e5/image2021-1-6_17-58-54.png?cb=351ae432e07129d2ebfcdf44d6de5587)

Click **Continue**to proceed:  
![image2021-1-6_17-59-37.png](https://docs.appsanywhere.com/__attachments/a_1d522a265fbb10f8bf824471b6c8a44157d420d938db245148159a0a3207eef8/image2021-1-6_17-59-37.png?cb=812b36eebe6619086df2aa322eba6874)

#### Add a Certificate

Click the **No Server Certificate** entry under the **Certificate** section:  
![image2021-1-6_18-0-28.png](https://docs.appsanywhere.com/__attachments/a_6a641184157bde358cb9ef01f0c89538147d3b9d094dbc7f5ba1c46e513cece4/image2021-1-6_18-0-28.png?cb=eddc9f2e0240597aa03f155d7e9b057b)

Click the "\>" icon next to the **Select Server Certificate** option, select your existing Server Certificate and click **Select**to continue :  
![image2020-11-26_15-2-22.png](https://docs.appsanywhere.com/__attachments/a_a27d767d1c1d964bd912632b1f76745edf515e26d7015f5582f0e752f36f3374/image2020-11-26_15-2-22.png?cb=b739b37844b09a498f5b83ea08cfc7ca)  
![image2020-11-26_15-4-32.png](https://docs.appsanywhere.com/__attachments/a_20a7c19fcacadf4504b9211cd370b34c86277025685c8bd349eb6f183a543db7/image2020-11-26_15-4-32.png?cb=d9f8e3ef34613fbfd8395d5a303d43f2)

Click **Bind** to continue:  
![image2020-11-26_15-6-17.png](https://docs.appsanywhere.com/__attachments/a_2625f233ac561832143c1660601c507fc2119f5dd2e900c5c59041da9bfd4e1a/image2020-11-26_15-6-17.png?cb=d1b84e7a8c90085ed37dde70a4a9f051)

Click **Continue:**  
![image2021-1-6_18-1-29.png](https://docs.appsanywhere.com/__attachments/a_c8047f283d3ce713f0362a38a3984b64c8be29eb8ccc9aa7c5bfff60689eaf2c/image2021-1-6_18-1-29.png?cb=2888875f08d8891bab88bb6c3e1356fe)

#### Configure Persistence

Select **Persistence** from the **Advanced Settings** menu on the right-hand side of the page:  
![image2021-1-6_18-2-17.png](https://docs.appsanywhere.com/__attachments/a_2a027ecda7c389f704be7d79a5f3e465e17fb2e96d773ccd59e5fcc220cc64ff/image2021-1-6_18-2-17.png?cb=2de2c8b9e65009fc3fc3235af9747637)

Select **SOURCEIP** under the **Select Persistence Type** section, click **OK**to continue:  
![image2020-11-26_15-9-16.png](https://docs.appsanywhere.com/__attachments/a_bfc4fee9096d28f98a5cec7c986cb0abec620a4ec0ca2d146196b3638b635d8c/image2020-11-26_15-9-16.png?cb=da031e1699260dd4ef08b596602af013)

Click **Done** at the end of the page to complete the Virtual Server creation:  
![image2021-1-6_18-4-4.png](https://docs.appsanywhere.com/__attachments/a_bbd5f2caca30b679a2ff1509fe4001f47b9a4180018b96b8b5c5c29e1d89e71c/image2021-1-6_18-4-4.png?cb=eb2648cd3b13911ae33634b5da1914f7)

The new Virtual Server will not appears in the **Virtual Servers** list:  
![image2021-1-6_18-4-51.png](https://docs.appsanywhere.com/__attachments/a_a4d66872d0afb6f304e4aab68fb744989b984646c2c3e095890d4f044ee6231a/image2021-1-6_18-4-51.png?cb=94da7e39084c564830efe9de63f48d66)

### Parallels RAS Gateway Servers

The following Server, Monitor, Service Group and Virtual Server configurations can be used with the Parallels RAS Gateway servers.

#### Add Servers

To add the Parallels RAS Gateway server details so they can be used with a virtual server and service group, login to the Citrix Netscaler / ADC interface and select **Servers** from the **Traffic Management** **-\> Load Balancing**section:  
![image2020-10-29_17-14-12.png](https://docs.appsanywhere.com/__attachments/a_3824fc2572a0362b2d2d205b5f944b634b8ae8188bdb224e67c2da362c9ad304/image2020-10-29_17-14-12.png?cb=b1e11b9ed64faef3c17944486349bfb7)

Click **Add**to defined an entry for your Parallels RAS Gateway server. This process will need to be completed for each individual server:  
![image2020-10-29_17-18-40.png](https://docs.appsanywhere.com/__attachments/a_728d0d1c93ac477e47dce40f84442234c548e6d880f95bd577996e7e4e9c1fbc/image2020-10-29_17-18-40.png?cb=f31d4a927907dbbc5229657661cb19c5)

Specify the required name and IP address of your Parallels RAS Gateway server and click **Create** to add the entry:  
![image2021-1-7_11-18-7.png](https://docs.appsanywhere.com/__attachments/a_10ddb3775d70c0300f1eba594de563d2cf31be2e582854acf35473d8ffc8dcae/image2021-1-7_11-18-7.png?cb=f730d9f52672b62a6586713fb37167c9)

For example:  
![image2021-1-7_11-19-54.png](https://docs.appsanywhere.com/__attachments/a_c5adc54a04cdef1d6b130cb167f8f1830f9633cc3c102a161c2be7a64374bea3/image2021-1-7_11-19-54.png?cb=d4850354d60b765ffb31af8592283362)

#### Add a monitor

To add a service monitor, select **Monitors** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-10-29_17-26-45.png](https://docs.appsanywhere.com/__attachments/a_54690703a2ccc59fc15ff809c1b921721b98348db184b3a0bb2a69431077a7db/image2020-10-29_17-26-45.png?cb=e1f4c0130e38caec4fa6aac0e3dd283c)

Click **Add**to create a new monitor.  
![image2020-10-29_17-28-1.png](https://docs.appsanywhere.com/__attachments/a_26a4a8f349d3ede8ee49d1673ff6c4b12d1bd228af39ade918bb3570d3ab472c/image2020-10-29_17-28-1.png?cb=59e5769abe5fbc1b1e4b01ee6af4f586)

Specify a name for the monitor and click the "\>" icon to select the monitor type.  
![image2021-1-7_11-22-4.png](https://docs.appsanywhere.com/__attachments/a_c47ee68d5e6452d673ef97a60ae481d670f0e124f8ae6014a7586efb5fcfc1da/image2021-1-7_11-22-4.png?cb=e4c4768b224e827e5f1ab7477cb07e9a)

Choose **TCP** and click **Select.**  
![image-20231005-152333.png](https://docs.appsanywhere.com/__attachments/a_62a80431c46d9db29455d68112cf12e3e0d4786fb1c63e68b0aba79c251ab212/image-20231005-152333.png?cb=a81a08e23ceb1baa5d734a104e503cfd)

Set

* Interval = 30 seconds

* Response Time-Out = 10 seconds

Enable the **Secure** option.  
![image-20231005-152435.png](https://docs.appsanywhere.com/__attachments/a_9f1e37d66147f3e3a06ac15bf4c9dcbd0ef49db5725049ec932295bdf0d5feff/image-20231005-152435.png?cb=d7dc9b6fb3cd8ed8119f0af1b7042e6f)

Click **Create** to add the monitor.  
Other options can be adjusted if required.

#### Create a Service Group

To create a service group containing the Parallels RAS Gateway servers, select **Service Groups** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-11-26_13-40-47.png](https://docs.appsanywhere.com/__attachments/a_af58841c6910590401c28e35e89ea0aa399efaeaf611b0bee629b4bd4492d2ec/image2020-11-26_13-40-47.png?cb=41f479686e945cf8196e5349161fb96b)

Click **Add** to create a new Service Group:  
![image2020-11-26_13-42-12.png](https://docs.appsanywhere.com/__attachments/a_3d130473d8c001372c92dbd70f47f5770a1f3e802919ed7abb8eba3a228fdd76/image2020-11-26_13-42-12.png?cb=e6ab7dc6b15bc487d50fb5c91ddc7202)

Specify the Name or the Service Group and select **TCP** from the protocol list. Click **OK** to continue.  
![image2021-1-7_14-10-12.png](https://docs.appsanywhere.com/__attachments/a_84f4dfbb2d396f83f4bba9a00b13669d56ceed8b7d5097b3779b160451a516d8/image2021-1-7_14-10-12.png?cb=22b8949ce9554ea91a96079a0ce1d362)

Click the **No Service Group Member** item under the **Service Group Members**section:  
![image2021-1-7_14-14-47.png](https://docs.appsanywhere.com/__attachments/a_270cf0488d84cde79ac7bda15dd1c42152bf04a9999d6c53badf53511136c917/image2021-1-7_14-14-47.png?cb=d2d4e647aeed99f0f2ffae5bae5020ad)

Select the **Server Based** option on the **Create Service Group Member** page:  
![image2020-11-26_13-48-30.png](https://docs.appsanywhere.com/__attachments/a_f303321b05ce20d15fe6e6df378c52fc39eeceae41a8bae25a24ed4fcaeaca97/image2020-11-26_13-48-30.png?cb=d13faa104c589caf1037354ea8b6d4e3)

Click the "\>" icon next to the **Select Server** option, select your existing Parallels RAS Gateway servers and click **Select**to continue:  
![image2021-1-7_14-15-52.png](https://docs.appsanywhere.com/__attachments/a_6d067a04611b25238b281ed9bb69eea36707c12d17daf2f233ce01c89f918057/image2021-1-7_14-15-52.png?cb=5404f344720cdcf8d86ee994a4440925)

Enter **443** in the Port number field and click **Create** to continue:  
![image2021-1-7_14-19-16.png](https://docs.appsanywhere.com/__attachments/a_a5de957461fc16f003c91dad45403e0177ad2238987edee6620963348c6df2a1/image2021-1-7_14-19-16.png?cb=55555624496540a5af5e6cf478ff8c00)

Click **OK** under the **Service Group Members** section to continue:  
![image2021-1-7_14-19-54.png](https://docs.appsanywhere.com/__attachments/a_14573164702bf84058817a856c77b503efc1c6215a2a6b88acbd1282a84893a2/image2021-1-7_14-19-54.png?cb=b6503cad90728b4ffbc1321386429c0d)

Select **Monitors** from the **Advanced Settings** menu on the right-hand side of the page:  
![image2021-1-7_14-22-27.png](https://docs.appsanywhere.com/__attachments/a_17297b864ba156eeafbc34027767eee761b293c3b62faf000963f675725057fa/image2021-1-7_14-22-27.png?cb=9d7e2d97420afb976691bf2d918bd152)

Click the **No Service Group to Monitor Binding** item under the **Monitors**section:  
![image2021-1-7_14-23-19.png](https://docs.appsanywhere.com/__attachments/a_c805fa542d9d2a6bed9ded93d44502f128f539f5e9f560ba68b6289db10ed8f9/image2021-1-7_14-23-19.png?cb=7619dcd2cdd9261b8a7b631807b357ac)

Click the "\>" icon next to the **Select Monitor** option, select the Monitoring service created in the previous step and click **Select**to continue:  
![image2020-11-26_17-24-3.png](https://docs.appsanywhere.com/__attachments/a_2dc97b81d353fc5c31dd9accaff805dfabfc77186645abe2d248f53ebd7f4b4a/image2020-11-26_17-24-3.png?cb=8ae477f706f63bb663a9d2d135f7e095)  
![image2021-1-7_14-26-6.png](https://docs.appsanywhere.com/__attachments/a_01e1ddeb6f46cec394dc3eaf1568cd3605b4a37b96c5cc3d39236b64782fce4b/image2021-1-7_14-26-6.png?cb=8a331eaf60157c6d88bbf358ee9c7ae6)

Click **Bind** to continue:  
![image2021-1-7_14-26-45.png](https://docs.appsanywhere.com/__attachments/a_a0590d34673bb36cfe02cbfd69f137000dc96733bb10be9f641552be984ad4c9/image2021-1-7_14-26-45.png?cb=bddc3ea8d31f82577ceeaffbed1917cb)

Click **Done** at the bottom of the page to complete the process:  
![image2021-1-7_14-27-34.png](https://docs.appsanywhere.com/__attachments/a_3ca52447a9567cf18a9818ff8937c9d5573efc11845ecfc9345faaf51160e5a2/image2021-1-7_14-27-34.png?cb=a4eb0e91072e4ac4d14996d2766d5dbf)

#### Create a Virtual Server

To create a Virtual Server, select **Virtual Servers** from the **Traffic Management** **-\> Load Balancing** section:  
![image2020-11-26_14-16-18.png](https://docs.appsanywhere.com/__attachments/a_63caee0e065515af35875fcdfe495ae7c94502331a0eb49f54c26def4c3d81a9/image2020-11-26_14-16-18.png?cb=3788301c9b3b4b1ee10cbb25f90f6f5d)

Click **Add** to create a new Virtual Server:  
![image2020-11-26_14-17-29.png](https://docs.appsanywhere.com/__attachments/a_4a136ae20078d430b3a48daea66c509051aa4c6c1309982be6239434dc4de27a/image2020-11-26_14-17-29.png?cb=4e25c9146b6765a6e7118cf48e80364e)

Specify the Name or the Virtual Server, select **TCP** from the protocol list, specify the IP Address the Virtual Server will listen on and enter **443** as the port number. Click **OK** to continue.  
![image2021-1-7_15-10-51.png](https://docs.appsanywhere.com/__attachments/a_57f33979d9c3a98afd84836238d6745fe33fdb1d32ea7b10348ff2ccded29a2f/image2021-1-7_15-10-51.png?cb=05d70d04a62be44ff95376a49778430a)

Click the **No Load Balancing Virtual Server ServiceGroup Binding** item under the **Services and Service Groups**section:  
![image2021-1-7_15-8-53.png](https://docs.appsanywhere.com/__attachments/a_704b64d0e47713c99bcc89ed03f8ce976f1a32cc09e3c17b034db3037e7aac13/image2021-1-7_15-8-53.png?cb=79b2833f3b4a799d5c062b20d3c2f3bc)

Click the "\>" icon next to the **Select Service Group Name** option, select your existing Service Group and click **Select**to continue :  
![image2020-11-26_14-23-20.png](https://docs.appsanywhere.com/__attachments/a_850dfadbd1a14eb77d1bae36ebef70b16bc098870cc46a4917ea4cfd1b044e64/image2020-11-26_14-23-20.png?cb=6e33ba22437b13aa19058fe62ec182ed)  
![image2021-1-7_15-11-53.png](https://docs.appsanywhere.com/__attachments/a_e8ee2ba98dca7308740d8a1c62cde00ee156577fe8860e70d9a1a5af10cd9a2c/image2021-1-7_15-11-53.png?cb=d4381d75219e9545e19d829092cf74e9)

Click **Bind** to continue:  
![image2021-1-7_15-12-33.png](https://docs.appsanywhere.com/__attachments/a_b9310a17336dd8b9df3741492ee9bc45c6c2116efb61b38dd8788b70970caf4a/image2021-1-7_15-12-33.png?cb=be6dbf8729ca66bd5211471cf9da292c)

Click **Continue**to proceed:  
![image2021-1-7_15-13-8.png](https://docs.appsanywhere.com/__attachments/a_d7c4679fd290013ea84c7d748433f747702f93bbfa34c6c2bf1a2b2744852925/image2021-1-7_15-13-8.png?cb=783c9dd46e878b586fb100e44b834451)

#### Configure Persistence

Select **Persistence** from the **Advanced Settings** menu on the right-hand side of the page:  
![image2021-1-7_15-14-51.png](https://docs.appsanywhere.com/__attachments/a_9304d7c0ea4f465b8aaa27e659fef1984a5b0a9cfc1b797eb6abb7d5778520fa/image2021-1-7_15-14-51.png?cb=0d1044b00184057a561453e221cce5cb)

Select **SOURCEIP** under the **Select Persistence Type** section, click **OK**to continue:  
![image2021-1-7_15-16-21.png](https://docs.appsanywhere.com/__attachments/a_327229f61d8a76b3407ec14828d97ebb958ec6de1a057308166589488a84700d/image2021-1-7_15-16-21.png?cb=4fa0c02e3ec3539e385b4ed1ace43332)

Click **Done** at the end of the page to complete the Virtual Server creation:  
![image2021-1-7_15-23-25.png](https://docs.appsanywhere.com/__attachments/a_95d616261dff47c634cc7b7742736012947f4e46844d0f4210b98f4d5deefc1b/image2021-1-7_15-23-25.png?cb=e1a06c2085ed8bebfcf7fcbd9dc00183)

The new Virtual Server will not appears in the **Virtual Servers** list:  
![image2021-1-7_15-24-29.png](https://docs.appsanywhere.com/__attachments/a_dd9de1c5bb67aaf6811d5d8d456b4232269942b101facdec890480362f491058/image2021-1-7_15-24-29.png?cb=6901bfbed52729f58b0b863cc3049460)

### Additional Considerations

The following additional configurations may be required:

* If content switching is configured and used for the AppsAnywhere and/or Cloudpaging Admin/License services, an additional content filtering rule/property must be added which include the port number with the URL/hostname. E.g.

      HTTP.REQ.HOSTNAME.CONTAINS("appsanywhere.uni.edu")||HTTP.REQ.HOSTNAME.CONTAINS("appsanywhere.uni.edu:443")

* If required, combine Cookie insert can be used to persist the use to the same node. Reference: <http://support.citrix.com/article/CTX124630>

* Parallels RAS Only:

  * Websockets WS and WSS should be allowed. Reference: <https://support.citrix.com/article/CTX235401>

---
version: "3.6"
language: "en"
---
# Citrix Virtual Apps and Desktops

## Overview

Citrix Virtual Apps and Desktops provides virtualization solutions that give IT control of virtual machines, applications, and security while providing anywhere access for any device. End users can use applications and desktops independently of the device's operating system and interface. In this section, we describe how AppsAnywhere utilizes Citrix to cover more app delivery scenarios.

Once AppsAnywhere is connected to your Citrix environment, you are ready to start delivering resources. The following articles will help you add delivery methods in AppsAnywhere:  
* [Adding a Citrix environment](https://docs.appsanywhere.com/appsanywhere/3.6/adding-a-citrix-environment.md)
* [Configuring a Citrix environment for Cloudpaging](https://docs.appsanywhere.com/appsanywhere/3.6/configuring-a-citrix-environment-for-cloudpaging.md)

---
version: "3.6"
language: "en"
---
# Client Settings

## Overview

The problem with bringing together a wealth of different delivery methods is that each delivery technology tends to come with its own client to install on the target device, with AppsAnywhere itself being no exception! If we were to expect the user to install all of the clients that were required themselves and keep them all up to date then the support team would be inundated with requests for help. To remove this burden from the user, we have built AppsAnywhere to completely automate the version control for all third-party clients and update itself as and when required; we call it "Advanced Client Management".

This functionality basically allows you, as the administrator, to define exactly which clients you want to be installed on the user's device and which versions you want them to be using. AppsAnywhere and the AppsAnywhere Client handle the rest.

## What's Included?

At the moment, the advanced client management includes the AppsAnywhere Windows Client (and its associated updater app), the AppsAnywhere Mac Client and all of the third-party clients required by the delivery technologies AppsAnywhere is currently integrated with. As it currently stands, this includes:

* Cloudpaging Player (Windows)

* VMware Horizon (Windows)

* VMware Horizon (macOS)

* Parallels Client (Windows)

* Parallels Client (macOS)

* Microsoft Remote Desktop client (Windows)

  * ***Note:*** *When the Microsoft Remote Desktop version is set to* ***2.x.x or later*** *, the* ***Windows App*** *is deployed instead of the classic* ***Remote Desktop*** *client.*

* Microsoft Remote Desktop client (macOS)

## How does it work?

At AppsAnywhere HQ, we store a central repository of each version of every client that is managed by the system. The information relating to which clients are available is then made available to each AppsAnywhere installation via a global API. When you visit the **Client Settings** in page in AppsAnywhere, AppsAnywhere contacts the central API and retrieves the latest version information for each product. Each product is then listed on the page shown below and the most recently released version is shown on the far right-hand side, along with an indication of whether or not you are using that version.  
![CleanShot 2022-03-28 at 16.35.01.png](https://docs.appsanywhere.com/__attachments/a_d0a60a06664363641dd6724fbf77a2e88110ff3b461a71d0529f05cd2eb2d266/CleanShot%202022-03-28%20at%2016.35.01.png?cb=4f276034f002632342b5932f82d7d638)

You then have the ability to choose which version you wish to be used with your installation.

Setting the Current Version to the latest release will allow new students and new installations to receive that version. It will not force managed devices already running a version that meets or exceeds the configured Minimum Version to upgrade.

You may receive a warning message when making changes, which is intended to highlight the potential impact of changing client settings across the environment. The setting that determines whether an existing client requires an upgrade is the Minimum Version. You can then leave the Minimum Version unchanged until you are ready for any devices below that version to be upgraded.

As an example, if the Current Version is set to 3.0 and the Minimum Version is 2.2:

* A device running version 2.6 is already above the minimum and will remain on 2.6.

* If the Minimum Version is increased to 2.5, that device will still remain on 2.6.

* If the Minimum Version is increased to 2.7, the device will need to upgrade and will be taken to the Current Version, 3.0.

* A new installation will receive the Current Version, 3.0

You then have the ability to choose which version you wish to be used with your installation.

### Current Version

The version you select as the "Current Version" is the one you wish to be deployed to your end users if they haven't already got that particular product. When you select a new current version, AppsAnywhere will download the installers for that version of the product and save them to the public/downloads folder on your server so that the client can download it, as required, from your AppsAnywhere server. If you have more than one AppsAnywhere server setup then AppsAnywhere will also instruct those other servers to do the same so that the file is available from all servers (See Server Clustering).

### Minimum Version

The version you select as the "Minimum Version" dictates at what point a user will be upgraded if they already have a version of the product installed. The AppsAnywhere client will compare the installed version of each product to the minimum version set and if the installed version is older than the minimum it then it will upgrade the product to the "Current Version". Changing this value could potentially result in all of your users being upgraded to the Current Version.

### Pre-Deployment

For each third-party client, you can decide whether or not you want it to be installed by default when the user installs AppsAnywhere.

* With the **Pre-Deploy checkbox** **Checked**

  * The product will be installed straight after the AppsAnywhere client installation completes (as AppsAnywhere initializes for the first time) ready for the first time someone wishes to use an app that requires that client

* With the **Pre-Deploy** **checkbox** **Un-Checked**

  * The product will be installed the first time the user tries to launch an app that requires it

There is an obvious trade-off between slowing down the initial installation time and not delaying the user when they launch an app for the first time. You should consider which third-party clients your users are most likely to require and consider these for pre-deployment whilst maybe leaving those that are less likely to be used to be installed when required.

### What will the End User See?

Whichever way you intend to update the AppsAnywhere the process will look similar to the below for the end user.

In this example the end user has the 1.3.8 version of the client installed on their device:  
![image-20240301-120239.png](https://docs.appsanywhere.com/__attachments/a_a1621b0689d758c7131da10b0ada3cbe6c7d2776bbdbe3d7d371bffa462e6767/image-20240301-120239.png?cb=3681388a6888e2b4ee910d70f80b4760)

If an administrator changes the 'minimum version' in the dropdown menu to the latest version available in this case 2.0.2 the administrator will receive the following prompt to confirm the changes.

![image-20240301-120323.png](https://docs.appsanywhere.com/__attachments/a_f7d5899f80750decdc3d5782ab31b7fa0f451cc172942675f4df3c1847d4e2bb/image-20240301-120323.png?cb=4f27d1944a48cf9f13483265d14d74cf)  
![image-20240301-120417.png](https://docs.appsanywhere.com/__attachments/a_b6ed86a3ce00e43c6e74cf6294e8bd6faf3bbdac0fff13605527727ce9e5da87/image-20240301-120417.png?cb=1cd7ade31d35c45ac87ae7b693f94814)
This is a warning that all end users will be affected by this change.

Select continue to proceed with this change.

The next time the end user logs into AppsAnywhere the new client will be pushed out depending on the client install suppression settings. [See Client Install Suppression settings.](https://docs.appsanywhere.com/appsanywhere/general-settings)

See the older 1.3.8 version of the AppsAnywhere client updating to the new 2.0.2 version.

![image-20240301-120618.png](https://docs.appsanywhere.com/__attachments/a_37e1c07bdfbb2e4037cc8fea8d8ade5f7f4cb3a2dcdc89002e731371c0589904/image-20240301-120618.png?cb=f95c4a8ec8eedcb4d2375a1dab840905)  
![image-20240301-120627.png](https://docs.appsanywhere.com/__attachments/a_b354945e06af1daaa27b49aabb585987047c763b5d7fc1aa51cdc15f659b96c4/image-20240301-120627.png?cb=efc58506040ecc8fd82d86889edd8878)  
![image-20240301-120646.png](https://docs.appsanywhere.com/__attachments/a_0bd52ccbb1db3128d2116dbb32d40b6a7953400d0e27d14f5e33102184d1ba77/image-20240301-120646.png?cb=894fdb3691c271a513072f307167973f)

Once the installation has completed the end users should then be able to re validate and continue using AppsAnywhere.

## Syncing Between Servers

Whenever a change is made on the client settings page, AppsAnywhere instructs all other servers in the cluster (defined under **Environments** \> **AppsAnywhere** **Servers**) to apply the same update. If you have changed the current version of a client, this will have resulted in that version being downloaded from the Software2 CDN to the server on which you made the change. Once the server has the file, it will instruct each of the other servers to download that file from the initiating server so that it exists on all servers and is available for download. Each of the other servers in the cluster will download the file from the initiating server using its defined hostname over HTTP.

## When do updates happen?

### Self-updates

#### Windows client

Upgrades to AppsAnywhere are performed by the Updater Scheduled task, which runs at a random time each day.

#### macOS client

Upgrades to AppsAnywhere are performed by the Launch Agent, which runs at a random time each day.

### Third-party client updates

#### Client version 1.x

* With the **Pre-Deploy** **checkbox** **Checked**

  * Updates for the third-party client will be installed when the AppsAnywhere client starts

    * either at logon or;

    * The first time AppsAnywhere is used for each login session

* With the **Pre-Deploy** **checkbox** **Un-Checked**

  * Updates for the third-party client will be installed the next time the user tries to launch an app that requires that client

#### Client version 2.x (Client v2.0.0 and above)

* With the **Pre-Deploy** **checkbox** **Checked**

  * Updates for third-party clients will be installed automatically in the background when they are not running

  * The client checks for new third-party client updates once every 24 hours

  * If the third-party client is running then the update is retried every hour until it is installed

    * If a newer version of the third-party client is available when the next update check occurs, the newer version will be installed

* With the **Pre-Deploy** **checkbox Un-Checked**

  * Third-party client updates will be installed the next time the user tries to launch an app that requires that client

---
version: "3.6"
language: "en"
---
# Cloud Delivery

This feature requires Cloud Delivery.

## Overview

Cloud Delivery is our brand-new AppsAnywhere-managed delivery method. You can now launch Windows apps on a non-Windows device and provide apps on under-powered Windows devices, without the need for you to set-up and manage your own VDI (virtual desktop infrastructure).

When logged into AppsAnywhere as a System Admin, you gain a deeper oversight into Cloud Delivery usage with a real-time view of all active sessions across users. With session controls you can manage concurrency more effectively, by being able to identify and manually end sessions for troubleshooting and to provide a more seamless experience to end users.

Keeping applications up to date is critical for performance, compatibility and security. System Admins can see a list of the AppsAnywhere Library apps that have newer version available for Cloud Delivery. A notification will appear directly on the dashboard to alert you when there are updates available, ensuring no important change goes unnoticed.

## Managing Cloud Delivery

For information on how to manage and view sessions and session data, see the following articles in this section:  
* [Cloud Delivery - Sessions](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-sessions.md)
* [Cloud Delivery - Reports](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-reports.md)

For information on how to set up the Cloud Delivery delivery methods, see the following articles:

* [AppsAnywhere Cloud Delivery Delivery Method](https://docs.appsanywhere.com/appsanywhere/3.6/appsanywhere-cloud-delivery-delivery-method.md)

---
version: "3.6"
language: "en"
---
# Cloud Delivery - Reports

This feature requires Cloud Delivery.

## Overview

Cloud Delivery reporting tools are available to **System Admin** users when Analytics is enabled on the appliance. The reports are generated automatically and are updated daily. You can view session counts, concurrency limits, session durations, total usage hours, and unique users. These metrics support smarter resource planning, license management, and strategic decision-making across IT operations---ensuring efficient and data-driven app delivery. These reports can be seen for every Cloud Delivery environment and between a start and end date.

## Viewing Cloud Delivery Reports

1. Make sure that Analytics is Enabled on your appliance

2. Log into AppsAnywhere as a **System Admin**user

3. Click on **Admin** in the user menu to access the AppsAnywhere admin portal

4. On the navigation menu on the left of the page, go to **Cloud Delivery → Reports**

This will show a page with Concurrency and Usage figures for a certain environment in a date range. You can change the Environment you want to look at with the drop down menu at the top of the page, as well as change the start date and end date using calendar date pickers.  
Dates cannot be in the future or more than 12 months in the past

### Concurrency

Concurrency data is gathered automatically when the page is opened or refreshed. The last date that data was gathered is also shown.

Concurrency reports contain 2 figure that are outlined below.  
![image-20250729-111111.png](https://docs.appsanywhere.com/__attachments/a_e6e940dc488cf01334c00394fbb0572a77cf0e41371b95c232e2af079aab37e1/image-20250729-111111.png?cb=d10bcbc55daa24fee1b9532e7d3a43e0)  

|            **Metric**            |                                                                               **Description**                                                                               |
|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Max concurrency                  | For the chosen environment, between the dates selected, the max number of sessions that were running at the same time                                                       |
| Number of concurrency limits hit | For the chosen environment, between the dates selected, the number of times a user tried to start a session but was rejected due to concurrency limit already being reached |

### Usage

The usage reports automatically gather data every night, which can then accessed when the reports screen is next visited. The reporting shows the last date that the data shown was updated. As the gathering of data happens every night, there could be up to 24 hours since the data was last updated.  
If you think that the data should have been retrieved after this date please contact support

Usage reports contain 3 figures that are outlined below.  
![image-20250729-103257.png](https://docs.appsanywhere.com/__attachments/a_321ce50fe6d2a3c56459c4d1109f9945f1a762877e429af3f74a75d351e2a90b/image-20250729-103257.png?cb=967dcfe54d3de737c74bd699301a3a1f)  

|         **Metric**          |                                                                        **Description**                                                                         |
|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Average duration of session | For the chosen environment, between the dates selected, the average length of a [session](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-sessions.md)                        |
| Total session duration      | For the chosen environment, between the dates selected, the total time that users have been in a [session](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-sessions.md).      |
| Unique users                | For the chosen environment, between the dates selected, the number of unique users that have opened a [session](https://docs.appsanywhere.com/appsanywhere/3.6/cloud-delivery-sessions.md). |

---
version: "3.6"
language: "en"
---
# Cloud Delivery - Sessions

This feature requires Cloud Delivery.

## Overview

When a user launches an application via an **AppsAnywhere Cloud Delivery** delivery method it creates a session. **System Admin**users gain more visibility and control over Cloud Delivery sessions. You can monitor and end active sessions from the admin portal. These new controls support better license management, prevent session conflicts, and provide smoother software access across the institution.

## Viewing Session Information

1. Log into AppsAnywhere as a**System Admin** user

2. Click on **Admin** in the user menu to access the AppsAnywhere admin portal

3. On the navigation menu on the left of the page, go to **Cloud Delivery → Sessions**

This will show a list of sessions and the last time the data was refreshed. The data can be refreshed again, but only every 30 seconds. You can use the search box in the top left of the table to quickly search for a session.

From this page you can:

* Click the **Expire** button next to a session to expire that session

Expiring a session will result in the user losing access to that session and closing it if they are currently using it.  
Expired session may appear in the session list for up to 2 days past the date they were expired, until the system cleans up old sessions.

### Columns

A description of each column in the table containing the list of sessions is given below.  
![image-20250728-145550.png](https://docs.appsanywhere.com/__attachments/a_f9d5d3cc6ffeb972e70d5b75ed1744789ae862df4db666b5f0471552f541ae4f/image-20250728-145550.png?cb=162e68b6c3a608594f70299cc5f584f3)  

|    **Name**    |                                         **Description**                                          | **Default State** |
|----------------|--------------------------------------------------------------------------------------------------|-------------------|
| Session ID     | Id of the session (useful for support if there is a problem)                                     | Hidden            |
| Environment ID | Id of the environment used to launch the session from (useful for support if there is a problem) | Hidden            |
| Environment    | The Cloud Delivery environment used to launch the session from                                   | Visible           |
| Status         | The status of the session; Pending, Active, Expired or Error                                     | Visible           |
| User ID        | Id of the user that launched the session (useful for support if there is a problem)              | Hidden            |
| Username       | The AppsAnywhere username for the used who launched the session                                  | Visible           |
| Connected      | If this session is currently open in a browser tab                                               | Visible           |
| Start date     | The date and time that the session was started                                                   | Visible           |
| Started ago    | How long ago the session was started                                                             | Visible           |
| Valid until    | The date and time when the session will be available until                                       | Visible           |

---
version: "3.6"
language: "en"
---
# Cloudpaging Delivery Method

## Overview

There are many different ways in which an application can be delivered to an end-user and which one you choose to use could depend on a number of factors such as the type of device they are using, who owns the device or where they are physically located, as a few examples. The Cloudpaging delivery method is available to all Windows devices and allows the on-demand delivery of any Windows application to any Windows device in a controlled, virtualized manner. This gives the administrator full control of how, when, and where the application is used and has the power to revoke access to that application at any time.

## Before you start

All delivery methods share some basic, common settings that you will need to understand before continuing. Make sure you have read the [Common Delivery Method Settings](https://docs.appsanywhere.com/appsanywhere/3.6/common-delivery-method-settings.md) article before continuing.

Once you understand the common settings and how they work, you can go to the application you want to manage:

1. From the AppsAnywhere admin portal, in the navigation menu, go to **Applications** \> **Applications**, or search for Applications or related terms

2. **Click Edit** next to the application you wish to manage

## Creating the delivery method

Adding a new delivery method:

1. On the application management page, select the **Delivery Methods** tab

2. Under the list of current delivery methods, you will see the **Add New Delivery Method** section

3. Select **Cloudpaging** from the Delivery Method dropdown

4. Click **Add Delivery Method**

5. The form for adding a new Cloudpaging delivery method will then load up on the right-hand side

6. Complete the required details (described below)

7. Set the Operating System Compatibilities and the Restrictions for your delivery method

8. Click **Save**

When using Parallels RAS, the delivery method must be set with Windows Server OS compatibility (so it runs on the RDSH servers)

If the save was successful, you will see the form replaced with the following message and your new delivery method will be added to the bottom of the list on the left-hand side  
![image2017-1-16 13:37:28.png](https://docs.appsanywhere.com/__attachments/a_a615cc2c45272eb9fc62ead2cfa9cdb810ef66df01bf708099e62178d4fc76ce/image2017-1-16%2013:37:28.png?cb=e70959a7b19ccaedd6851ca1174c7707)

If there were any errors with the data you entered, you will be prompted to correct these before you can continue.

## Delivery Method Fields

The following table describes each field and setting available for this delivery method, its intended value, and an example for each  

|          Field Name          |                                                                                                                                                                                                    Description                                                                                                                                                                                                    |                                                                                                     Intended Value                                                                                                     |                                                    Example                                                    |
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| Cloudpaging Environment      | The Cloudpaging Environment from which the application will be served                                                                                                                                                                                                                                                                                                                                             | The Cloudpaging Environment that the application package (.STP file) was uploaded to. Most customers only have one, as defined in **Cloudpaging** \> **Manage Cloudpaging Environments**                               | "Central Cloudpaging Environment"                                                                             |
| Application Name             | The application package that you wish to deploy. To assist you in locating the correct one, the dropdown shows you the application title (as defined in the Cloudpaging Admin UI) as well as the STP filename, relative to the repository                                                                                                                                                                         | Select the application package that you wish to deploy **See the section on 'Recently Added Packages' below for what to do if your package is not listed**                                                             | "7-Zip \[OpenSource\\7-zip.stp\]"                                                                             |
| Maximum Concurrency          | The maximum number of users that can run the application at the same time                                                                                                                                                                                                                                                                                                                                         | Tick the Unlimited check box if your software license is un-restricted, otherwise, enter the number of licenses you hold for this particular software title                                                            | Unlimited - For an open source app 250 - For an app you only hold 250 licenses for                            |
| Maximum Concurrency Per User | The maximum number of sessions a single user can hold for the same application                                                                                                                                                                                                                                                                                                                                    | Tick Unlimited if your Maximum Concurrency is Unlimited, otherwise you may wish to consider how many seats one user should be able to use, given that you only have a limited number available                         | Unlimited - For an app whose overall concurrency is Unlimited 1 or 2 - For an app with restricted concurrency |
| Is Exam-Compatible           | Allows you to label the delivery method as "exam-compatible", changing the API response from [Shared App Lists](https://docs.appsanywhere.com/appsanywhere/3.6/shared-app-lists.md) - Request Apps If you do not see this field present alongside the others on the page, this will be because the exam feature add-on of Shared App Lists is not enabled. See [Shared App Lists](https://docs.appsanywhere.com/appsanywhere/3.6/shared-app-lists.md) for more information. | When this is checked, the delivery methods in the Shared App Lists - Request Apps API response will be flagged as exam-compatible                                                                                      | Checked                                                                                                       |
| Prefetch All                 | Whether or not you want the Cloudpaging Player to download the full contents of the application package to the target device before launch                                                                                                                                                                                                                                                                        | This setting will be set by default when setting offline as enabled. It is required for all offline allowed applications to work. Other applications would not usually have this set as content is delivered on-demand | Unchecked                                                                                                     |

### Advanced

|          Field name           |                                                                                                                                                   Description                                                                                                                                                    |                                                                                                                                                                                                                                                                                                                                                    Intended value                                                                                                                                                                                                                                                                                                                                                     |              Example               |
|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| Offline                       | Whether or not the user is permitted to use the application without a network connection to the Cloudpaging servers Changing the value of **Offline** to **Allowed** will automatically set the **Prefetch All** option to **Checked**. Be sure to un-check this if this is not what you wanted it to be set to. | Allowed or Disabled, depending on whether or not you wish to allow users to take the application offline Unless you have a specific need for offline access, we recommend leaving this Disabled                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Disabled                           |
| Offline Duration              | The duration for which an application can be taken offline before the user must reconnect and renew their license (only applies when Offline Allowed is set)                                                                                                                                                     | The value set (in days) will be something you consider a compromise between inconveniencing users by having them re-connect to update their license and having licenses checked out when they may not be being used                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 7 days - a good default            |
| Deploy Version                | The patch version of the application that you wish to be used                                                                                                                                                                                                                                                    | If you have updated your Cloudpaging Package and applied a patch, you will have defined a patch version when you re-packaged the application in Cloudpaging Studio. Select the patch version you wish to use                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | No Patch                           |
| Valid License Duration (Days) | Indicates the period of inactivity after which a Cloudpaging license will no longer be usable                                                                                                                                                                                                                    | This really depends on the typical behavior of your users. If your users are likely to have an app in their Cloudpaging Player for long durations of time without launching it, you may need to extend this value to avoid unexpected problems                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Recommended: 30 Days               |
| Auto run?                     | Whether or not you want the application to automatically launch when it is virtualized on the target device                                                                                                                                                                                                      | For launching on-demand applications from AppsAnywhere, users would generally expect the application to open when they click **Launch**, so we recommend selecting this option                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Checked                            |
| Remove on expiration?         | Dictates whether or not Cloudpaging will allow an expired session to be re-authorized.                                                                                                                                                                                                                           | If this value is checked and you expire a user's app session (see: [Managing App Sessions](https://docs.appsanywhere.com/appsanywhere/3.6/managing-app-sessions.md)) then their app will be completely removed from the Cloudpaging player completely. If it is not checked, then Cloudpaging Player will attempt to re-authorize the session with AppsAnywhere, meaning if they are still provisioned that app, they will be able to continue using it                                                                                                                                                                                                                                                                                            | Recommended: Yes                   |
| Pre-fetch all?                | Specifies whether the associated application should be cached in its entirety upon being added to the Cloudpaging player.                                                                                                                                                                                        | Enable is option if you wish the full application to be cached on the user's machine when they launch the application. Note that the larger the application the longer this process will take, which will impact application launch time.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                    |
| Launch agent                  | Specifies which client to launch the application with, one of: * Cloudpaging Player (default) * AppsAnywhere Client                                                                                                                                                                                              | **Cloudpaging Player (default)** The Cloudpaging Player launches the app using the launch command specified in the Cloudpaging package. This default option is recommended for most applications, unless you have a specific use case as covered below. If the launch command is set as layer 4, this option must be used, and the other options are unsupported. **AppsAnywhere Client** The Appswhere Client will launch the configured **Launch command** setting after the Cloudpaging package has been virtualized by the Cloudpaging Player. Use this option when you want to set a custom launch command, for instance in cases where you are using a package that contains multiple applications/executables. |                                    |
| Launch command                | The command to run to launch the application. This option is only used when the **Launch agent** setting is set to the "AppsAnywhere Client" option.                                                                                                                                                             | This option is useful in cases where a package contains multiple applications but you wish to expose each one individually via separate applications in AppsAnywhere (for example Adobe Creative Cloud). The launch command supports a common subset of Cloudpaging Player folder template mappings. See the table below for a list of supported mappings.                                                                                                                                                                                                                                                                                                                                                            | ?programfilesx64?\\7-Zip\\7zFM.exe |

#### Launch command - Supported Cloudpaging Player folder template mappings

When specifying a Launch command the following Cloudpaging Player folder template mappings are supported, and are translated to their Windows x86/x86 equivalent environment variables upon executing the command.  

|         **Folder**         |  **Template variable**  | **Target path (x86)**  |   **Target path (x64)**   |
|----------------------------|-------------------------|------------------------|---------------------------|
| Program Files (x86)        | ?programfilesx86?       | %programfiles%         | %programfiles(x86)%       |
| Program Files (x64)        | ?programfilesx64?       | NOT SUPPORTED          | %programfiles%            |
| Common Program Files       | ?programfilescommon?    | %commonprogramfiles%   | %commonprogramfiles%      |
| Common Program Files (x86) | ?programfilescommonx86? | %commonprogramfiles%   | %commonprogramfiles(x86)% |
| Common Program Files (x64) | ?programfilescommonx64? | NOT SUPPORTED          | %commonprogramfiles%      |
| System 32                  | ?system?                | %systemroot%\\System32 | %systemroot%\\System32    |
| System 32 (x86)            | ?systemx86?             | %systemroot%\\System32 | %systemroot%\\Syswow64    |
| AppData Roaming            | ?roamingappdata?        | %appdata%              | %appdata%                 |
| AppDate Local              | ?localappdata?          | %localappdata%         | %localappdata%            |
| Program Data               | ?programdata?           | %programdata%          | %programdata%             |
| User Profile               | ?profile?               | %userprofile%          | %userprofile%             |
| All User Profiles          | ?userprofiles?          | %systemdrive%\\Users   | %systemdrive%\\Users      |
| Windows Directory          | ?windows?               | %systemroot%           | %systemroot%              |

***Note: Those highlighted in yellow differ between x86 and x64.***

### Recently Added Packages

When a new application package (.STP file) is added to the repository of your Cloudpaging Environment, it is not instantly available in the list of available applications in AppsAnywhere.

The repository is accessed via a local file share for on-premise deployments or via the upload link provided for AppsAnywhere Cloud deployments.

If you have recently added a new package and you don't see it in the list, then click the **Refresh**button next to the application list. This will instruct the Cloudpaging server to scan the repository for new packages, add them to the Cloudpaging Environment, and publish them to all of your Paging servers, at which point the Applications list will be refreshed and the new package will be available to add.

This also applies if you are attempting to edit a Cloudpaging delivery method after adding a new, patched version of the application's STP file into the repository. The new patch version will not be visible in the dropdown of options until you click the Refresh button next to the app list, which instructs AppsAnywhere to check with Cloudpaging Server for any package modifications.  
There is a timeout on this action of two minutes. This may mean that you see an error when you have just added a particularly large package, or if the system has to add a number of packages at once. The best thing to do in this case is to wait a couple of minutes (to give Cloudpaging time to finish publishing the apps that were added) and try again. If the app is still not available in the list after a further Refresh, consider adding the app and publishing it to all your stream servers via the Cloudpaging Admin UI before returning to AppsAnywhere.

### Licensing Considerations

It is important to understand the difference between an Offline Allowed and Offline Disabled license when it comes to Cloudpaged applications.

For those more familiar with Cloudpaging, when you create a delivery method that is set to Offline Allowed, AppsAnywhere creates a corresponding Offline, or Fixed, license on the Cloudpaging Server that it will use to launch the application when it is requested by the user. If the delivery method is set to Offline Disabled then it is linked to an Online, or Floating, license on the Cloudpaging Server. The big difference between these two license types is the point at which a license (or seat) is considered as "in use".

**Fixed (Offline Allowed) Licenses:** The license is checked out for the duration the application resides in the Cloudpaging Player

**Floating (Offline Disabled) Licenses:** The license is checked out for the duration the application is running  
Floating licenses require a constant connection to the server in order to operate, so they only need to check out a license when the application is actually running. Fixed licenses however must check out a license for the entire duration the application is virtualized *in case* the user decides to go offline and use it.

These details are important when deciding how to deploy your application. For example, imagine a scenario where you only have 20 licenses for an application and set this to Offline Allowed. If 20 users launch that application in one of your labs during a class and they remain in the Cloudpaging player one the class has finished, then nobody else will be able to launch that application as all the licenses will be checked out.

Imagine another scenario where you only have 20 licenses available for an application, so you set the Maximum Concurrency value to 20 to ensure this is enforced. If you leave Maximum Concurrency Per User as Unlimited then a small number of users could quickly use up all of those available seats by launching the application on a number of different computers. This would be even more of a problem if they were Offline Allowed as in the above example. In this case, if 10 users launched the application in a lab and again at home then an 11th user wouldn't be able to get access to the application as you might expect.  
Make sure you understand the settings described above and how they are affected by these license and concurrency implications before deploying your application. Incorrectly applying the settings related to concurrency restrictions and offline ability can result in users being unable to access applications.

## Prioritizing

Now that your delivery method is in the list of those available, it is important that you prioritize it accordingly to determine exactly when it will be used.

To understand this process completely, take a look at the [Prioritizing delivery methods](https://docs.appsanywhere.com/appsanywhere/3.6/prioritizing-delivery-methods.md) article.

## Common Uses

The Cloudpaging delivery method is by far the most effective way of delivering Windows applications to Windows devices as it offers all of the following benefits:

* On-demand delivery - Only the bits of the application that are required are delivered to the target device

* Shortest time-to-launch - Unlike downloading a full application and running through an installation, Cloudpaging can have the application running in the shortest time possible

* Native performance - The application runs with all the power available through the local device

* Low bandwidth requirements - Once an application is running, only small amounts of additional data is delivered as and when required

* Full license control - Administrators have the ability to revoke access to the application at any time

Cloudpaging is also a great solution for delivering into VDI scenarios. Wherever you need to deliver a Windows application to a Windows device, we would recommend you use Cloudpaging

## Deleting a Cloudpaging Delivery Method

It is important to understand that there are more implications to deleting a Cloudpaging delivery method than most other types of delivery methods. There are three main things to consider when contemplating deleting a Cloudpaging delivery method.

### Associated App Sessions

AppsAnywhere tracks all user sessions that have been launched against each Cloudpaging delivery method. You will not be allowed to delete a Cloudpaging delivery method while there are existing app sessions as this suggests there may be users adversely affected by the removal of the delivery method.

If a Cloudpaging delivery method still has associated app sessions when you attempt to delete it, you will see a message indicating that the app sessions first need to be removed before you can continue with the deletion, as shown below.  
![image2018-1-31 14:58:41.png](https://docs.appsanywhere.com/__attachments/a_a7c9cbc5f0888a1e4a6086d48c80857c571f9e2120c37d3e4ed005f376a63d4b/image2018-1-31%2014:58:41.png?cb=6cad8465533f102b6ecce57a9acbf3c6)

By clicking Show Me, you will be taken to the App Session Management page with a filter applied to show you all of the app sessions that are linked to the delivery method you are trying to delete. See the [Managing App Sessions](https://docs.appsanywhere.com/appsanywhere/3.6/managing-app-sessions.md) page for information on how to handle these app sessions to get to the point where you can delete the delivery method.

### Associated Upgrades

AppsAnywhere allows you to define upgrades between Cloudpaging delivery methods which can be used to migrate users from one Cloudpaging delivery method to another. You will not be allowed to delete a Cloudpaging delivery method if it is included as part of a defined Cloudpaging Upgrade (as either the source or the target) as doing so would result in unexpected behavior when a user tried to launch the application.

If a Cloudpaging delivery method is included as part of a defined Cloudpaging Upgrade when you attempt to delete it, you will see a message indicating that the associated upgrade first needs to be removed before you can continue with the deletion, as shown below.  
![image2018-1-31 15:27:3.png](https://docs.appsanywhere.com/__attachments/a_daf47e4e2b9a77a58465acdd87c3f739c1e411fadc707832beac860603e3ca86/image2018-1-31%2015:27:3.png?cb=a849fb70263b91f4682141233d167b81)

By clicking Show Me, you will be taken to the Cloudpaging Upgrade Management page with a filter applied to show you all of the defined upgrades that are linked to the delivery method you are trying to delete. See the Deleting a Cloudpaging Upgrade page for information on how to delete the relevant upgrades to get to the point where you can then delete the delivery method.

### Associated Licenses

Finally, it is worth noting that the deleting of a Cloudpaging delivery method will also trigger the deletion of the associated Cloudpaging License that AppsAnywhere would have created when the delivery method was created. This shouldn't have any impact as the license should only be used for the delivery method you are working with, however, it is prevalent that this action is not reversible. Unless you are 100% confident that the delivery method is no longer required and will never be required again, consider just setting the **OS Compatibility** to **None** and leaving it at the bottom of the priority list, rather than deleting it.

---
version: "3.6"
language: "en"
---
# Cloudpaging Release Notes

Release notes for Cloudpaging are available via the following links:

* [Cloudpaging Server 9.8 -- AppsAnywhere Support](https://support.appsanywhere.com/hc/en-us/articles/25585709771293-Cloudpaging-Server-9-8-1)

* [Cloudpaging Player 9.6.4 -- AppsAnywhere Support](https://support.appsanywhere.com/hc/en-us/articles/32300596868765-Cloudpaging-Player-9-6-4)

* [Cloudpaging Player 9.6.1 (Hotfix) -- AppsAnywhere Support](https://support.appsanywhere.com/hc/en-us/articles/30428127473821-Cloudpaging-Player-9-6-1-Hotfix)

* [Cloudpaging Player 9.4.4 (Hotfix 2) -- AppsAnywhere Support](https://support.appsanywhere.com/hc/en-us/articles/30172840534557-Cloudpaging-Player-9-4-4-Hotfix-2)

* [Cloudpaging Studio 9.5.0 -- AppsAnywhere Support](https://support.appsanywhere.com/hc/en-us/articles/31210088119325-Cloudpaging-Studio-9-5-0)

* [Previous Releases -- AppsAnywhere Support](https://support.appsanywhere.com/hc/en-us/sections/360000728254-Previous-Releases)

---
version: "3.6"
language: "en"
---
# Cloudpaging Server

## Overview

Cloudpaging by Numecent offers a very powerful integration with AppsAnywhere in that it allows the option for launching virtualized Windows apps to Windows devices, on-demand in a fraction of the time of usual delivery methods.

This sections covers Cloudpaging Server deployment and configuration.  
* [Configuring Cloudpaging SSL Certificates](https://docs.appsanywhere.com/appsanywhere/3.6/configuring-cloudpaging-ssl-certificates.md)
* [Upgrading Cloudpaging Server](https://docs.appsanywhere.com/appsanywhere/3.6/upgrading-cloudpaging-server.md)
* [Upgrading Tomcat to a newer patch version](https://docs.appsanywhere.com/appsanywhere/3.6/upgrading-tomcat-8-5-x-to-a-newer-patch-version.md)
* [Upgrading OpenJDK](https://docs.appsanywhere.com/appsanywhere/3.6/upgrading-cloudpaging-server-openjdk.md)

## Cloudpaging Server Components

The following components are part of the Cloudpaging Server:  
![image-20220524-220254.png](https://docs.appsanywhere.com/__attachments/a_c0cb480e6d350282ba8905a66b4f123325dc791dfa4e184a903b1f8c49106c0e/image-20220524-220254.png?cb=50a74f2e8284606c2d9b61b105cf6f0c)

### Admin Services

The Admin services provide distinct and configurable web-based interfaces for the administrator and allows for the management of applications via license policies. A web interface is delivered with Cloudpaging Server and is configured to utilize Tomcat to deliver content.

### License Services

In the Cloudpaging Server, license policies can be tailored to define parameters that control access and usage of application for a specified period of time. Administrators can create multiple license policies per application. The License services manage license policies and meters application usage by granting, renewing, and expiring user access tokens. Features include:

* Validating the license policies for applications running on user machines.

<!-- -->

* Tracking software license policies that are currently in use.

### Paging Services

The Paging services store, manage and page cloudified applications to the Cloudpaging Player on end-users' devices.

### SQL Server Database

Cloudpaging Server utilizes a standard SQL database to track user information and server resources. All system and user information is stored in the database. This includes system configuration, topology, application information, application license policies, usage, and user account information.

### Repository

The Repository is the component that stores all cloudified applications. This area must be accessible by all Cloudpaging Server components.

---
version: "3.6"
language: "en"
---
# Cloudpaging Server Specifications

These specifications only apply to the [latest version](https://support.appsanywhere.com/hc/en-us/sections/206843167-Latest-Releases).

## Supported Operating Systems

* Windows Server 2016

* Windows Server 2019

* Windows Server 2022

* Windows Server 2025

### Minimum specification

|   **Category**    |                                                                              **Recommended**                                                                              |
|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| CPU               | 2.5 GHz 8--core or higher                                                                                                                                                 |
| RAM               | 8 GB or higher                                                                                                                                                            |
| Disk Space        | Separate SSD or NVMe SSD for cache drive mounted on each server to the same drive letter (e.g E:\\) * 250 GB for each Paging Server * 10 GB for each Admin/License server |
| Network Interface | 5 Gbps or higher                                                                                                                                                          |

Further information can be found via the [Cloudpaging Server Admin Guide](https://files.software2.com/deployment/cloudpaging/docs/Cloudpaging%20Server%20Admin%20Guide.pdf) and [Database Requirements](https://docs.appsanywhere.com/appsanywhere/database-requirements)

---
version: "3.6"
language: "en"
---
# Cloudpaging Server upgrade procedure

Known Error  

## **Known Error(s)**

<https://appsanywhere.zendesk.com/agent/tickets/34999>

The installer returns an error, health checks work, but the Paging server is not delivering applications.

Cloudpaging Server files are not fully deployed to **C:\\Program Files (x86)\\Numecent\\Application Jukebox Server\\core\\webapps\\jukeboxserver**e.g.:  
![image-20231214-103023.png](https://docs.appsanywhere.com/__attachments/a_45ed9e4b0c895cac17435c6d95ee81b9e12dafad6898e0ea36b6abea396511a6/image-20231214-103023.png?cb=1281d5139397aeb42f4943ca3f0821f8)

**Installer Error**

    The service cannot be started, the installation will proceed but the service will need to be started manually

**StreamingCore log**

    [CFS] Connection Test for Remote source: [http://<paging.uni.edu>/jukeboxserver, <apps> [1]]: source is unavailable(0XA0042211)

**Workaround**

Note that a backup of the folder is not listed in these steps as a full backup of the Cloudpaging Server should be taken as one of the first steps of [Cloudpaging Server upgrade procedure](https://docs.appsanywhere.com/appsanywhere/3.1/cloudpaging-server-upgrade-procedure).

1. Stop the **Cloudpaging Server** service if it is running

2. Deletethe **C:\\Program Files (x86)\\Numecent\\Application Jukebox Server\\core\\webapps\\jukeboxserver**folder.

3. Start the **Cloudpaging Server** service.

4. Tomcat will extract the **jukeboxserver** webapp folder from the new **Jukeboxserver.war** archive file and deploy the application.

5. Check the **C:\\Program Files (x86)\\Numecent\\Application Jukebox Server\\core\\webapps\\jukeboxserver**folder matches

## Note

This is the internal version, so only the content from the excerpt below is published publicly on <https://docs.appsanywhere.com/appsanywhere/cloudpaging-server-upgrade-procedure>

## Overview

This article outlines the procedure to upgrade Cloudpaging Server and the pre-requisite components installed to the latest supported versions.  
* The upgrade process may require downtime resulting in service disruption. A backup of all systems should be taken prior to making any changes.

* Cloudpaging server must be upgraded to 9.6.0 prior to upgrading to 9.7.0.

* With the release of 9.6.0 Server, the version of Apodt OpenJDK has changed to 11 and Tomcat has changed to 9.

See [Upgrading Cloudpaging Server](https://docs.appsanywhere.com/appsanywhere/upgrading-cloudpaging-server) and the [Cloudpaging Server Guide](https://files.software2.com/deployment/cloudpaging/docs/Cloudpaging%20Server%20Admin%20Guide.pdf) for information.

## Prerequisites

1. Review all related documentation ([Upgrading Cloudpaging Server](https://docs.appsanywhere.com/appsanywhere/upgrading-cloudpaging-server) and the [Cloudpaging Server Admin Guide](https://files.software2.com/deployment/cloudpaging/docs/Cloudpaging%20Server%20Admin%20Guide.pdf))

2. Review the Cloudpaging release article and release notes in [Latest Releases](https://support.appsanywhere.com/hc/en-us/sections/206843167-Latest-Releases)

3. Schedule a maintenance window according to [Upgrading Cloudpaging Server](https://docs.appsanywhere.com/appsanywhere/upgrading-cloudpaging-server)

4. Raise a ticket with AppsAnywhere Support

   1. Requesting the installation files

   2. Check if a new license is required

   3. Provide the maintenance window so AppsAnywhere Support can be available

In line with the Support Workflow, AppsAnywhere Support needs to be aware of any change to the infrastructure. Otherwise, the support agreement may be invalidated.

## Upgrade Procedure

1. Place the installation files on the desktop of each Cloudpaging Server and extract the zip file

2. Backup folder *C:\\Program Files (x86)\\Numecent\\Application Jukebox Server\\core\\webapps\\jukeboxserver*

3. Ensure there is a backup of the Cloudpaging database (StreamDB)

4. Perform [functionality tests](https://docs.appsanywhere.com/appsanywhere/upgrading-cloudpaging-server).

   1. Login to AppsAnywhere

   2. Launch more than one Cloudpaging application (E.g. Audacity)

   3. Check the Cloudpaging Player [++log file++](https://support.appsanywhere.com/hc/en-us/articles/231989888-Where-can-I-find-log-files-validation-failed-error-launching-etc-) shows a successful connection to each online Paging server (search for "Connection Test for Remote Source")

      ![image-20220302-123646.png](/__attachments/a_2d1807e1f842cd9c2a7834e935014b69c2d97824382b38522f3de560f37feb60/image-20220302-123646.png?cb=1d4b3312ab2e858aa2943ddfda2cacf3)
5. Login to the Cloudpaging Server admin portal and confirm that all online services are running showing a green tick.

   ![image-20220302-124631.png](https://docs.appsanywhere.com/__attachments/a_c692bb21b08ca9c68acf462b8075ef9f851e224a9237302770e94aa1f45059f5/image-20220302-124631.png?cb=9f7ad0070f8267bdf5f0df59230e8ac1)
6. Connect to the server group 1 (1 x Admin/License server and 1 x Paging server).

7. Stop the Cloudpaging Server Service via **services.msc** on server group 1.

   ![vmware_NVoi8IbECV.png](https://docs.appsanywhere.com/__attachments/a_a497bd0cc345af463429adf70aded4d7154e75ad1915b62f9b828fc350c5118b/vmware_NVoi8IbECV.png?cb=ecaf54f6fb5a3e1e6fdf477485e60ed6)
8. Perform functionality tests against server group 2 via load balancer

9. Check the current version of Cloudpaging Server in Add or Remove programs

   ![vmware_uw6m9CXXew.png](https://docs.appsanywhere.com/__attachments/a_ca1af682363a48c4a685e73bcba6aadff0e6fec90fe31106c32b0f4d1d26f707/vmware_uw6m9CXXew.png?cb=5792aa5d10ec58cebfd570365f41fd82)
10. Run the relevant database migration scripts from the latest Cloudpaging Server zip file downloaded. The scripts are saved in *cloudpaging-server\\\<version\>\\Server-Windows\\Database\\upgrades* and should be run against the **StreamDB** database using the **dbjbuser** SQL login.

    A successful run will show that at least one row was affected e.g.:

    * If upgrading from 9.4.621 to 9.5.1, run the web_9.4_to_9.5.sql.

    * If upgrading from 9.2.1, run the web_9.2_to_9.3.sql script, web_9.3_to_9.4.sql then web_9.4_to_9.5.sql.

11. Open ''Add or Remove Programs'' and uninstall the old Java (AdoptOpenJDK JRE with Hotspot / Eclipse) component.

    ![vmwarelala.png](/__attachments/a_308bf64270f486adea8c08055c62278c18a260848cf482492471cd5ac912ce63/vmwarelala.png?cb=f189fe2dac633b064f0bf0b515d4476d)
12. Uninstall the old Apache Tomcat version. When uninstalling Apache Tomcat 8.5, a prompt will ask if all files should be removed from the Tomcat directory, click **Yes**.

    ![vmware_h7dG8GGxxR.png](/__attachments/a_2c30c6caec680648a2ba0430e9430d02b97313ce1cb44d6e64d2bf9cd94e08bf/vmware_h7dG8GGxxR.png?cb=ab59b73eb21624f72a4347c6a5c588d1)
13. If upgrading from Cloudpaging \<=9.7 to \>=9.8, delete the Cloudpaging server.xml file, otherwise proceed to step 14

    1. Delete `C:\Program Files (x86)\Numecent\Application Jukebox Server\core\conf\server.xml` on each server in group 1

14. Run **Application Jukebox Server.exe** from the extracted **cloudpaging-server\\\<version\>\\server-windows** folder and click **Yes** to start the upgrade.

* Cloudpaging server must be upgraded to 9.6.0 prior to upgrading to 9.7.0.

  With the release of 9.6.0 Server, the version of Apodt OpenJDK has changed to 11 and Tomcat has changed to 9.

Do not install Microsoft SQL Server 2016 Express RTM if prompted to do so

11. Click Yes to install AdoptOpenJDK

    ![vmware_VcwnPYVZKR.png](/__attachments/a_03d70c5557b1da3bb2c71b3664a88d71def32df33e5e9543560dfdbdcd63872a/vmware_VcwnPYVZKR.png?cb=33d2a3e06396a43b693db4f3d4da88b6)
12. Click Yes to install Apache Tomcat

    ![vmware_K9iftKC7bh.png](/__attachments/a_8393ba755ac15ee614932b15a9cd0e46c26a2d5fee6c8bd39608b05eead31606/vmware_K9iftKC7bh.png?cb=57ffac3b8fbc1b463c1d3020ed20d588)
13. Click Next

    ![vmware_bigoFxti1K.png](/__attachments/a_af5efccf84ca70c190d6bf740709e78387675dbfe31c1674e8c8938d3f8775f2/vmware_bigoFxti1K.png?cb=7e3e785478bd9ed279c8aa358ea30a8e)
14. Click Upgrade

    ![vmware_qCzbMDbPmt.png](/__attachments/a_cad1571df38281a73cd559b14393acb82d3c9cf4077167b6972960820b5e6456/vmware_qCzbMDbPmt.png?cb=f660dcb6c9529069ecc4b84ed4dc172c)
15. Click Finish

    ![vmware_iYFsFGIaeG.png](/__attachments/a_ca339b33afc72e0ad9a36bddcc51aba6266ee5be12567e798ad056ae30abc8cd/vmware_iYFsFGIaeG.png?cb=9a7c75a4b6279c7cc853038e36020238)
16. Once the upgrade is complete, launch the Cloudpaging Server shortcut on the desktop to verify in the footer of the login page of the Cloudpaging Server Admin Portal, Enterprise Edition matches the version installed and Database Version is on the same build.

    ![vmware_m0g0rv4nMy.png](/__attachments/a_615a6095ee736f40430feeace75d090340829855a7b1a998f7b75dcd66979a12/vmware_m0g0rv4nMy.png?cb=18c6f428ed75c73874bacd3ec4829283)
17. Login to the Cloudpaging Server admin portal and confirm that all services are running, showing a green tick.

    ![image-20220302-124631.png](/__attachments/a_c692bb21b08ca9c68acf462b8075ef9f851e224a9237302770e94aa1f45059f5/image-20220302-124631.png?cb=9f7ad0070f8267bdf5f0df59230e8ac1)
18. If upgrading from Cloudpaging \<=9.7 to \>=9.8, edit the Cloudpaging server.xml file, otherwise proceed to step 26

    1. Open `C:\Program Files (x86)\Numecent\Application Jukebox Server\core\conf\server.xml`and update the certificate attribute on one server in group 1.

    2. Edit the `keystoreFile="C:\Program Files (x86)\Numecent\Application Jukebox Server\secured.keystore` attribute replacing the `secured.keystore` filename with the Cloudpaging certificate filename e.g. `cloudpaging.pfx`.

    3. Immediately after that entry add the password attribute with the correct password e.g. `keystorePass="ThePassword" keystoreType="PKCS12"`.

    4. The server.xml file, should have the following entries for the declared connectors:

           <Connector connectionTimeout="20000" maxParameterCount="1000" keystoreFile="C:\Program Files (x86)\Numecent\Application Jukebox Server\cloudpaging.pfx" keystorePass="ThePassword" keystoreType="PKCS12" minSpareThreads="25" URIEncoding="UTF-8" port="443" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS"/>

           <Connector connectionTimeout="20000" maxParameterCount="1000" disableUploadTimeout="true" enableLookups="false" minSpareThreads="25" URIEncoding="UTF-8" port="80" />

19. Save the server.xml file.

20. Restart the Cloudpaging service on the server from step 18.

21. Ensure the certificate is applied and the Cloudpaging service [health check](https://docs.appsanywhere.com/appsanywhere/3.2/load-balancer-configuration#id-(3.2)LoadBalancerConfiguration-Healthchecks) returns a success response on the server from step 18.

22. Copy `C:\Program Files (x86)\Numecent\Application Jukebox Server\core\conf\server.xml` to the other Cloudpaging servers.

23. Restart the Cloudpaging service on each of the other Cloudpaging servers.

24. Ensure the certificate is applied to each Cloudpaging Admin server via `https://<server_dns>/jukeboxserver`.

25. Use the [health check](https://docs.appsanywhere.com/appsanywhere/3.2/load-balancer-configuration#id-(3.2)LoadBalancerConfiguration-Healthchecks) to confirm that a success response is returned from each server.

26. Stop the Cloudpaging Server Service via **services.msc** on server group 2.

27. Perform functionality tests against server group 1 via the load balanced DNS.

28. Complete the upgrade steps on server group 2.

29. Stop the Cloudpaging Server Service via **services.msc** on server group 1.

30. Perform functionality tests against server group 2 via the load balanced DNS.

31. Start the Cloudpaging Server Service via **services.msc** on all server group 1.

32. Complete the upgrade steps on all remaining server groups.

33. Apply any new Cloudpaging Server license keys that have been provided e.g. when upgrading to 9.5 or above from an older version

34. Perform functionality tests against all remaining server groups via the load balanced DNS.

35. Start the Cloudpaging Server Service via **services.msc** on all server groups.

36. Perform functionality tests via the load balanced DNS.

Providing the functionality tests are successful, the upgrade of Cloudpaging Server is complete!  

## Note

This is the internal version, so only the content from the excerpt above is published publicly on <https://docs.appsanywhere.com/appsanywhere/cloudpaging-server-upgrade-procedure>

**Example server.xml connectors from Cloudpaging Server 9.8**

    <Connector acceptCount="7168" maxConnections="1024" clientAuth="false" disableUploadTimeout="true" enableLookups="false" keystoreFile="C:\Program Files (x86)\Numecent\Application Jukebox Server\cloudpaging.pfx" keystorePass="password" minSpareThreads="25" URIEncoding="UTF-8" port="443" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS"/>

    <Connector acceptCount="7168" maxConnections="1024" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" minSpareThreads="25" URIEncoding="UTF-8" port="80" />

## Update Customer Records

See [Customer Records](https://software2.atlassian.net/wiki/spaces/CS/pages/1150222406/Customer+Records) for more information

1. Update the version number on the [Airtable](https://airtable.com/appmhCOGRjBguDtYq/paghmjlOxFbigatUg?3gR7j=recmkxqiksdxpv3Yr) installation record

2. If the annual license has been applied following an EOL temp one, add a note on the upgrade ticket with the new expiration date

3. Update the installation in 1Password

   1. Change log

   2. Server details

---
version: "3.6"
language: "en"
---
# Cloudpaging Settings

## Overview

Once you have added a Cloudpaging Environment to AppsAnywhere, you are ready to begin deploying applications. However, there are a few things you can customize about that environment if you wish to change the default behaviour. Those settings are described in this article.

## Changing Settings

### Navigate to the **Cloudpaging Settings** page:

1. Log into AppsAnywhere as an admin user

2. Click on **Return to Admin** to access the AppsAnywhere admin portal

3. On the navigation menu at the top of the page, go to **Settings \> Cloudpaging**

Here you will see all of the settings that are available to change.  

|                    Setting Name                    |                                                                                                                                                                                                                        Description                                                                                                                                                                                                                         |                                                                                                                      Expected Value                                                                                                                       |
|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Cloudpaging Environment                            | This represents the default Cloudpaging environment, of all those defined in AppsAnywhere. At this point, it is only used in reference to the next setting; Remote Installer License GUID.                                                                                                                                                                                                                                                                 | Select your main Cloudpaging Environment from the list                                                                                                                                                                                                    |
| Default Provision (For Generated Launch Shortcuts) | This represents the default provision when generating Cloudpaging delivery method launch shortcuts from the Shared App Lists - Request Apps API. This will not have any effect on already existing functionality for generating shortcuts in the admin. See [Generating Shortcuts](https://docs.appsanywhere.com/appsanywhere/deprecation-of-shortcut-management) for more information.                                                                    | Select the provision you would like to use as the default in this scenario                                                                                                                                                                                |
| Remote Installer License GUID                      | The Windows Install delivery method utilizes a Cloudpaging package in order to initiate the installation of applications on the end user's Windows device. In order to use the Windows Install delivery method, you will need to publish this package to one of your Cloudpaging environments.                                                                                                                                                             | The license GUID of the Cloudpaging package used by the Windows Install delivery method                                                                                                                                                                   |
| Provider URL                                       | The Provider URL is purely meta information which appears in the Information panel of the Cloudpaging Player when a user virtualizes an application (see image below).                                                                                                                                                                                                                                                                                     | This will typically be the address of your AppsAnywhere instance The base URL from General Settings will be used as the default for this                                                                                                                  |
| Use license warnings                               | By default, all operating system compatibility is displayed within AppsAnywhere. However, Cloudpaging does have the ability to warn users if an app is considered incompatible or untested on their device via the Cloudpaging Player. By selecting the "Use license warnings" check box, AppsAnywhere will update all associated Cloudpaging licenses with the defined app compatibility, meaning Cloudpaging will warn the user of any potential issues. | Unchecked                                                                                                                                                                                                                                                 |
| Disable Provision Checks                           | When checked this setting disables provision checks during Cloudpaging launches, this means changes to access (e.g. provision updates) for any existing Cloudpaging sessions or shortcuts will not be updated.                                                                                                                                                                                                                                             | Whether you would like additional checks to ensure the correct users have access to Cloudpaging applications. **Note** : In workflows where LDAP is not being used, (SAML only logins) this will **need** to be checked in order to disable this feature. |
| Provision Check Frequency                          | How often, in minutes, that the provision checks are carried out during Cloudpaging launches.                                                                                                                                                                                                                                                                                                                                                              | However often you'd like additional checks to take place to ensure the correct users have access to Cloudpaging applications. The default value is 5 minutes.                                                                                             |

[Next Page](https://docs.appsanywhere.com/llms-full.txt/1)
