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
andSet-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:
- Open a PowerShell window.
- Run
asnp citrix*
to load the Citrix-specific PowerShell modules. -
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
- If this is the first catalog created, you are guided to create a delivery group.
- To review the entire configuration process, see Plan and build a deployment.
- To manage catalogs, see Manage machine catalogs and Manage a VMware catalog.