Citrix Provisioning

在 Citrix Studio 中创建 Citrix Provisioning 目录

目前,Citrix 为创建 VM 提供两种预配解决方案:Citrix Provisioning 和 Machine Creation Services (MCS)。

要创建 Citrix Provisioning 目录,您必须使用 Citrix Virtual Apps and Desktops 安装向导。借助此功能,您现在可以使用 Citrix Studio(“完整配置”界面,适用于 Citrix DaaS)和 Web Studio(适用于本地 Citrix Virtual Apps and Desktops 部署)以及 PowerShell 创建 Citrix Provisioning 目录。

此实现为您提供了以下优势:

  • 用于管理 MCS 和 Citrix Provisioning 目录的单一统一控制台。
  • 为 Citrix Provisioning 目录提供新功能,例如身份管理解决方案、按需预配等。

目前,此功能可用于 Azure 和 VMware。

本文介绍如何使用 Citrix Studio 用户界面和 PowerShell 命令创建 Azure Citrix Provisioning 目录。

注意事项

  • 映像管理是使用现有的 Citrix Provisioning 控制台完成的。
  • 仅支持 Boot Device Manager (BDM)。
  • 预配 Citrix Provisioning 目标 VM 时,请为目标 VM 选择站点。请确保该站点已注册。

限制

请注意 Azure 的以下限制:

  • 仅支持第 2 代 VM。
  • 可以使用计算机配置文件创建目录。请勿在计算机配置文件输入中启用休眠。
  • 创建目录时,您无法设置以下自定义属性:

    • StorageType
    • OsType
    • MachinesPerStorageAccount
    • StorageAccountsPerResourceGroup
    • UseSharedImageGallery
    • SharedImageGalleryReplicaRatio
    • SharedImageGalleryReplicaMaximum
    • UseEphemeralOsDisk
    • UseManagedDisks
    • StorageTypeAtShutdown

请注意 VMware 的以下限制:

  • 不支持适用于 VM 模板的安全引导。因此,请勿选中 vSphere Client 清单中的 Boot Options(引导选项)下的 Secure Boot(安全引导)复选框。

要求

虚拟机管理程序 所需的 CVAD 版本 支持的 Citrix Provisioning 版本
Azure 2311 2311 及更高版本
VMware 2402(仅通过 PowerShell 创建目录) 2402 及更高版本

关键步骤

  1. 设置 Citrix Provisioning。
  2. 将您的场加入 Citrix Cloud 或 Citrix Virtual Apps and Desktops 站点。请参阅加入 Citrix Cloud 或 Citrix Virtual Apps and Desktops 站点
  3. 创建主目标设备。
  4. 使用映像向导创建虚拟磁盘。请参阅使用映像向导创建虚拟磁盘
  5. 向虚拟机管理程序中添加连接。请参阅 Citrix DaaS:创建和管理连接和资源以及 Citrix Virtual Apps and Desktops:创建和管理连接和资源
  6. 创建 Citrix Provisioning 目录。
  7. 在 Citrix Provisioning 控制台的站点下查看集合。

使用 Citrix Studio 界面创建 Citrix Provisioning 目录

注意:

目前,您只能在 Azure 环境中使用“完整配置”界面或 Web Studio 创建 Citrix Provisioning 目录。在 VMware 环境中,您目前只能使用 PowerShell 命令来创建目录。

如果使用“完整配置”界面:

  1. 登录 Citrix Cloud。在左上角的菜单中,选择我的服务 > DaaS
  2. 管理 > 完整配置中,选择左窗格中的计算机目录

如果使用 Web Studio:

  1. 登录 Web Studio,然后在左侧窗格中选择计算机目录

要使用“完整配置”界面或 Web Studio 创建 Citrix Provisioning 目录,请执行以下操作:

  1. 选择创建计算机目录。目录创建向导将打开。
  2. 计算机类型页面上,为此目录选择计算机类型,例如多会话操作系统单会话操作系统
  3. 计算机管理页面上,请按如下所示选择设置:

    1. 选择进行电源管理的计算机(例如,虚拟机或刀片式 PC)
    2. 选择 Citrix Provisioning 技术。然后,选择 Citrix Provisioning Services (PVS)
    3. 资源字段中,为此目录选择 Azure 网络资源。
  4. (仅对单会话操作系统目录可见)在桌面体验页面上,根据需要选择随机或静态桌面体验。
  5. 目标设备页面上,选择以下选项:

    1. 为要预配的计算机选择场和站点。

      注意:

      • 站点字段仅显示在 Citrix Cloud 中注册的站点。
      • 创建 Citrix Provisioning 目录时,在目标设备页面上,您可能会看到在用于选择要预配的计算机的场和站点的下拉菜单中,列出的某些场和站点已不复存在。解决方法是,您可以运行 PowerShell 命令 Unregister-HypPvsSite 将场和站点从数据库中删除。有关 PowerShell 命令的信息,请参阅 DaaS: Unregister-HypPvsSite(DaaS:Unregister-HypPvsSite)和 Citrix Virtual Apps and Desktops: Unregister-HypPvsSite(Citrix Virtual Apps and Desktops:Unregister-HypPvsSite)。
    2. 选择要与已预配的计算机一起使用的虚拟磁盘。
    3. 为已预配的计算机选择计算机配置文件。
  6. 存储和许可类型页面上,选择用于此目录的存储,然后选择用于在 Azure 中预配 VM 的 Windows 批量许可。
  7. 虚拟机页面上,选择 VM 数量、VM 大小和可用性区域。
  8. NIC 页面上,添加您希望 VM 使用的 NIC。
  9. 磁盘设置页面上,选择回写式缓存磁盘的存储类型和大小。
  10. 资源组页面上,选择是创建资源组还是使用现有组。当您选择创建资源组以预配计算机时,将使用以下格式的名称创建资源组:citrix-xd-<ProvSchemeId>-<Random5CharacterSuffix>

    注意:

    删除目录时,关联的资源组也会随之删除。

  11. 计算机标识页面上:

    1. 选择标识类型。目前,您可以仅对 Azure 环境选择加入了混合 Azure Active Directory
    2. 选择创建新 Active Directory 帐户。指定帐户命名方案。
  12. 域凭据页面上,单击输入凭据。输入您的域凭据,以便在目标 Active Directory 域中执行帐户操作。
  13. 摘要页面上,输入计算机目录的名称,然后单击完成

