Citrix DaaS

Create a VMware catalog

Create machine catalogs describes the wizards that create a machine catalog.

Note:

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

Create a machine catalog using a machine profile

You can create an MCS machine catalog using a machine profile. The source of the machine profile input is a VMware template. The machine profile captures the hardware properties from a VMware template and applies them to the newly provisioned VMs in the catalog.

Note:

  • Master image input (snapshot) and machine profile input (VMware template) must either be both vTPM enabled or both vTPM disabled. This rule applies to both New-ProvScheme and Set-ProvScheme.
  • If the master image is vTPM enabled, then the VMware template can only come from the same VM source as the master image.
  • Encrypted storage policy only supports full clone.

The VMware template in the machine profile must exist during the catalog life cycle to allow provisioning of VMs to the catalog. Without a VMware template, you cannot provision new VMs. When a VMware template gets deleted, you must supply a new template using the Set-ProvScheme command.

  • MCS captures properties of a VMware template. You can create a new VMware template referencing stored properties of the VMware template using the Get-Provscheme command.
  • Alternatively, if the machine catalog and provisioned VMs exist, then an MCS provisioned machine can also be used to create a new VMware template

Based on different OS, you can create a machine catalog with different configurations:

  • If Windows 11 is installed on the master image, then it is a requirement to have vTPM enabled for the master image. Therefore, the VMware template, which is a source of machine profile, must have vTPM attached to it.
  • If Windows 10 is installed on the master image with no vTPM attached, then you can create a machine catalog with non-vTPM VMware template as source for machine profile.

There is another configuration where you can create a machine catalog using full copy disk mode with machine profile template applied with encrypted storage policy.

To create a machine catalog using PowerShell commands with machine profile as input:

  1. Open a PowerShell window.
  2. Run asnp citrix* to load the Citrix-specific PowerShell modules.
  3. Run the following commands:

    • To create a machine catalog with vTPM attached VMware template as a source for machine profile input and windows11 installed master image:

       $identityPool = New-AcctIdentityPool
       -IdentityPoolName "<string>"
       -NamingScheme "<string>-###"
       -NamingSchemeType Numeric
       -Domain "<domain name"
       -ZoneUid "<Uid>"  -Scope @()
       <!--NeedCopy-->
      
       $provScheme =New-ProvScheme  -CleanOnBoot
       -HostingUnitName "vSanRg"
       -IdentityPoolName "<string>"
       -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:\HostingUnits\<hosting unit name>\<snapshot name>.snapshot"
       -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hosting unit name>\\<network name>.network"}
       -ProvisioningSchemeName "<string>"
       -Scope @() -VMCpuCount 4  -VMMemoryMB 6144
       -MachineProfile "XDHyp:\HostingUnits\<hosting unit name>\<template name>.template"
       -TenancyType Shared
       -FunctionalLevel "L7_20"
       <!--NeedCopy-->
      
       $catalog = New-BrokerCatalog
       -AllocationType "Static"
       -PersistUserChanges  "OnLocal"
       -Description "<string>"  -IsRemotePC $False
       -MinimumFunctionalLevel 'L7_9' -Name "<catalog name>" -ProvisioningType 'MCS'
       -Scope @()  -SessionSupport "SingleSession"
       -ZoneUid "<Uid>"
       <!--NeedCopy-->
      
       Set-BrokerCatalog -Name "<string>"
       -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
       <!--NeedCopy-->
      
    • To create a machine catalog with non-vTPM VMware template as source for machine profile and Windows10 installed master image:

       $identityPool = New-AcctIdentityPool
       -IdentityPoolName "<string>"
       -NamingScheme "<string>-###"
       -NamingSchemeType Numeric
       -Domain "<domain name>"
       -ZoneUid "<Uid>"  -Scope @()
       <!--NeedCopy-->
      
       $provScheme =New-ProvScheme  -CleanOnBoot
       -HostingUnitName "<string>"
       -IdentityPoolName "<string>"
       -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:\HostingUnits\<hosting unit name>\<snapshot name>.snapshot"
       -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hosting unit name>\\<string>.network"}
       -ProvisioningSchemeName "<string>"  -Scope @() -VMCpuCount 4  -VMMemoryMB 8192
       -MachineProfile "XDHyp:\HostingUnits\<hosting unit name>\<template name>.template"
       -TenancyType Shared  -FunctionalLevel "L7_20"
       <!--NeedCopy-->
      
       $catalog = New-BrokerCatalog
       -AllocationType "Static"
       -PersistUserChanges  "OnLocal"  -Description "<string>"  -IsRemotePC $False
       -MinimumFunctionalLevel 'L7_9' -Name "<string>" -ProvisioningType 'MCS' -Scope @()  -SessionSupport "SingleSession" -ZoneUid "<Uid"
       <!--NeedCopy-->
      
       Set-BrokerCatalog -Name "<string>"
       -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
       <!--NeedCopy-->
      
    • To create a machine catalog using Full copy disk mode with machine profile template applied with encrypted storage policy:

       $identityPool = New-AcctIdentityPool
       -IdentityPoolName "<string>"
       -NamingScheme "<string>-###"
       -NamingSchemeType Numeric
       -Domain "<domain name>"
       -ZoneUid "<Uid>"  -Scope @()
       <!--NeedCopy-->
      
       $provScheme =New-ProvScheme
       -HostingUnitName "<string>"
       -IdentityPoolName "<string>" -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:\HostingUnits\<hosting unit name>\<snapshot name>.snapshot"
       -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hosting unit name>\\<string>.network"}
       -ProvisioningSchemeName "<string>"  -Scope @() -VMCpuCount 4  -VMMemoryMB 8192
       -MachineProfile "XDHyp:\HostingUnits\<hosting unit name>\<template name>.template"
       -TenancyType Shared  -FunctionalLevel "L7_20"
       -UseFullDiskCloneProvisioning
       <!--NeedCopy-->
      
       $catalog = New-BrokerCatalog
       -AllocationType "Static"
       -PersistUserChanges  "OnLocal"
       -Description "<string>"
       -IsRemotePC $False
       -MinimumFunctionalLevel 'L7_9' -Name "<string>" -ProvisioningType 'MCS' -Scope @()
       -SessionSupport "SingleSession" -ZoneUid "<Uid>"
       <!--NeedCopy-->
      
       Set-BrokerCatalog -Name "<string>"
       -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
       <!--NeedCopy-->
      
    • To update a machine profile, use the Set-ProvScheme command. For example:

       Set-ProvScheme -ProvisioningSchemeName 'name' -IdentityPoolName 'name' -MachineProfile 'XDHyp:\HostingUnits\<hosting unit name>\<template name>.template
       <!--NeedCopy-->
      

Troubleshooting

If the catalog fails to create, see CTX294978.

Where to go next

More information

Create a VMware catalog