Citrix DaaS

Create a XenServer catalog

Create machine catalogs describes the wizards that create a machine catalog. The following information covers details specific to XenServer (formerly Citrix Hypervisor) virtualization environments.


Before creating a XenServer catalog, you need to finish creating a connection to XenServer. See Connection to XenServer.

Create a machine catalog using a GPU-capable XenServer

GPU-capable machines require a dedicated master image. Those VMs require video card drivers that support GPUs. Configure GPU-capable machines to allow the VM to operate with software that uses the GPU for operations.

  1. In XenCenter, create a VM with standard VGA, networks, and vCPU.
  2. Update the VM configuration to enable GPU use (either Passthrough or vGPU).
  3. Install a supported operating system and enable RDP.
  4. Install Citrix VM Tools and NVIDIA drivers.
  5. Turn off the Virtual Network Computing (VNC) Admin Console to optimize performance, and then restart the VM.
  6. You are prompted to use RDP. Using RDP, install the VDA and then restart the VM.
  7. Optionally, create a snapshot for the VM as a baseline template for other GPU master images.
  8. Using RDP, install customer-specific applications that are configured in XenCenter and use GPU capabilities.

Create a machine profile-based machine catalog using PowerShell

When you create a catalog to provision machines using MCS, you can use a machine profile to capture the hardware properties from a virtual machine and apply them to newly provisioned VMs in the catalog. If the MachineProfile parameter is not used, the hardware properties are captured from the master image VM or snapshot.


Currently, you can use only a snapshot as a machine profile input.

You can update the memory and disk cache sizes after creating the MCS catalogs when MCSIO is enabled. You can explicitly configure the following parameters to overwrite the values of the parameters in the machine profile input:

  • VMCpuCount
  • VMMemory
  • NetworkMapping

Create a catalog with a machine profile

  1. Open the PowerShell window.
  2. Run asnp citrix*.
  3. Create an identity pool. The identity pool is a container for the Active Directory (AD) accounts for the VMs to be created. For example:

    New-AcctIdentityPool -Domain "citrix-xxxxxx.local" -IdentityPoolName "ExampleIdentityPool" -NamingScheme "abc1-##" -NamingSchemeType "Numeric" -Scope @() -ZoneUid "xxxxxxxx"
  4. Create the required AD computer accounts in Active Directory.

    $password = "password123" | ConvertTo-SecureString -AsPlainText -Force
    New-AcctADAccount -IdentityPoolName "ExampleIdentityPool" -Count 10 -ADUserName "citrix-xxxxxx\admin1" -ADPassword $password
    Set-AcctAdAccountUserCert -IdentityPoolName "ExampleIdentityPool" -ADUserName "citrix-xxxxxx\admin1" -ADPassword $password
  5. Run the New-ProvScheme command to create a catalog. For example:

    New-ProvScheme -CleanOnBoot -HostingUnitName "ExampleHostingUnit" -IdentityPoolName "ExampleIdentityPool" -InitialBatchSizeHint 2 -CustomProperties '<CustomProperties xmlns="" xmlns:xsi="">
    <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
    -MasterImageVM "XDHyp:\HostingUnits\ExampleHostingUnit\ExampleVDA.vm\ExampleVDA.snapshot" -ProvisioningSchemeName "ExampleCatalog" -Scope @() -SecurityGroup @()
    -MachineProfile "XDHyp:\HostingUnits\ExampleHostingUnit\ExampleMachineProfile.vm\ExampleSnapshot.snapshot"
  6. Register provisioning scheme as a broker catalog. For example:

    $ConfigZone = Get-ConfigZone | Where-Object { $_.Name -eq "xxxxxx" }
    New-BrokerCatalog -Name "MPLT1" -AllocationType Random -Description "Machine profile catalog" -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx -ProvisioningType Mcs -SessionSupport MultiSession -PersistUserChanges Discard -ZoneUid ($ConfigZone.Uid)
  7. Add VMs to the catalog.

Update a catalog with a new machine profile


  • The Set-ProvScheme command in this case does not change the machine profile of the existing VMs in the catalog. Only the newly created VMs added to the catalog have the new machine profile.
  • You cannot convert a machine profile-based machine catalog to non-machine profile-based machine catalog.

To update a catalog with a new machine profile:

  1. Run the Set-ProvScheme command. For example:

    Set-ProvScheme -ProvisioningSchemeName "ExampleCatalog" -MachineProfile "XDHyp:\HostingUnits\ExampleHostingUnit\ExampleMachineProfileVm.vm\ExampleMachineProfileSnapshot.snapshot"

    For more information on the Set-ProvScheme command, see Set-ProvScheme.

Where to go next

More information

Create a XenServer catalog