Create Citrix Provisioning catalogs in Citrix Studio
Currently, Citrix provides two provisioning solutions for creating VMs, Citrix Provisioning and Machine Creation Services (MCS).
To create a Citrix Provisioning catalog, you had to use the Citrix Virtual Apps and Desktops Setup Wizard. With this feature, you can now create a Citrix Provisioning catalog by using Citrix Studio (for Citrix DaaS) and Web Studio (for on-premises Citrix Virtual Apps and Desktops deployment), and PowerShell.
This implementation provides you the following advantages:
- A single unified console to manage both MCS and Citrix Provisioning catalogs.
- Have new features for Citrix Provisioning catalogs, such as, identity management solution, on-demand provisioning and so on.
Currently, this feature is available to Azure, vSphere, and XenServer.
This article explains how to create an Azure Citrix Provisioning catalog using the Citrix Studio user interface and PowerShell commands.
Considerations
- Image management is done using the existing Citrix Provisioning console.
- Only Boot Device Manager (BDM) is supported.
- While provisioning Citrix Provisioning target VMs, select the site for the target VMs. Ensure that the site is registered.
Limitations
Consider the following limitations for Azure:
- Gen 2 VMs are only supported.
- You can create a catalog using a machine profile. Do not enable hibernation in the machine profile input.
-
You cannot set the following custom properties while creating the catalog:
- StorageType
- OsType
- MachinesPerStorageAccount
- StorageAccountsPerResourceGroup
- UseSharedImageGallery
- SharedImageGalleryReplicaRatio
- SharedImageGalleryReplicaMaximum
- UseEphemeralOsDisk
- UseManagedDisks
- StorageTypeAtShutdown
Requirements
Hypervisor | CVAD release required | Supported Citrix Provisioning version |
---|---|---|
Azure | 2311 | 2311 and later |
VMware | 2402 LTSR (Catalog creation only through PowerShell) | 2402 and later |
XenServer | 2407 (Catalog creation only through PowerShell) | 2407 and later |
Key steps
- Set up Citrix Provisioning.
- Join your farm with Citrix Cloud or Citrix Virtual Apps and Desktops site. See Join Citrix Cloud or Citrix Virtual Apps and Desktops site.
- Create a master target device.
- Create a vDisk using the Imaging Wizard. See Using the Imaging Wizard to create a virtual disk.
- Add a connection to the hypervisor. See Citrix DaaS: Create and manage connections and resources and Citrix Virtual Apps and Desktops: Create and manage connections and resources.
- Create a Citrix Provisioning catalog.
- Check the collections in the Citrix Provisioning Console under Sites.
Create a Citrix Provisioning catalog using the Citrix Studio interface
Note:
- For Azure environement, you can create a Citrix Provisioning catalog using Studio or Web Studio.
- For VMware environment, You can now create Citrix Provisioning catalogs using Studio and PowerShell commands.
- For XenSever environments, you can currently create the catalogs using only PowerShell commands.
If using Studio:
- Sign in to Citrix Cloud.
- In the left pane, select Machine Catalogs.
If using the Web Studio:
- Sign in to Web Studio, select Machine Catalogs in the left pane.
To create a Citrix Provisioning catalog using Studio or Web Studio:
- Select Create Machine Catalog. The catalog creation wizard opens.
- On the Machine Type page, select a machine type for this catalog, such as Multi-session OS or Single-session OS.
-
On the Machine Management page, select the settings as follows:
- Select Machines that are power managed (for example, virtual machines or blade PCs).
- Select Citrix provisioning technology. Then, select Citrix Provisioning Services (PVS).
- In the Resources field, select an Azure or VMware network resource for this catalog.
- (Viewable only to single-session-OS catalogs) On the Desktop Experience page, select the random or static desktop experience as needed.
-
On the Target Device page, select the following:
-
Select the farm and site for the machines to be provisioned.
Note:
- The site field shows only sites registered with the Citrix Cloud.
- While you create a Citrix Provisioning catalog, on the Target Device page, you might see that in the drop-down menu to select the farm and site for the machines to be provisioned, there are farms and sites listed that no longer exist. As a workaround, you can run the PowerShell command
Unregister-HypPvsSite
to remove the farms and sites from the database. For information on the PowerShell command, see DaaS: Unregister-HypPvsSite and Citrix Virtual Apps and Desktops: Unregister-HypPvsSite.
- Select the vDisk to use with the provisioned machines.
- Select a machine profile for the provisioned machines.
-
- On the Storage and License Types page, select the storage to use for this catalog and select the Windows volume licenses to provision VMs in Azure.
-
On the Virtual Machines page, select the count of VMs, VM size, and availability zone.
Note:
For VMware environment, configure and enable the write-back-cache on the Virtual Machines page.
- On the NICs page, add the NICs you want the VMs to use.
-
On the Disk Settings page, select the storage type and size of the write-back cache disk.
Note:
This step is applicable for Azure environment only.
-
On the Resource Group page, choose whether to create resource groups or use existing groups. When you select Create a resource group to provision machines, a resource group is created with a name in the following format:
citrix-xd-<ProvSchemeId>-<Random5CharacterSuffix>
.Note:
When you delete the catalog, the associated resource group is also deleted along with it.
-
On the Machine Identities page:
- Select an Identity type. Currently, you can select Hybrid Azure Active Directory joined only for Azure and VMware environment.
- Select Create new Active Directory accounts. Specify an account naming scheme.
- On the Domain Credentials page, click Enter credentials. Enter your domain credentials to perform account operations in the target Active Directory domain.
- On the Summary page, enter a name for the machine catalog, and click Finish.
A Citrix Provisioning machine catalog is now created.
Create a customer-managed encryption key enabled catalog
You can create a Citrix Provisioning catalog enabled with customer-managed encryption key (CMEK) using Studio and PowerShell commands in Azure environments.
You can create a machine-profile based catalog. The important considerations are:
- If there is a custom property or machine profile with DES Id, it always overrides the master image DES Id if they’re different.
- If master image does not have DES Id, then DES Id in custom property overwrites DES Id value in the machine profile.
- You can change the DES Id of an existing catalog if the master image does not have DES Id. The new VMs only have the new DES Id.
- You can update an existing catalog to a CMEK enabled catalog.
- You cannot apply DES Id change to the existing VMs.
For more information on Azure Customer-managed encryption key, see Azure Customer-managed encryption key.
Create a Citrix Provisioning catalog using PowerShell commands
- If you are not on the Citrix Provisioning server or on a system that has the Citrix Provisioning console installed, then download and install the latest Remote PowerShell SDK. For more information, see Install and use the Remote PowerShell SDK.
- Open the PowerShell window.
-
Run the PowerShell commands to create a broker catalog and identity pool.
Example in Azure:
New-AcctIdentityPool -IdentityPoolName $catName -NamingScheme "$($catName)##" -NamingSchemeType Numeric -Domain serenity.local <!--NeedCopy-->
Example in VMware:
New-AcctIdentityPool ` -IdentityPoolName $catName ` -NamingScheme "$($catName)##" ` -NamingSchemeType Numeric ` -Domain $domain ` -ZoneUid $zone.Uid <!--NeedCopy-->
-
Run the
New-ProvScheme
command to create the catalog.Example in Azure:
New-ProvScheme -AdminAddress "<address>" -CleanOnBoot ` -ProvisioningSchemeType PVS ` -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"> <Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /> <Property xsi:type=`"StringProperty`" Name=`"OsType`" Value=`"Windows`" /> <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" /> <Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`" /> <Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"false`" /> <Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"false`" /> <Property xsi:type=`"StringProperty`" Name=`"WBCDiskStorageType`" Value=`"Premium_LRS`" /> <Property xsi:type=`"StringProperty`" Name=`"UseTempDiskForWBC`" Value=`"false`" /> <Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"acbdpvs`" /> <Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`" /> <Property xsi:type=`"StringProperty`" Name=`"Zones`" Value=`"1`" /> </CustomProperties>" ` -HostingUnitName "AzueRes" -IdentityPoolName $catName ` -InitialBatchSizeHint 1 -LoggingId "854xxxxx-2xxx-42e0-axxx-8c6xxx406xxx" ` -MachineProfile "XDHyp:\HostingUnits\AzueRes\machineprofile.folder\abcdpvs.resourcegroup\abvda.vm" ` -NetworkMapping @{"0"="XDHyp:\HostingUnits\AzueRes\\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\abcdpvs.resourcegroup\fbgv-vnet.virtualprivatecloud\default.network"} ` -ProvisioningSchemeName $catName ` -ServiceOffering "XDHyp:\HostingUnits\AzueRes\serviceoffering.folder\Standard_D2s_v3.serviceoffering" ` -UseWriteBackCache -WriteBackCacheDiskSize 40 ` -PVSSite 6556cxxx-fc88-45f6-8xxx-ea4b665e9xxx -PVSvDisk cf056xxx-f69b-xxxx-9a60-c41072b8xxxx <!--NeedCopy-->
Example in VMware:
$ps = New-ProvScheme -CleanOnBoot ` -ProvisioningSchemeType PVS ` -HostingUnitName $hostingUnit ` -IdentityPoolName $catName ` -MasterImageVM $machineProfile ` -ProvisioningSchemeName $catName ` -UseWriteBackCache -WriteBackCacheDiskSize 32 -PVSSite $pvsSite.SiteId ` -PVSvDisk $vDisk.DiskLocatorId <!--NeedCopy-->
Example in XenServer:
$ps = New-ProvScheme -AdminAddress "<address>" -CleanOnBoot ` -ProvisioningSchemeType PVS ` -HostingUnitName "xen2" -IdentityPoolName $catName ` -InitialBatchSizeHint 1 ` -VMCpuCount 2 ` -VMMemoryMB 8192 ` -NetworkMapping @{"0"="XDHyp:\HostingUnits\xen2\VM Network - 2607.network"} ` -ProvisioningSchemeName $catName ` -UseWriteBackCache -WriteBackCacheDiskSize 40 ` -PVSSite e9524976-8fc3-4ada-bf46-2156afdf4aa1 -PVSvDisk 22404f4e-d65d-4072-abfe-161cbe7a952c ` -MasterImageVM "XDHyp:\HostingUnits\xen2\pvstemplate.vm\pvs_template.snapshot" $ps Add-ProvSchemeControllerAddress -ProvisioningSchemeUid $ps.ProvisioningSchemeUid -ControllerAddress @("W2K22ST-U5DN1I0.serenity.local") <!--NeedCopy-->
-
Create a broker catalog.
Example in Azure:
New-BrokerCatalog -AllocationType Random -Name $catName -PersistUserChanges Discard -ProvisioningType MCS -ProvisioningSchemeId $ps.ProvisioningSchemeUid -SessionSupport MultiSession <!--NeedCopy-->
Example in VMware:
New-BrokerCatalog ` -AllocationType Random ` -Name $catName ` -PersistUserChanges Discard ` -ProvisioningType MCS ` -ProvisioningSchemeId $ps.ProvisioningSchemeUid ` -SessionSupport MultiSession ` -MinimumFunctionalLevel L7_34 <!--NeedCopy-->
-
Add one VM to the catalog using the Studio UI or the following PowerShell command. Example:
$adId = New-AcctADAccount -Count 1 -IdentityPoolName $catName New-ProvVM -ProvisioningSchemeName $catName -ADAccountName $adId.SuccessfulAccounts.ADAccountName <!--NeedCopy-->
Delete WBC disk at shutdown
While creating an MCS provisioned Citrix Provisioning catalogs in Azure, you can provision the WBC disk to be non-persistent (PersistWBC
as False
). This configuration helps to delete the write-back cache (WBC) disk after you shut down the VM for MCS provisioned Citrix Provisioning catalogs in Azure.
Condition
You must set the custom property PreformatWriteBackCache
as True
for this feature to work.
Example
Example of creating an Azure catalog with PersistWBC
as False
and PreformatWriteBackCache
as True
:
$customProperties = @'
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false" />
<Property xsi:type="StringProperty" Name="PreformatWriteBackCache" Value="true" />
</CustomProperties>
'@
New-ProvScheme -CleanOnBoot `
-ProvisioningSchemeName "provisioningschemename" `
-HostingUnitName "hostingunitname" `
-IdentityPoolName "identitypoolnamename" `
-MasterImageVM "XDHyp:\HostingUnits\AzureHostingUnit\image.folder\rg.resourcegroup\masterImage.manageddisk" `
-CustomProperties $customProperties `
-NetworkMapping $networkMapping `
-UseWriteBackCache `
-WriteBackCacheDiskSize 30
<!--NeedCopy-->
You can update an existing catalog using the Set-ProvScheme
command to update the PersistWBC
custom property.
Check the collections in the Citrix Provisioning Console under Sites
After the Citrix Provisioning catalog is created, in the Citrix Provisioning console, you can see two types of collections under Site in the Citrix Provisioning console:
- PVS Provisioned Collections: All PVS-provisioned collections in the site
- Studio Provisioned Collections: All Studio-provisioned collections in the site
In the Studio Provisioned Collections, you can see collections with the same name as the Studio catalog.
Citrix Provisioning PowerShell SDK to get site and vDisk information
-
To get the list of Citrix Provisioning sites where each site lists the Citrix Provisioning servers that are in that site, run the PowerShell command
Get-HypPvsSite
. For example:Get-HypPvsSite -SiteId 00000000-0000-0000-0000-000000000000 -SiteName "exampleSite" -FarmId 00000000-0000-0000-0000-000000000000 -FarmName "exampleFarm" -ResourceLocation 00000000-0000-0000-0000-000000000000 <!--NeedCopy-->
Note:
All the parameters are optional in
Get-HypPvsSite
command. If you don’t enter any parameters, you get the list of all the registered sites. -
To get a list of vDisks where each vDisk lists the site that it can be used with that vDisk, run the PowerShell command
Get-HypPvsDiskInfo
. For example, you can run one of the following:Get-HypPvsDiskInfo -FarmId 00000000-0000-0000-0000-000000000000
Get-HypPvsDiskInfo -SiteId 00000000-0000-0000-0000-000000000000 -StoreId 00000000-0000-0000-0000-000000000000
Get-HypPvsDiskInfo -SiteId 00000000-0000-0000-0000-000000000000 -DiskLocatorId 00000000-0000-0000-0000-000000000000
Note:
The command queries
FarmId
from registered sites usingSiteId
when noFarmId
is given.
In this article
- Considerations
- Limitations
- Requirements
- Key steps
- Create a Citrix Provisioning catalog using the Citrix Studio interface
- Create a customer-managed encryption key enabled catalog
- Create a Citrix Provisioning catalog using PowerShell commands
- Delete WBC disk at shutdown
- Check the collections in the Citrix Provisioning Console under Sites
- Citrix Provisioning PowerShell SDK to get site and vDisk information