Citrix Provisioning 计算机目录现已创建。

创建客户管理的启用了加密密钥的目录

可以在 Azure 环境中使用“完整配置”界面和 PowerShell 命令创建启用了客户管理的加密密钥 (CMEK) 的 Citrix Provisioning 目录。

可以创建基于计算机配置文件的目录。重要注意事项如下:

  • 如果存在带有 DES Id 的自定义属性或计算机配置文件,如果主映像 DES Id 不同,它将始终覆盖主映像 DES Id。
  • 如果主映像没有 DES Id,自定义属性中的 DES Id 将覆盖计算机配置文件中的 DES Id 值。
  • 如果主图像没有 DES ID,则可以更改现有目录的 DES Id。新的 VM 只有新的 DES Id。
  • 可以将现有目录更新为启用了 CMEK 的目录。
  • 无法将 DES Id 更改应用到现有 VM。

有关 Azure 客户管理的加密密钥的详细信息,请参阅 Azure 客户管理的加密密钥

使用 PowerShell 命令创建 Citrix Provisioning 目录

  1. 如果您不在 Citrix Provisioning 服务器上或者不在安装了 Citrix Provisioning 控制台的系统中,请下载并安装最新的 Remote PowerShell SDK。有关详细信息,请参阅安装和使用 Remote PowerShell SDK
  2. 打开 PowerShell 窗口。
  3. 运行 PowerShell 命令以创建 Broker 目录和身份池。

    Azure 中的示例:

    New-AcctIdentityPool -IdentityPoolName $catName -NamingScheme "$($catName)##" -NamingSchemeType Numeric -Domain serenity.local
    <!--NeedCopy-->
    

    VMware 中的示例:

    New-AcctIdentityPool `
    -IdentityPoolName $catName `
    -NamingScheme "$($catName)##" `
    -NamingSchemeType Numeric `
    -Domain $domain `
    -ZoneUid $zone.Uid
    <!--NeedCopy-->
    
  4. 运行 New-ProvScheme 命令以创建目录。

    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-->
    

    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-->
    
  5. 创建 Broker 目录。

    Azure 中的示例:

    New-BrokerCatalog -AllocationType Random -Name $catName -PersistUserChanges Discard -ProvisioningType MCS -ProvisioningSchemeId $ps.ProvisioningSchemeUid -SessionSupport MultiSession
    <!--NeedCopy-->
    

    VMware 中的示例:

    New-BrokerCatalog `
    -AllocationType Random `
    -Name $catName `
    -PersistUserChanges Discard `
    -ProvisioningType MCS `
    -ProvisioningSchemeId $ps.ProvisioningSchemeUid `
    -SessionSupport MultiSession `
    -MinimumFunctionalLevel L7_34
    <!--NeedCopy-->
    
  6. 使用 Studio 用户界面或以下 PowerShell 命令将 VM 添加到目录中。示例:

    $adId = New-AcctADAccount -Count 1 -IdentityPoolName $catName
    New-ProvVM -ProvisioningSchemeName $catName -ADAccountName $adId.SuccessfulAccounts.ADAccountName
    <!--NeedCopy-->
    

在 Citrix Provisioning 控制台的“站点”下查看集合

创建 Citrix Provisioning 目录后,在 Citrix Provisioning 控制台中,您可以在 Citrix Provisioning 控制台的站点下看到两种类型的集合:

  • PVS Provisioned Collections(PVS 预配的集合):站点中 PVS 预配的所有集合
  • Studio Provisioned Collections(Studio 预配的集合):站点中 Studio 预配的所有集合

Studio Provisioned Collections(Studio 预配的集合)中,您可以看到与 Studio 目录同名的集合。

Citrix Provisioning 控制台中的站点下的集合示意图

Citrix Provisioning PowerShell SDK 用于获取站点和虚拟磁盘信息

  • 要获取 Citrix Provisioning 站点列表(其中每个站点都列出了该站点中的 Citrix Provisioning 服务器),请运行 PowerShell 命令 Get-HypPvsSite。例如:

     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-->
    

    注意:

    Get-HypPvsSite 命令中的所有参数都是可选参数。如果您不输入任何参数,则会获得所有已注册的站点列表。

  • 要获取虚拟磁盘列表(其中每个虚拟磁盘都列出了可以与该虚拟磁盘一起使用的站点),请运行 PowerShell 命令 Get-HypPvsDiskInfo。例如,您可以运行以下命令之一:

    • 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

    注意:

    如果未提供 FarmId,该命令将使用 SiteId 从已注册的站点中查询 FarmId