App Layering

Machine Creation for vSphere

A Machine Creation for vSphere connector configuration contains the credentials and storage location required to publish layered images to machine creation in your vSphere environment.

You can publish layered images to machine creation running in a vSphere environment by using a Machine Creation for vSphere Connector Configuration. In the Connector Configuration, be sure to configure a Virtual Machine Template, so that the layered image you publish is in a ready-to-use VM, the image shutdown and a snapshot taken. You can use the VM in your Horizon environment without further modifications.

Each Connector Configuration is set to publish layered images to a specific storage location in your environment, so you may need more than one connector configuration if publishing to multiple locations. Further, you may want to publish each layered image to a location convenient to the system you are provisioning with the published image. For more about connectors, and connector configurations, see Connect.


This Connector Configuration is for publishing layered images. You cannot package layers in the environment.

Personal vDisks are not supported for Machine Creation. The published desktop images are non-persistent. Currently, vDisks can only be used when publishing to Citrix Provisioning.

Before you start

The first time you create an Image Template for publishing layered images to a location in your environment, you create a Connector Configuration for that location.

Required information for this Connector Configuration

Configuring a connector for Machine Creation for vSphere lets you browse for the vCenter Server, Data Store, and Host to use for a new configuration.


The fields are case sensitive, so any values that you enter manually must match the case of the object your environment, or the validation fails.

  • Name: A useful name to help identify this connector configuration.
  • vCenter Server: The name of the vSphere server with which the appliance integrates.
  • vCenter User Name: The user name of the account that the appliance uses to connect to vSphere.
  • vCenter Password: The password of the account that the appliance uses to connect to vSphere.
  • DataCenter Name: The name of the vSphere data center in which the appliance creates and retrieves virtual machines.
  • Virtual Machine Template (recommended, required for UEFI virtual machines): A template that can be used to clone a VM with the hardware settings for machine creation, including memory, CPUs, and video settings. You can specify the host, datastore, and network for configuring the resulting VMs. The list of choices contains only custom VM templates, rather than actual VMs or any of the built-in templates. The OS version used by the selected template must match the OS version that you are using for publishing layered images. The template must not have any disks attached, and must have at least one network card attached. If it does not, you see an error when trying to validate or save the configuration.
  • DataStore Name: The name of the vSphere DataStore in which the appliance creates virtual machines.
  • ESX Host Name: The name of the vSphere ESX Host on which the appliance creates virtual machines.
  • Network Name: The name of the vSphere Network in which the appliance creates virtual machines.
  • Virtual Machine Folder Name: The name of the vSphere Folder in which the appliance creates virtual machines.
  • Offload Compositing: Enables the layer packaging or image publishing process to run on the specified server. This feature increases performance, and it allows you to use VMDK disk format and either BIOS or UEFI virtual machines. When Offload Compositing is selected:
    • If you do not provide a virtual machine template, the virtual machine defaults to BIOS.
    • If you provide a template configured for BIOS or UEFI, the resulting virtual machine is the type you chose. When Offload Compositing is not selected:
    • If you do not provide a template, the virtual machine defaults to BIOS.
    • If you provide a template configured for BIOS, the resulting virtual machine is BIOS.
    • If you provide a template configured for UEFI, the machine fails to boot, and results in a blue screen.

Create a Connector Configuration

To enter values:

  • The first three vCenter fields must be entered manually. Once the credentials in those fields are validated, you can select values for the remaining fields from the drop-down menus.
  • To enter values manually: Click to put the cursor in the field and type the value.
  • To select a value from a drop-down list: Click once to put the cursor in the field, and a second time to choose from a list of possible values.

To add a new Connector Configuration

  1. Click the Connectors page.
  2. Click Add Connector Configuration. This opens a small dialog box.
  3. Select the Connector Type for the platform and location where you are creating the layer or publishing the image. Then click New to open the Connector Configuration page.
  4. Enter the configuration Name, and the vCenter Server, vCenter User Name, and vCenter Password. For guidance, see the above field definitions.
  5. Click the CHECK CREDENTIALS button below the vCenter fields. The data center field is then enabled with a list of data centers available.
  6. Select the data center, and the remaining drop-down menus are enabled.
  7. (Recommended) Select a virtual machine to use as the template. Although a VM Template is optional, it is recommended.
  8. Complete the remaining fields and click the TEST button to verify that the appliance can access the location specified using the credentials supplied.
  9. Click Save. Verify that the new connector configuration is listed on the Connectors page.

Script Configuration (Optional, Advanced feature)

When creating a Connector Configuration, you can configure an optional PowerShell script on any Windows machine running an App Layering Agent. These scripts must be stored on the same machine that the App Layering Agent is installed on, and are run only after a successful deployment of a layered image. Some preset variables are available to enable scripts to be reusable with different template images and different connector configurations. These variables also contain information needed to identify the virtual machine created as part of the published layered image in vSphere.

The running of these scripts will not affect the outcome of the publish job, and progress of commands run in the script are not visible. The vSphere connector logs contain the output of the script that ran.

Configure a script

Remember that this step is optional. If you want a script to run each time a layered image is published, complete these steps using the values described in the sections that follow.

  1. Complete and save the Connector Configuration as described above.


    Before selecting the Script Configuration page, you must save (or discard) any edits to the Connector Configuration settings,

  2. If the Navigation menu on the left is not open, select it and click Script Configuration to open the Script Path page.
  3. Complete the required fields using the values detailed herein, and then click Save.

Script Configuration fields

Enable script - Select this check box to enable the remaining fields. This allows you to enter a script that runs each time a layered image is published.

Script Agent - The agent machine where the scripts are located.

Username (optional) - The user name to impersonate when running the script. This can be used to ensure the script runs in the context of a user that has the needed rights/permissions to perform the operations in the script.

Password (optional) - The password for the specified user name.

Script Path - A full path and file name on the agent machine where the script file resides.

Other Script Configuration values

PowerShell variables

When the script is run, the following variables are set and can be used in the PowerShell script:

Value Applies to connector types Value determined by which code Description
connectorCfgName All Common code The name of the connector configuration that the script configuration is associated with.
imageName All Common code The name of the layered image template that was used to build/publish the layered image.
osType All Common code The operating system type of the published layered image. It can be one of the following values: Windows7; Windows764; Windows200864; Windows201264; Windows10; Windows1064
virtualInfrastructureServer All vSphere connector code The vCenter server specified in the connector configuration.
vmName All vSphere connector code The name of the virtual machine that was created.
vmId All vSphere connector code The virtual machine ID taken from the VM (that is, “vm-12345”)
vmUuid All vSphere connector code The virtual machine UUID.

User Impersonation

The App Layering Agent, which runs as a service on a Windows machine, runs under either the local system account or the network account. Either of these accounts may have some special privileges, but they often are restricted when running specific commands or seeing files in the file system. Therefore, App Layering gives you the option of adding a domain user and password that can be used to “impersonate” a user. This means that the script runs as if that user had logged on to the system so that any commands or data are accessible subject to those user rights and permissions. If a user name or password is not entered, the script runs using the account under which the service is configured to run.

Script Execution Policy

Script execution policy requirements are up to you. If you intend to run unsigned scripts, you must configure the execution policy to one of the more lenient policies. However, if you sign your own scripts, you can choose to use a more restrictive execution policy.

Machine Creation for vSphere