创建 Microsoft Azure 计算机目录
创建计算机目录 介绍了创建计算机目录的向导。以下信息涵盖了 Microsoft Azure Resource Manager 云环境特有的详细信息。
注意:
在创建 Microsoft Azure 目录之前,您需要完成与 Microsoft Azure 的连接创建。请参阅 连接到 Microsoft Azure。
创建计算机目录
您可以通过两种方式创建计算机目录:
在 Web Studio 中使用 Azure Resource Manager 映像创建计算机目录
映像可以是磁盘、快照或 Azure Compute Gallery 中映像定义的映像版本,用于在计算机目录中创建 VM。在创建计算机目录之前,请在 Azure Resource Manager 中创建映像。有关映像的常规信息,请参阅 创建计算机目录。
注意:
已弃用对使用与主机连接中配置的区域不同的区域中的主映像的支持。请使用 Azure Compute Gallery 将主映像复制到所需区域。
创建 MCS 计算机目录时,将基于原始 VM 创建一个临时 VM,以执行准备任务,例如启用 DHCP 和许可证重新武装。此临时 VM 称为准备 VM。此准备 VM 的名称遵循 Preparati-84x9n 格式,其中最后五个字符是随机生成的,以避免重复。此准备 VM 的命名约定是固定的,无法自定义。准备任务完成后,准备 VM 将被销毁。
为了断开准备 VM 的网络连接,将创建一个网络安全组以拒绝所有入站和出站流量。每个目录会自动创建一个网络安全组。网络安全组的名称为 Citrix-Deny-All-a3pgu-GUID,其中 GUID 是随机生成的。例如,Citrix-Deny-All-a3pgu-3f161981-28e2-4223-b797-88b04d336dd1。
在计算机目录创建向导中:
-
“计算机类型”和“计算机管理”页面不包含特定于 Azure 的信息。请遵循创建计算机目录文章中的指导。
-
在“映像”页面上,选择要用作在此目录中创建计算机的模板的映像。
如果选择“主映像”作为要使用的映像类型,请单击“选择映像”并按照以下步骤选择所需的主映像:
- (仅适用于在租户内部或跨租户配置了共享映像的连接)选择映像所在的订阅。
- 选择资源组。
- 导航到 Azure VHD、Azure 计算库或 Azure 映像版本。如果需要,为所选映像添加备注。
选择映像时,请考虑以下事项:
- 验证映像上是否安装了 Citrix VDA。
- 如果选择附加到 VM 的 VHD,则必须在继续执行下一步之前关闭 VM。
注意:
- 目录中创建计算机的连接(主机)对应的订阅用绿点表示。其他订阅是与该订阅共享 Azure 计算库的订阅。在这些订阅中,仅显示共享库。有关如何配置共享订阅的信息,请参阅在租户内(跨订阅)共享映像和跨租户共享映像。
- 当您选择启用了 Trusted Launch 的映像或快照时,必须使用将 Trusted Launch 作为安全类型的计算机配置文件。然后,您可以通过在计算机配置文件中指定 SecureBoot 和 vTPM 的值来启用或禁用它们。Shared Image Gallery 不支持 Trusted Launch。有关 Azure Trusted Launch 的信息,请参阅https://docs.microsoft.com/zh-cn/azure/virtual-machines/trusted-launch。
- 您可以在 Windows 上使用 Trusted Launch 创建使用临时 OS 磁盘的预配方案。当您选择启用了 Trusted Launch 的映像时,必须选择启用了 vTPM 的 Trusted Launch 计算机配置文件。要使用临时 OS 磁盘创建计算机目录,请参阅如何使用临时 OS 磁盘创建计算机。
- 当映像复制正在进行时,您可以继续选择该映像作为主映像并完成设置。但是,在映像复制期间,目录创建可能需要更长时间才能完成。MCS 要求复制在目录创建开始后一小时内完成。如果复制超时,目录创建将失败。您可以在 Azure 中验证复制状态。如果复制仍在挂起或复制完成后,请重试。
- 在 Azure 中为计算机目录选择主映像时,MCS 会根据您选择的主映像和计算机配置文件识别操作系统类型。如果 MCS 无法识别,请选择与主映像匹配的操作系统类型。
- 您可以使用 Gen2 映像预配 Gen2 VM 目录,以提高启动时间性能。但是,不支持使用 Gen1 映像创建 Gen2 计算机目录。同样,也不支持使用 Gen2 映像创建 Gen1 计算机目录。此外,任何没有代次信息的旧映像都是 Gen1 映像。
如果选择准备好的映像作为要使用的映像类型,请单击选择映像并根据需要选择准备好的映像。
为确保成功创建 VM,请验证映像是否已安装 Citrix VDA 2311 或更高版本,并且 VDA 上存在 MCSIO。
选择映像后,使用计算机配置文件(Microsoft Entra ID 必需)复选框会自动选中。单击选择计算机配置文件可从资源组列表中浏览到 VM 或 ARM 模板规范。目录中的 VM 可以从选定的计算机配置文件继承配置。
验证 ARM 模板规范,以确保其可用作计算机配置文件来创建计算机目录。验证 ARM 模板规范有两种方法:
- 从资源组列表中选择 ARM 模板规范后,单击下一步。如果 ARM 模板规范存在错误,则会显示错误消息。
- 运行以下 PowerShell 命令之一:
Test-ProvInventoryItem -HostingUnitName <string> -InventoryPath <string>Test-ProvInventoryItem -HostingUnitUid <Guid> -InventoryPath <string>
VM 可以从计算机配置文件继承的配置示例包括:
- 加速网络
- 启动诊断
- 主机磁盘缓存(与操作系统和 MCSIO 磁盘相关)
- 计算机大小(除非另有说明)
- 放置在 VM 上的标签
创建目录后,您可以查看映像从计算机配置文件继承的配置。在计算机目录节点上,选择目录以在下部窗格中查看其详细信息。然后,单击模板属性选项卡以查看计算机配置文件属性。标签部分最多显示三个标签。要查看放置在 VM 上的所有标签,请单击查看全部。
如果您希望 MCS 在 Azure 专用主机上预配 VM,请启用使用专用主机组复选框,然后从列表中选择一个主机组。主机组是表示专用主机集合的资源。专用主机是一种服务,提供托管一个或多个 VM 的物理服务器。您的服务器专用于您的 Azure 订阅,不与其他订阅者共享。当您使用专用主机时,Azure 可确保您的 VM 是在该主机上运行的唯一计算机。此功能适用于必须满足法规或内部安全要求的场景。要了解有关主机组及其使用注意事项的更多信息,请参阅Azure 专用主机。
重要提示:
- 仅显示启用了 Azure 自动放置的主机组。
- 使用主机组会更改向导后面提供的虚拟机页面。该页面上仅显示所选主机组包含的计算机大小。此外,可用区会自动选择,不可供选择。
-
仅当您使用 Azure Resource Manager 映像时,才会显示存储和许可证类型页面。
- 选择存储冗余类型:
- 本地冗余存储 (LRS):LRS 允许您从所有可用的存储类型中进行选择。使用 LRS 时,Azure 仅在指定的可用区内部署虚拟机 (VM)。
- 区域冗余存储 (ZRS):ZRS 允许在 VM 放置方面具有更大的灵活性,因为 Azure 可以在任何可用区域中启动 VM。这是优于本地冗余存储 (LRS) 的一个关键优势,即使磁盘的原始区域变得不可访问,也能确保 VM 的可用性。但是,ZRS 仅与高级 SSD 和标准 SSD 存储类型兼容。
-
选择用于计算机目录的存储类型:存储类型决定了向导的虚拟机页面上提供的计算机大小。
- 高级 SSD。提供高性能、低延迟的磁盘存储选项,适用于具有 I/O 密集型工作负载的 VM。
- 标准 SSD。提供经济高效的存储选项,适用于需要在较低 IOPS 级别下保持一致性能的工作负载。
- 标准 HDD。提供可靠、低成本的磁盘存储选项,适用于运行对延迟不敏感的工作负载的 VM。
- 选择使用 Azure 临时 OS 磁盘。Azure 临时 OS 磁盘提供了一种经济高效的存储选项,它重用 VM 的本地磁盘来托管操作系统磁盘。或者,您可以使用 PowerShell 创建使用临时 OS 磁盘的计算机。有关详细信息,请参阅Azure 临时磁盘。使用临时 OS 磁盘时,请考虑以下事项: - Azure 临时 OS 磁盘和 MCS I/O 不能同时启用。 - 要更新使用临时 OS 磁盘的计算机,您必须选择一个大小不超过 VM 缓存磁盘或临时磁盘大小的映像。 - 您不能使用向导后面提供的在电源循环期间保留 VM 和系统磁盘选项。
- 选择存储冗余类型:

> **Note:**
>
> - The identity disk is always created using Standard SSD irrespective of the storage type that you choose.
> - If you select **ZRS** as the **Storage redundancy**, you get the option to only select **Premium SSD** and **Standard SSD**.
For details about Azure storage types and storage replication, see the following:
- <https://docs.microsoft.com/en-us/azure/storage/common/storage-introduction/>
- <https://docs.microsoft.com/en-us/azure/virtual-machines/premium-storage-performance/>
- <https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy/>
选择是使用现有 Windows 许可证还是 Linux 许可证。
- Windows licenses: Using Windows licenses along with Windows images (Azure platform support images or custom images) lets you run Windows VMs in Azure at a reduced cost. There are two types of licenses:
- **Windows Server license**. Lets you use your Windows Server or Azure Windows Server licenses, allowing you to use Azure Hybrid Benefits. For details, see <https://azure.microsoft.com/en-us/pricing/hybrid-benefit/>. Azure Hybrid Benefit reduces the cost of running VMs in Azure to the base compute rate, waiving the cost of extra Windows Server licenses from the Azure gallery.
- **Windows Client license**. Lets you bring your Windows 10 and Windows 11 licenses to Azure, allowing you to run Windows 10 and Windows 11 VMs in Azure without the need for extra licenses. For details, see [Client Access Licenses and Management Licenses](https://www.microsoft.com/en-us/licensing/product-licensing/client-access-license).
You can verify that the provisioned VM is using the licensing benefit by running the following PowerShell command: `Get-AzVM -ResourceGroup MyResourceGroup -Name MyVM`.
- For the Windows Server license type, verify that the license type is **Windows_Server**. More instructions are available at <https://docs.microsoft.com/en-us/azure/virtual-machines/windows/hybrid-use-benefit-licensing/>.
- For the Windows Client license type, verify that the license type is **Windows_Client**. More instructions are available at <https://docs.microsoft.com/en-us/azure/virtual-machines/windows/windows-desktop-multitenant-hosting-deployment/>.
Alternatively, you can use the `Get-Provscheme` PowerShell SDK to do the verification. For example: `Get-Provscheme -ProvisioningSchemeName "My Azure Catalog"`. For more information about this cmdlet, see <https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Get-ProvScheme/>.
- Linux licenses: With bring-your-own-subscription (BYOS) Linux licenses, you do not have to pay for the software. The BYOS charge only includes the compute hardware fee. There are two types of licenses:
- **RHEL_BYOS**: To use RHEL_BYOS type successfully, enable Red Hat Cloud Access on your Azure subscription.
- **SLES_BYOS**: The BYOS versions of SLES include support from SUSE.
You can set the LicenseType value to Linux options at `New-ProvScheme` and `Set-ProvScheme`.
Example of setting LicenseType to RHEL_BYOS at `New-ProvScheme`:
```
New-ProvScheme -CleanOnBoot -ProvisioningSchemeName "azureCatalog" -RunAsynchronously -Scope @() -SecurityGroup @() -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="StorageAccountType" Value="StandardSSD_LRS" /><Property xsi:type="StringProperty" Name="ResourceGroups" Value="hu-dev-mcs" /><Property xsi:type="StringProperty" Name="OsType" Value="Linux" /><Property xsi:type="StringProperty" Name="LicenseType" Value="RHEL_BYOS" /></CustomProperties>'
<!--NeedCopy--> ```
Example of setting LicenseType to SLES_BYOS at `Set-ProvScheme`:
```
Set-ProvScheme -ProvisioningSchemeName "azureCatalog" -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="StorageAccountType" Value="StandardSSD_LRS" /><Property xsi:type="StringProperty" Name="ResourceGroups" Value="hu-dev-mcs" /><Property xsi:type="StringProperty" Name="OsType" Value="Linux" /><Property xsi:type="StringProperty" Name="LicenseType" Value="SLES_BYOS" /></CustomProperties>'
<!--NeedCopy--> ```
> **Note:**
>
> If `LicenseType` value is empty, then the default values are Azure Windows Server License or Azure Linux License, depending on OsType value.
Example of setting LicenseType to empty:
```
Set-ProvScheme -ProvisioningSchemeName "azureCatalog" -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="StorageAccountType" Value="StandardSSD_LRS" /><Property xsi:type="StringProperty" Name="ResourceGroups" Value="hu-dev-mcs" /><Property xsi:type="StringProperty" Name="OsType" Value="Linux" /></CustomProperties>'
<!--NeedCopy--> ```
See the following documents to understand License types and their benefits:
- <https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.compute.models.virtualmachine.licensetype?view=azure-dotnet>
- <https://docs.microsoft.com/en-us/azure/virtual-machines/linux/azure-hybrid-benefit-linux>
Azure Compute Gallery (formerly Azure Shared Image Gallery) is a repository for managing and sharing images. It lets you make your images available throughout your organization. We recommend that you store an image in SIG when creating large non-persistent machine catalogs because doing that enables faster resets of VDA OS disks. After you select **Place prepared image in Azure Compute Gallery**, the **Azure Compute Gallery settings** section appears, letting you specify more Azure Compute Gallery settings:
- **Ratio of virtual machines to image replicas**. Lets you specify the ratio of virtual machines to image replicas that you want Azure to keep. By default, Azure keeps a single image replica for every 40 non-persistent machines. For persistent machines, that number defaults to 1,000.
- **Maximum replica count**. Lets you specify the maximum number of image replicas that you want Azure to keep. The default is 100.
> **Note:**
>
> A gallery is created in ACG to store the image. This gallery is accessible only to MCS for VM creation and doesn't appear on the **Select an image** page.
-
在虚拟机页面上,指明要创建的 VM 数量和计算机大小。创建目录后,可以通过编辑目录来更改计算机大小。
-
NIC 页面不包含 Azure 特定的信息。请遵循 (/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-create.html#nic) 文章中的指导。
-
在磁盘设置页面上,选择是否启用回写式缓存。启用 MCS 存储优化功能后,您可以在创建目录时配置以下设置。这些设置适用于 Azure 和 GCP 环境。

启用回写式缓存后,您可以执行以下操作:
-
配置用于缓存临时数据的磁盘和 RAM 大小。有关详细信息,请参阅 (/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-create.html#configure-cache-for-temporary-data)。
-
选择回写式缓存磁盘的存储类型。以下存储选项可用于回写式缓存磁盘:
- 高级 SSD
- 标准 SSD
- 标准 HDD
注意:
如果在存储和许可证类型页面上选择 ZRS 作为存储冗余,则回写式缓存磁盘存储冗余默认设置为 ZRS
-
选择是否希望回写式缓存磁盘对预配的 VM 保持持久。选择启用回写式缓存以使选项可用。默认情况下,选择使用非持久性回写式缓存磁盘。
-
选择回写式缓存磁盘的类型。
- 使用非持久性回写缓存磁盘。如果选中,回写缓存磁盘将在电源循环期间删除。重定向到它的任何数据都将丢失。如果 VM 的临时磁盘有足够的空间,它将用于托管回写缓存磁盘以降低成本。创建目录后,您可以检查预配的计算机是否使用临时磁盘。为此,请单击目录并验证“模板属性”选项卡上的信息。如果使用临时磁盘,您将看到“非持久性回写缓存磁盘”,其值为“是(使用 VM 的临时磁盘)”。如果不是,您将看到“非持久性回写缓存磁盘”,其值为“否(不使用 VM 的临时磁盘)”。
- 使用持久性回写缓存磁盘。如果选中,回写缓存磁盘将为预配的 VM 持久保留。启用此选项会增加存储成本。
注意:
如果满足以下所有条件,目录将自动使用 Azure 临时磁盘作为 WBC 磁盘:
- MCSIO 已启用。
- WBC 磁盘是非持久性的。
- VM 大小包含一个足够大的临时磁盘,可用于 WBC 磁盘。
- 未为 WBC 磁盘指定驱动器号。
此功能适用于目录创建和编辑,有助于降低存储成本。
-
选择是否在电源循环期间保留 VDA 的 VM 和系统磁盘。
在电源循环期间保留 VM 和系统磁盘。当您选择“启用回写缓存”时可用。默认情况下,VM 和系统磁盘在关机时删除,并在启动时重新创建。如果您想缩短 VM 重启时间,请选择此选项。请记住,启用此选项也会增加存储成本。
-
选择是否启用“存储成本节省”。如果启用,则在 VM 关闭时将存储磁盘降级为标准 HDD,从而节省存储成本。VM 在重新启动时会切换回其原始设置。此选项适用于存储磁盘和回写缓存磁盘。或者,您也可以使用 PowerShell。请参阅在 VM 关闭时将存储类型更改为较低层。
注意:
Microsoft 对 VM 关闭期间更改存储类型施加了限制。Microsoft 将来也可能会阻止存储类型更改。有关详细信息,请参阅这篇Microsoft 文章。
-
选择是否加密此目录中计算机上的数据以及要使用的加密密钥。使用客户管理的密钥 (CMK) 进行服务器端加密允许您在托管磁盘级别管理加密并保护目录中计算机上的数据。默认设置继承自计算机配置文件或主映像,其中配置文件具有优先权:
- 如果您正在使用带有 CMK 的 计算机配置文件,则会自动选择“使用以下密钥加密每台计算机上的数据”选项,并默认使用 计算机配置文件 中的密钥。
- 如果您正在使用带有平台管理密钥 (PMK) 的 计算机配置文件 并且 主映像 已使用 CMK 加密,则会自动选择“使用以下密钥加密每台计算机上的数据”选项,并默认使用主映像中的密钥。
- 如果您未使用 计算机配置文件 并且 主映像 已使用 CMK 加密,则会自动选择“使用以下密钥加密每台计算机上的数据”选项,并默认使用 主映像 中的密钥。
有关详细信息,请参阅 Azure 服务器端加密。
-
-
在“资源组”页面上,选择是创建资源组还是使用现有资源组。
- 如果您选择创建资源组,请选择“下一步”。
- 如果您选择使用现有资源组,请从“可用预配资源组”列表中选择组。请记住:选择足够的组以容纳您要在目录中创建的计算机。如果选择的组太少,则会显示一条消息。如果您计划稍后向目录中添加更多 VM,则可能需要选择多于最低要求的组。目录创建后,您无法向其中添加更多资源组。
有关详细信息,请参阅 Azure 资源组。
-
在“计算机身份”页面上,选择身份类型并配置此目录中计算机的身份。如果您将 VM 选择为“已加入 Microsoft Entra”,则可以将它们添加到 Microsoft Entra 安全组。详细步骤如下:
- 在“身份类型”字段中,选择“已加入 Microsoft Entra”。此时将显示“Microsoft Entra 安全组(可选)”选项。
- 单击“Microsoft Entra 安全组: 新建”。
- 输入组名称,然后单击“创建”。
- 按照屏幕上的说明登录 Azure。 如果组名称在 Azure 中不存在,则会显示一个绿色图标。否则,将显示一条错误消息,要求您输入新名称。
- 输入 VM 的计算机帐户命名方案。
目录创建后,Citrix Virtual Apps and Desktops 会代表您访问 Azure,并为该组创建安全组和动态成员资格规则。根据该规则,具有此目录中指定命名方案的 VM 会自动添加到安全组。
将具有不同命名方案的 VM 添加到此目录需要您登录到 Azure。Citrix Virtual Apps™ and Desktops 随后可以访问 Azure 并根据新的命名方案创建动态成员资格规则。
删除此目录时,从 Azure 删除安全组也需要登录到 Azure。
-
域凭据和摘要页面不包含 Azure 特定的信息。请遵循 (/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-create.html) 文章中的指导。
提示:
在摘要页面上,您可以根据 Azure 的公开标价查看此计算机目录中虚拟机的每月估算成本。如果托管目录的连接在 Azure 中具有
Microsoft.Consumption/pricesheets/read权限,则估算值将使用您组织的合同定价进行计算。选择成本估算以查看详细信息。要获得更准确的估算,请根据您的使用情况调整设置,例如每日开机时间、每周工作日和节省选项。
完成向导。
Azure 临时磁盘符合回写缓存磁盘条件的条件
仅当满足以下所有条件时,才能将 Azure 临时磁盘用作回写缓存磁盘:
-
回写缓存磁盘必须是非持久性的,因为 Azure 临时磁盘不适用于持久性数据。
-
所选的 Azure VM 大小必须包含临时磁盘。
-
不需要启用临时 OS 磁盘。
-
接受将回写缓存文件放置在 Azure 临时磁盘上。
-
Azure 临时磁盘大小必须大于(回写缓存磁盘大小 + 分页文件保留空间 + 1 GB 缓冲区空间)的总和。
非持久性回写缓存磁盘方案
下表描述了在创建计算机目录时,临时磁盘用于回写缓存的三种不同场景。
| 场景 | 结果 |
|---|---|
| 满足使用临时磁盘作为回写缓存的所有条件。 | WBC 文件 mcsdif.vhdx 放置在临时磁盘上。 |
| 临时磁盘空间不足,无法用于回写缓存。 | 创建了一个 VHD 磁盘 MCSWCDisk,WBC 文件 mcsdif.vhdx 放置在此磁盘上。 |
临时磁盘有足够的空间用于回写缓存,但 UseTempDiskForWBC 设置为 false。 |
创建了一个 VHD 磁盘 MCSWCDisk,WBC 文件 mcsdif.vhdx 放置在此磁盘上。 |
创建 Azure 模板规范
您可以在 Azure 门户中创建 Azure 模板规范,并在 Web Studio 和 PowerShell 命令中使用它来创建或更新 MCS 计算机目录。
要为现有 VM 创建 Azure 模板规范,请执行以下操作:
- 转到 Azure 门户。选择一个资源组,然后选择 VM 和网络接口。从顶部的 … 菜单中,单击 Export template。
-
如果要为目录预配创建模板规范,请清除 Include parameters 复选框。在 JSON 文件中验证
parameters和variables部分是否为:"parameters": {}, "variables": {} <!--NeedCopy--> - 单击 Download 将模板保存为 JSON 文件。
- 在 Azure 门户上,选择 模板规范,然后单击 导入模板。
- 浏览并导入保存在计算机上的计算机配置文件(JSON 格式)。
- 提供名称、订阅、资源组、位置和版本。单击下一步: 编辑模板。
- 创建审核+创建并创建模板规范。
- 在模板规范页面上,验证您刚刚创建的模板规范。单击该模板规范。在左侧面板中,单击版本。
- 您可以通过单击创建新版本来创建新版本。指定新的版本号,更改为当前模板规范,然后单击审核 + 创建以创建模板规范的新版本。
您可以使用以下 PowerShell 命令获取有关模板规范和模板版本的信息:
-
要获取有关模板规范的信息,请运行:
get-item XDHyp:\HostingUnits\East\machineprofile.folder\abc.resourcegroup\bggTemplateSpec.templatespec <!--NeedCopy--> -
要获取有关模板规范版本的信息,请运行:
get-item XDHyp:\HostingUnits\East\machineprofile.folder\abc.resourcegroup\bggTemplateSpec.templatespec\bgg1.0.templatespecversion <!--NeedCopy-->
在创建或更新目录时使用模板规范
您可以使用模板规范作为计算机配置文件输入来创建或更新 MCS 计算机目录。为此,您可以使用 Web Studio 或 PowerShell 命令。
- 对于 Web Studio,请参阅在 Web Studio 中使用 Azure 资源管理器映像创建计算机目录
- 对于 PowerShell,请参阅使用 PowerShell 在创建或更新目录时使用模板规范
Azure 服务器端加密
Citrix Virtual Apps and Desktops 通过 Azure Key Vault 支持 Azure 托管磁盘的客户管理加密密钥。通过此支持,您可以使用自己的加密密钥加密计算机目录的托管磁盘,从而管理您的组织和合规性要求。有关详细信息,请参阅Azure 磁盘存储的服务器端加密。
在使用此功能管理磁盘时:
-
要更改磁盘加密所用的密钥,请在
DiskEncryptionSet中更改当前密钥。与该DiskEncryptionSet关联的所有资源都将更改为使用新密钥进行加密。 -
当您禁用或删除密钥时,任何使用该密钥的磁盘的 VM 都将自动关闭。关闭后,除非重新启用密钥或分配新密钥,否则 VM 将无法使用。任何使用该密钥的目录都无法开机,并且您无法向其中添加 VM。
使用客户管理的加密密钥时的重要注意事项
使用此功能时,请考虑以下事项:
- 与客户管理的密钥相关的所有资源(Azure Key Vault、磁盘加密集、VM、磁盘和快照)必须位于同一订阅和区域中。
- 使用客户管理的密钥加密的磁盘、快照和映像无法移动到其他资源组和订阅。
- 有关每个区域的磁盘加密集限制,请参阅 Microsoft 站点。
注意:
有关配置 Azure 服务器端加密的信息,请参阅 快速入门:使用 Azure 门户创建 Key Vault。
Azure 客户管理的加密密钥
创建计算机目录时,您可以选择是否加密目录中预配的计算机上的数据。使用客户管理的加密密钥进行服务器端加密,可让您在托管磁盘级别管理加密并保护目录中计算机上的数据。磁盘加密集 (DES) 代表客户管理的密钥。要使用此功能,您必须首先在 Azure 中创建 DES。DES 采用以下格式:
/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet
从列表中选择一个 DES。您选择的 DES 必须与您的资源位于同一订阅和区域中。
请参阅 使用客户管理的密钥创建计算机目录。
Azure 主机端磁盘加密
您可以创建具有主机端加密功能的 MCS 计算机目录。目前,MCS 仅支持此功能的计算机配置文件工作流。您可以使用 VM 或模板规范作为计算机配置文件的输入。
此加密方法不会通过 Azure 存储加密数据。托管 VM 的服务器会加密数据,然后加密的数据流经 Azure 存储服务器。因此,此加密方法可实现端到端数据加密。
限制:
Azure 主机端磁盘加密具有以下特点:
- 并非所有 Azure 计算机大小都支持
- 与 Azure 磁盘加密不兼容
要创建具有主机端加密功能的计算机目录,请执行以下操作:
- 检查订阅是否已启用主机端加密功能。为此,请参阅 https://learn.microsoft.com/zh-cn/rest/api/resources/features/get?tabs=HTTP/。如果未启用,则必须为订阅启用该功能。有关为订阅启用该功能的信息,请参阅 https://learn.microsoft.com/zh-cn/azure/virtual-machines/disks-enable-host-based-encryption-portal?tabs=azure-powershell#prerequisites/。
-
检查特定的 Azure VM 大小是否支持主机端加密。为此,请在 PowerShell 窗口中运行以下命令之一:
PS XDHyp:\Connections\<your connection>\east us.region\serviceoffering.folder> <!--NeedCopy-->PS XDHyp:\HostingUnits\<your hosting unit>\serviceoffering.folder> <!--NeedCopy--> -
在 Azure 门户中创建已启用主机端加密的 VM 或模板规范,作为计算机配置文件的输入。
- 如果要创建 VM,请选择支持主机端加密的 VM 大小。创建 VM 后,VM 属性“主机端加密”将启用。
- 如果要使用模板规范,请在
securityProfile中将参数Encryption at Host分配为 true。
-
通过选择 VM 或模板规范,使用计算机配置文件工作流创建 MCS 计算机目录。
- 操作系统磁盘/数据磁盘:通过客户管理的密钥和平台管理的密钥进行加密
- 临时操作系统磁盘:仅通过平台管理的密钥进行加密
- 缓存磁盘:通过客户管理的密钥和平台管理的密钥进行加密
您可以使用 Web Studio 或运行 PowerShell 命令来创建计算机目录。
从计算机配置文件中检索主机加密信息
当您使用 AdditionalData 参数运行 PowerShell 命令时,可以从计算机配置文件中检索主机加密信息。如果 EncryptionAtHost 参数为 True,则表示已为计算机配置文件启用主机加密。
例如:当计算机配置文件输入为 VM 时,运行以下命令:
(get-item XDHyp:\HostingUnits\myAzureNetwork\machineprofile.folder\abc.resourcegroup\def.vm).AdditionalData
<!--NeedCopy-->
例如:当计算机配置文件输入为模板规范时,运行以下命令:
(get-item XDHyp:\HostingUnits\myAzureNetwork\machineprofile.folder\abc.resourcegroup\def_templatespec.templatespec\EncryptionAtHost.templatespecversion).AdditionalData
<!--NeedCopy-->
托管磁盘上的双重加密
您可以创建具有双重加密的计算机目录。使用此功能创建的任何目录都将所有磁盘通过平台和客户管理的密钥进行服务器端加密。您拥有并维护 Azure Key Vault、加密密钥和磁盘加密集 (DES)。
双重加密是平台端加密(默认)和客户管理的加密 (CMEK)。因此,如果您是高度安全敏感的客户,担心与任何加密算法、实现或受损密钥相关的风险,则可以选择此双重加密。持久性操作系统和数据磁盘、快照和映像都使用双重加密进行静态加密。
注意:
- 您可以使用 Web Studio 和 PowerShell 命令创建和更新具有双重加密的计算机目录。有关 PowerShell 命令,请参阅创建具有双重加密的计算机目录。
- 您可以使用非计算机配置文件工作流或基于计算机配置文件的工作流来创建或更新具有双重加密的计算机目录。
- 如果您使用非计算机配置文件工作流创建计算机目录,则可以重复使用存储的
DiskEncryptionSetId。- 如果您使用计算机配置文件,则可以使用 VM 或模板规范作为计算机配置文件输入。
限制:
- Ultra 磁盘或 Premium SSD v2 磁盘不支持双重加密。
- 非托管磁盘不支持双重加密。
- 如果禁用与目录关联的 DiskEncryptionSet 密钥,则目录中的 VM 将被禁用。
- 与客户管理的密钥相关的所有资源(Azure Key Vault、磁盘加密集、VM、磁盘和快照)必须位于同一订阅和区域中。
- 每个订阅每个区域最多只能创建 50 个磁盘加密集。
Azure 资源组
Azure 预配资源组提供了一种预配向用户提供应用程序和桌面的 VM 的方法。您可以创建资源组或使用现有资源组在 MCS 计算机目录中预配 VM。您可以在多个计算机目录中使用同一资源组。有关 Azure 资源组的信息,请参阅 Microsoft 文档。
Azure 资源组使用情况
每个 Azure 资源组的虚拟机、托管磁盘、快照和映像数量没有限制。(每个 Azure 资源组 240 个 VM 和 800 个托管磁盘的限制已取消。)
- 使用完全范围的服务主体创建计算机目录时,MCS 仅创建一个 Azure 资源组并将该组用于目录。
- 使用窄范围的服务主体创建计算机目录时,您必须为目录提供一个空的、预先创建的 Azure 资源组。
Azure 临时磁盘
一个 Azure 临时磁盘 允许您重新利用缓存磁盘、临时磁盘或 NVMe 磁盘来存储支持 Azure 的虚拟机的操作系统磁盘。此功能对于需要比标准 HDD 磁盘更高性能的 SSD 磁盘的 Azure 环境非常有用。有关使用 Azure 临时磁盘创建目录的信息,请参阅 使用 Azure 临时磁盘创建目录。
注意:
持久目录不支持临时操作系统磁盘。
临时操作系统磁盘要求您的预配方案使用托管磁盘和共享映像库。
存储临时操作系统临时磁盘
您可以选择将临时操作系统磁盘存储在 VM 临时磁盘、资源磁盘或 NVMe 磁盘上。此功能使您能够将临时操作系统磁盘与没有缓存或缓存不足的 VM 配合使用。此类 VM 具有临时磁盘、资源磁盘或 NVMe 磁盘来存储临时操作系统磁盘,例如 Ddv4。
请考虑以下事项:
- 临时磁盘存储在 VM 缓存磁盘、VM 临时(资源)磁盘或 NVMe 磁盘中。缓存磁盘优先于临时磁盘,除非缓存磁盘不足以容纳操作系统磁盘的内容。
- 对于更新,如果新映像大于缓存磁盘但小于临时磁盘,则会导致用 VM 的临时磁盘替换临时操作系统磁盘。
Azure 临时磁盘和 Machine Creation Services (MCS) 存储优化 (MCS I/O)
Azure 临时操作系统磁盘和 MCS I/O 不能同时启用。
重要注意事项如下:
-
您不能同时启用临时操作系统磁盘和 MCS I/O 来创建计算机目录。
- 如果您在
New-ProvScheme或Set-ProvScheme中将 PowerShell 参数 (UseWriteBackCache和UseEphemeralOsDisk) 设置为 true,则会显示相应的错误消息并失败。 - 对于已启用这两种功能创建的现有计算机目录,您仍然可以:
- 更新计算机目录。
- 添加或删除 VM。
- 删除计算机目录。
Azure 计算库
使用 Azure 计算库(以前称为 Azure 共享映像库)作为 Azure 中 MCS 预配计算机的已发布映像存储库。您可以在库中存储已发布的映像,以加快操作系统磁盘的创建和填充速度,从而缩短非持久性 VM 的启动和应用程序启动时间。共享映像库包含以下三个元素:
- 库:映像存储在此处。MCS 为每个计算机目录创建一个库。
- 库映像定义:此定义包含有关已发布映像的信息(操作系统类型和状态、Azure 区域)。MCS 为为目录创建的每个映像创建一个映像定义。
- 库映像版本:共享映像库中的每个映像可以有多个版本,每个版本可以在不同区域有多个副本。每个副本都是已发布映像的完整副本。
注意:
共享映像库功能仅与托管磁盘兼容。它不适用于旧版计算机目录。
有关详细信息,请参阅 Azure 计算库概述。
有关使用 PowerShell 通过 Azure 计算库映像创建或更新计算机目录的信息,请参阅 使用 Azure 计算库映像创建或更新计算机目录。
Azure 机密 VM
Azure 机密计算 VM 可确保您的虚拟桌面在内存中加密并在使用中受到保护。
您可以使用 MCS 创建包含 Azure 机密 VM 的目录。您必须使用计算机配置文件工作流来创建此类目录。您可以将 VM 和 ARM 模板规范都用作计算机配置文件输入。
您还可以使用机密 VM 类型 Azure 主映像和机密 VM 类型 Azure 计算机配置文件来创建准备好的映像,然后使用此准备好的映像来创建 MCS 目录。
机密 VM 的重要注意事项
支持的 VM 大小和使用机密 VM 创建计算机目录的重要注意事项如下:
-
要检查机密 VM 支持的 VM 大小,请参阅 大小。
-
使用机密 VM 创建计算机目录。
- 您可以使用 Web Studio 和 PowerShell 命令创建 Azure 机密 VM 计算机目录。
- 您必须使用基于计算机配置文件的流程来创建 Azure 机密 VM 计算机目录。您可以将 VM 或模板规范用作计算机配置文件输入。
-
主映像和计算机配置文件输入必须都启用相同的机密安全类型。不同的 Azure 资源使用不同的标签来指示机密 VM 类型。
对于 Azure 快照、托管磁盘或虚拟机,安全类型为:
- ConfidentialVM_DiskEncryptedWithCustomerKey。
- ConfidentialVM_DiskEncryptedWithPlatformKey。
- ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey
对于 Azure ARM 模板规范版本,安全类型为:
- VMGuestStateOnly:仅加密 VM 访客状态的机密 VM
- DiskWithVMGuestState:OS 磁盘和 VM 访客状态均使用平台托管密钥或客户托管密钥加密的机密 VM。普通 OS 磁盘和临时 OS 磁盘都可以加密。
-
您可以使用 AdditionalData 参数获取各种资源类型(例如托管磁盘、快照、Azure 计算库映像、VM 和 ARM 模板规范)的机密 VM 信息。例如:
PS C:\Users\username> (get-item XDHyp:\HostingUnits\mynetwork\image.folder\username-dev-testing-rg.resourcegroup\username-dev-tsvda.vm).AdditionalData <!--NeedCopy-->附加数据字段为:
- DiskSecurityType
- ConfidentialVMDiskEncryptionSetId
-
DiskSecurityProfiles
要获取机器大小的机密计算属性,请运行以下命令:
(Get-Item -path "XDHyp:\Connections\my-connection-name\East US.region\serviceoffering.folder\abc.serviceoffering").AdditionalData附加数据字段为
ConfidentialComputingType。 - 您无法将主映像或计算机配置文件从机密安全类型更改为非机密安全类型,也无法从非机密安全类型更改为机密安全类型。
- 对于任何不正确的配置,您会收到相应的错误消息。
准备主映像和计算机配置文件
在创建一组机密 VM 之前,请按照以下步骤为其准备主映像和计算机配置文件:
- 在 Azure 门户中,创建机密 VM 并使用特定设置,例如:
- 安全类型:机密虚拟机
- 机密 OS 磁盘加密:已启用。
- 密钥管理:使用平台管理的密钥进行机密磁盘加密 有关创建机密 VM 的更多信息,请参阅这篇 Microsoft 文章。
-
在创建的 VM 上准备主映像。在创建的 VM 上安装必要的应用程序和 VDA。
注意:
使用 VHD 创建机密 VM 不受支持。请改用 Azure 计算库、托管磁盘或快照来达到此目的。
-
通过以下任一方式创建计算机配置文件:
- 如果步骤 1 中创建的现有 VM 具有所需的计算机属性,则使用该 VM。
-
如果您选择 ARM 模板规范作为计算机配置文件,请根据需要创建模板规范。具体来说,配置满足您的机密 VM 要求的参数,例如 SecurityEncryptionType 和 diskEncryptionSet(用于客户管理的密钥)。有关详细信息,请参阅 创建 Azure 模板规范。
注意:
- 确保主映像和计算机配置文件具有相同的安全密钥类型。
- 要创建需要使用客户管理的密钥进行机密 OS 磁盘加密的机密 VM,请确保主映像和计算机配置文件中的磁盘加密集 ID 相同。
如果您想使用机密 VM 类型准备的映像来创建 MCS 目录,请使用机密 VM 类型主映像和机密 VM 类型计算机配置文件创建准备的映像。有关创建准备的映像的信息,请参阅 创建映像定义和初始映像版本。
使用 Web Studio 或 PowerShell 命令创建机密 VM
要创建一组机密 VM,请使用主映像和从所需机密 VM 派生的计算机配置文件创建计算机目录。
要使用 Web Studio 创建目录,请按照 创建计算机目录 中所述的步骤操作。请记住以下注意事项:
- 在映像页面上,选择您为创建机密 VM 准备的主映像和计算机配置文件。计算机配置文件选择是强制性的,并且只有与所选主映像具有相同安全加密类型的配置文件才可供选择。
- 在虚拟机页面上,只有支持机密 VM 的计算机大小才会显示以供选择。
- 在磁盘设置页面上,您无法指定磁盘加密集,因为它继承自所选的计算机配置文件。
启动完整性监视
如果您的 VM 启用了安全启动和虚拟可信平台模块 (vTPM),并且安装了 GuestAttestation 扩展,Microsoft Defender for Cloud 可以远程验证您的 VM 是否以健康的方式启动。此监视称为 启动完整性监视。有关启动完整性监视的更多信息,请参阅 启动完整性监视概述。
您可以使用计算机配置文件(VM 或模板规范)为 MCS 计算机目录 VM(持久性 VM 和非持久性 VM)启用启动完整性监视。启动完整性监视仅支持受信任启动和机密 VM。
您可以使用 Set-ProvScheme 更新现有目录以使用启动完整性,使其指向已启用启动完整性的计算机配置文件。然后,添加到目录的新 VM 将启用完整性监视。
您还可以使用 Set-ProvVmUpdateTimeWindow、Set-ProvVm 或 Maintenance Cycles 更新目录中的现有 VM。您可以将以下内容进行转换:
- 未启用完整性监视的 VM 转换为启用完整性监视
- 已启用完整性监视的 VM 转换为未启用完整性监视
创建已启用完整性监视的计算机目录
所需权限:
请确保您具有以下权限:
Microsoft.Compute/virtualMachines/extensions/readMicrosoft.Compute/virtualMachines/extensions/write
执行以下操作以创建已启用完整性监视的 MCS 计算机目录:
- 创建已安装
GuestAttestation扩展的计算机配置文件(VM 或模板规范)。(链接到以下内容) -
使用 Web Studio 或 PowerShell 命令,通过计算机配置文件输入创建 MCS 计算机目录。
注意:
您可以使用带有
AdditionalData参数的Get-ItemPowerShell 命令检查 VM 或模板规范的GuestAttestationExtensionEnabled状态。 - 将 VM 添加到目录。
创建已安装 GuestAttestation 扩展并已启用的计算机配置文件
创建一个已启用完整性监视的 VM 或模板规范作为计算机配置文件输入,这意味着已安装 GuestAttestation 扩展。
要创建已启用完整性监视的 VM,请执行以下操作:
- 登录到 Azure 门户。
-
如果要创建新的 VM:
- 将“安全类型”选择为“受信任的启动虚拟机”或“机密虚拟机”。
-
单击“配置安全功能”并选中“完整性监视”复选框。
注意:
对于完整性监视,您必须启用安全启动和 vTPM。
- 在“概述”页面上,转到“安全类型”部分并验证“安全类型”是否为“受信任的启动”或“机密虚拟机”,并且“完整性监视”已启用。
- 导航到“扩展 + 应用程序”页面以验证是否已安装
GuestAttestation。
要启用现有 VM 的完整性监视,请参阅 启用完整性监视 - Azure 门户。
要创建已安装 GuestAttestation 扩展的模板规范:
-
您可以使用模板规范安装 GuestAttestation。请参阅启用完整性监视 - 模板规范。
注意:
在此模板规范中,在设置下,您可以配置用于证明的端点。如果您不进行配置,则 Azure 会决定要配置哪些端点
Azure 应用商店
Citrix Virtual Apps and Desktops 支持在 Azure 上使用包含计划信息的主映像来创建计算机目录。有关详细信息,请参阅 Microsoft Azure Marketplace。
提示:
Azure Marketplace 上的一些映像(例如标准 Windows Server 映像)不附加计划信息。Citrix Virtual Apps and Desktops 功能适用于付费映像。
确保在共享映像库中创建的映像包含 Azure 计划信息
使用本节中的过程在 Web Studio 中查看共享映像库映像。这些映像可以选择用作主映像。要将映像放入共享映像库,请在库中创建映像定义。

在发布选项页面中,验证购买计划信息。
购买计划信息字段最初为空。使用用于映像的购买计划信息填充这些字段。未能填充购买计划信息可能导致计算机目录过程失败。

验证购买计划信息后,在定义中创建映像版本。此版本用作主映像。单击添加版本:

在“版本详细信息”部分中,选择映像快照或托管磁盘作为源:

创建按需容量预留 VM 目录
按需容量预留使您能够在 Azure 区域或可用性区域中预留任意时长的计算容量。有关 Azure 按需容量预留的更多信息,请参阅 Microsoft 文档 按需容量预留。
您可以使用计算机配置文件(VM 或模板规范)创建具有按需容量预留的 Azure VM 的 MCS 计算机目录。您还可以更新现有计算机目录和现有 VM,以添加或删除按需容量预留。
此功能适用于持久性和非持久性计算机目录。
限制
此功能不适用于:
- Spot 虚拟机
- 主机组
- 启用休眠的 VM
有关限制的更多信息,请参阅 Microsoft 文档 限制和约束。
创建按需容量预留 VM 目录的步骤
- 创建计算机配置文件源(VM 或 ARM 模板规范)。有关创建 VM 或 ARM 模板规范的信息,请参阅 将 VM 与容量预留组关联。
-
运行以下 PowerShell 命令以检查计算机配置文件是否已启用按需容量预留。如果计算机配置文件已启用按需容量预留,则会获得
capacityReservationGroup id。例如,
如果计算机配置文件源是 VM,请运行以下命令:
(Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\demand-capacity.vm").AdditionalData <!--NeedCopy-->如果计算机配置文件源是模板规范,请运行以下命令:
(Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\fc-aeh-templatespec.templatespec\14.0.0-capacity-reservation.templatespecversion").AdditionalData <!--NeedCopy--> - 使用 Web Studio 或 PowerShell 命令,通过计算机配置文件创建计算机目录。
您可以使用 Set-ProvScheme 命令更新目录。您还可以使用 PowerShell 命令 Set-ProvVmUpdateTimeWindow 更新现有 VM。计算机配置文件将在下次开机时更新。
嵌套虚拟化
如果您配置了启用嵌套虚拟化的主 VM,则使用该主 VM 创建的 MCS 计算机目录中的所有 VM 都将启用嵌套虚拟化。此功能适用于持久性和非持久性 VM。您可以通过映像更新来更新现有 MCS 计算机目录和现有 VM,以启用嵌套虚拟化。
目前,只有 Dv3 和 Ev3 VM 大小支持嵌套虚拟化。
有关嵌套虚拟化的信息,请参阅 Microsoft 博客 Azure 中的嵌套虚拟化。
仅限 NVMe 的 SKU
通常,旧一代的通用、内存优化和计算优化 VM(D/Ev5 或 Fv2 及更早版本)支持 SCSI。新一代(Da/Ea/Fav6 及更新版本)通常仅支持 NVMe 存储接口。MCS 支持 NVMe 存储控制器类型,以支持 Azure 上的新 VM SKU。
有关 NVMe 的信息,请参阅 Microsoft 文档 NVMe 常见问题解答。
您可以使用以下服务产品创建 MCS 目录:
- 支持 SCSI 和 NVMe,请参阅 使用同时支持 SCSI 和 NVMe 的服务产品创建目录
- 仅支持 NVMe,请参阅 使用仅支持 NVMe 的服务产品创建目录
限制
- 所有支持 NVMe 的服务产品都不同时支持 Trusted Launch。
- Gen 1 VM 不支持 NVMe。
- 某些操作系统映像可能不支持 NVMe。在这种情况下,Azure UI 上的 NVMe 选项将显示为灰色。
使用同时支持 SCSI 和 NVMe 的服务产品创建目录
-
创建一个用作主映像的 VM。
- 使用支持 NVMe 的市场映像。支持 NVMe 的 Azure Marketplace 映像列表可在 远程 NVMe 支持的操作系统映像 中找到。
-
拍摄 VM 操作系统磁盘的快照,以在
New-ProvScheme命令的MasterImageVM参数中使用,或者直接使用托管磁盘。使用以下方法之一检查您的主映像是否支持 NVMe:
-
检查
Get-Item的AdditionalData字段中的SupportedDiskControllerTypes。例如:(get-item XDHyp:\HostingUnits\mynetwork\image.folder\abc.resourcegroup\deg-snapshot).AdditionalData <!--NeedCopy-->SupportedDiskControllerTypes必须为SCSI, NVMe。 -
使用 Azure CLI 和 PowerShell
-
- 使用同时支持 NVMe 和 SCSI 的服务产品。
- 使用已启用 NVMe 的 VM 或模板规范作为计算机配置文件。选择任何将
DiskControllerType设置为 NVMe 的 VM。直接将 VM 用作计算机配置文件,或导出模板并将模板规范用作计算机配置文件。
使用仅支持 NVMe 的服务产品创建目录
- 创建用作主映像的 VM。使用支持 NVMe 的市场映像。支持 NVMe 的 Azure Marketplace 映像列表可在以下位置找到:Supported OS images for remote NVMe。
-
使用仅支持 NVMe 的服务产品。
注意:
由于服务产品支持 NVMe,因此您不需要具有
DiskControllerType设置为NVMe的计算机配置文件即可在目录上启用 NVMe。但是,如果您使用计算机配置文件,则它必须将DiskControllerType设置为NVMe,或者必须将其留空或未指定。
修改现有持久性 VM
VM 创建后,无法更改其 NVMe 配置。更改持久性 VM 的 NVMe 配置的方法是重新部署该 VM。执行此操作的逻辑是:
- 保存 VM 的当前状态。
-
启动现有 VM 后,检测 VM 是否需要重新部署。
- 如果配置更改是从 NVMe 到 NVMe 或从 SCSI 到 SCSI,则无需重新部署 VM。
- 如果配置更改是从 SCSI 到 NVMe,反之亦然,则重新部署并重新创建 VM。
使用 PowerShell 创建计算机目录
本节详细介绍了如何使用 PowerShell 创建目录:
- 创建具有非持久性回写缓存磁盘的目录
- 创建具有持久性回写缓存磁盘的目录
- 使用 MCSIO 提高启动性能
- 使用 PowerShell 创建或更新目录时使用模板规范(#use-template-spec-in-creating-or-updating-a-catalog-using-powershell)
- 具有受信任启动的计算机目录(#machine-catalogs-with-trusted-launch)
- 使用计算机配置文件属性值(#use-machine-profile-property-values)
- 使用客户管理的加密密钥创建计算机目录(#create-a-machine-catalog-with-customer-managed-encryption-key)
- 创建具有双重加密的计算机目录(#create-a-machine-catalog-with-double-encryption)
- 创建具有 Azure 临时磁盘的目录(#create-a-catalog-with-an-azure-ephemeral-disks)
- Azure 专用主机(#azure-dedicated-hosts)
- 使用 Azure 计算库映像创建或更新计算机目录(#create-or-update-a-machine-catalog-using-an-azure-compute-gallery-image)
- 配置共享映像库(#configure-shared-image-gallery)
- 将计算机预配到指定的可用性区域(#provision-machines-into-specified-availability-zones)
- 存储类型(#storage-types)
- 使用 Azure Spot VM 创建目录(#create-a-catalog-using-azure-spot-vms)
- 配置备份 VM 大小(#configure-backup-vm-sizes)
- 复制所有资源上的标签(#copy-tags-on-all-resources)
- 预配已安装 Azure Monitor Agent 的目录 VM(#provision-catalog-vms-with-azure-monitor-agent-installed)
创建具有非持久性回写缓存磁盘的目录
要配置具有非持久性回写缓存磁盘的目录,请使用 PowerShell 参数 New-ProvScheme CustomProperties。自定义属性 UseTempDiskForWBC 指示您是否接受使用 Azure 临时存储来存储回写缓存文件。如果要将临时磁盘用作回写缓存磁盘,则在运行 New-ProvScheme 时必须将其配置为 true。如果未指定此属性,则该参数默认设置为 False。
例如,使用 CustomProperties 参数将 UseTempDiskForWBC 设置为 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="PersistOsDisk" Value="false"/> `
<Property xsi:type="StringProperty" Name="PersistVm" Value="false"/> `
<Property xsi:type="StringProperty" Name="StorageAccountType" Value="Premium_LRS"/> `
<Property xsi:type="StringProperty" Name="WBCDiskStorageType" Value="Premium_LRS"/> `
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client"/> `
<Property xsi:type="StringProperty" Name="UseTempDiskForWBC" Value="true"/> `
</CustomProperties>'
<!--NeedCopy-->
注意:
将计算机目录提交为使用 Azure 本地临时存储作为回写缓存文件后,以后无法更改为使用 VHD。
创建具有持久性回写缓存磁盘的目录
要配置具有持久性回写缓存磁盘的目录,请使用 PowerShell 参数 New-ProvScheme CustomProperties。此参数支持一个额外的属性 PersistWBC,用于确定 MCS 预配的计算机的回写缓存磁盘如何持久化。属性 PersistWBC 仅在指定 UseWriteBackCache 参数且 WriteBackCacheDiskSize 参数设置为指示已创建磁盘时使用。
在支持 PersistWBC 之前,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="StorageAccountType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="benvaldev5RG3" />
</CustomProperties>
<!--NeedCopy-->
使用这些属性时,请注意,如果从 CustomProperties 参数中省略这些属性,它们将包含默认值。属性 PersistWBC 有两个可能的值:true 或 false。
当 Citrix Virtual Apps and Desktops 管理员使用 Web Studio 关闭计算机时,将 PersistWBC 属性设置为 true 不会删除回写缓存磁盘。
当 Citrix Virtual Apps and Desktops 管理员使用 Web Studio 关闭计算机时,将 PersistWBC 属性设置为 false 会删除回写缓存磁盘。
注意:
如果省略
PersistWBC属性,则该属性默认为 false,并且在使用 Web Studio 关闭计算机时会删除回写缓存。
例如,使用 CustomProperties 参数将 PersistWBC 设置为 true:
<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="StorageAccountType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="benvaldev5RG3" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="true" />
</CustomProperties>
<!--NeedCopy-->
重要:
PersistWBC属性只能使用New-ProvSchemePowerShell cmdlet 进行设置。尝试在创建后更改预配方案的CustomProperties对计算机目录和计算机关闭时回写缓存磁盘的持久性没有影响。
例如,将 New-ProvScheme 设置为使用回写缓存,同时将 PersistWBC 属性设置为 true:
New-ProvScheme
-CleanOnBoot
-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=`"StorageAccountType`" Value=`"Premium_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"benvaldev5RG3`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`" /></CustomProperties>"
-HostingUnitName "adSubnetScale1"
-IdentityPoolName "BV-WBC1-CAT1"
-MasterImageVM "XDHyp:\HostingUnits\adSubnetScale1\image.folder\GoldImages.resourcegroup\W10MCSIO-01_OsDisk_1_a940e6f5bab349019d57ccef65d2c7e3.manageddisk"
-NetworkMapping @{"0"="XDHyp:\HostingUnits\adSubnetScale1\\virtualprivatecloud.folder\CloudScale02.resourcegroup\adVNET.virtualprivatecloud\adSubnetScale1.network"}
-ProvisioningSchemeName "BV-WBC1-CAT1"
-ServiceOffering "XDHyp:\HostingUnits\adSubnetScale1\serviceoffering.folder\Standard_D2s_v3.serviceoffering"
-UseWriteBackCache
-WriteBackCacheDiskSize 127
-WriteBackCacheMemorySize 256
<!--NeedCopy-->
使用 MCSIO 提高启动性能
启用 MCSIO 后,可以提高 Azure 和 GCP 托管磁盘的启动性能。在 New-ProvScheme 命令中使用 PowerShell PersistOSDisk 自定义属性来配置此功能。与 New-ProvScheme 相关的选项包括:
<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="StorageAccountType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="Resource <!--NeedCopy-->
``````<!--NeedCopy-->
<!--NeedCopy-->
````````Groups" Value="benvaldev5RG3" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
</CustomProperties>
<!--NeedCopy-->
要启用此功能,请将 PersistOSDisk 自定义属性设置为 true。例如:
New-ProvScheme
-CleanOnBoot
-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=`"StorageAccountType`" Value=`"Premium_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"benvaldev5RG3`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /></CustomProperties>"
-HostingUnitName "adSubnetScale1"
-IdentityPoolName "BV-WBC1-CAT1"
-MasterImageVM "XDHyp:\HostingUnits\adSubnetScale1\image.folder\GoldImages.resourcegroup\W10MCSIO-01_OsDisk_1_a940e6f5bab349019d57ccef65d2c7e3.manageddisk"
-NetworkMapping @{"0"="XDHyp:\HostingUnits\adSubnetScale1\\virtualprivatecloud.folder\CloudScale02.resourcegroup\adVNET.virtualprivatecloud\adSubnetScale1.network"}
-ProvisioningSchemeName "BV-WBC1-CAT1"
-ServiceOffering "XDHyp:\HostingUnits\adSubnetScale1\serviceoffering.folder\Standard_D2s_v3.serviceoffering"
-UseWriteBackCache
-WriteBackCacheDiskSize 127
-WriteBackCacheMemorySize 256
<!--NeedCopy-->
使用 PowerShell 创建或更新目录时使用模板规范
您可以使用模板规范作为计算机配置文件输入来创建或更新 MCS 计算机目录。为此,您可以使用 Web Studio 或 PowerShell 命令。
对于 Web Studio,请参阅 在 Web Studio 中使用 Azure Resource Manager 映像创建计算机目录
使用 PowerShell 命令:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*。 - 创建或更新目录。
- 要创建目录:
-
使用
New-ProvScheme命令,并将模板规范作为计算机配置文件输入。例如:New-ProvScheme -MasterImageVM "XDHyp:/HostingUnits/azure/image.folder/fgthj.resourcegroup/nab-ws-vda_OsDisk_1_xxxxxxxxxxa.manageddisk" MachineProfile "XDHyp:/HostingUnits/azure/machineprofile.folder/fgthj.resourcegroup/test.templatespec/V1.templatespecversion" -ProvisioningSchemeName <String> -HostingUnitName <String> -IdentityPoolName <String> [-ServiceOffering <String>][-CustomProperties <String> [-LoggingId <Guid>] [-BearerToken <String>][-AdminAddress <String>] [<CommonParameters>] <!--NeedCopy--> -
完成目录创建。
-
-
要更新目录,请使用
Set-ProvScheme命令,并将模板规范用作计算机配置文件输入。例如:Set-ProvScheme -MasterImageVm 'XDHyp://Connections/Azure/East Us.region/vm.folder/MasterDisk.vm' MachineProfile 'XDHyp:/HostingUnits/azure/machineprofile.folder/fgthj.resourcegroup/testing.templatespec/V1.templatespecversion' [-ProvisioningSchemeName] <String> [-CustomProperties <String>][-ServiceOffering <String>] [-PassThru] [-LoggingId <Guid>] [-BearerToken <String>][-AdminAddress <String>] [<CommonParameters>] <!--NeedCopy-->
- 要创建目录:
具有受信任启动的计算机目录
要成功创建具有受信任启动的计算机目录,请使用:
- 已启用受信任启动的主映像。您必须使用计算机配置文件,但计算机配置文件不必启用受信任启动。如果您使用已启用受信任启动的主映像和未启用受信任启动的计算机配置文件,则会收到警告消息,因为主映像和计算机配置文件之间的受信任启动配置不匹配。
- 支持受信任启动的 VM 大小
- 支持受信任启动的 Windows VM 版本。目前,Windows 10、Windows 11、Windows Server 2016、2019 和 2022 支持受信任启动。
要查看 Citrix Virtual Apps and Desktops 产品清单项并确定 VM 大小是否支持受信任启动,请运行以下命令:
- 打开 PowerShell 窗口。
- 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
-
运行以下命令:
$s = (ls XDHyp:\HostingUnits\<name of hosting unit>\serviceoffering.folder\"<VM size>.serviceoffering) <!--NeedCopy--> - 运行
$s | select -ExpandProperty Additionaldata -
检查
SupportsTrustedLaunch属性的值。- 如果
SupportsTrustedLaunch为 True,则 VM 大小支持受信任启动。 - 如果
SupportsTrustedLaunch为 False,则 VM 大小不支持受信任启动。
- 如果
根据 Azure 的 PowerShell,您可以使用以下命令确定支持受信任启动的 VM 大小:
(Get-AzComputeResourceSku | where {$_.Locations.Contains($region) -and ($_.Name -eq "<VM size>") })[0].Capabilities
<!--NeedCopy-->
以下示例描述了运行 Azure PowerShell 命令后 VM 大小是否支持受信任启动。
-
示例 1:如果 Azure VM 仅支持第 1 代,则该 VM 不支持受信任启动。因此,运行 Azure PowerShell 命令后,不会显示
TrustedLaunchDisabled功能。 -
示例 2:如果 Azure VM 仅支持第 2 代,并且
TrustedLaunchDisabled功能为 True,则不支持第 2 代 VM 大小进行受信任启动。 -
示例 3:如果 Azure VM 仅支持第 2 代,并且运行 PowerShell 命令后未显示
TrustedLaunchDisabled功能,则支持第 2 代 VM 大小进行受信任启动。
有关 Azure 虚拟机受信任启动的更多信息,请参阅 Microsoft 文档 Azure 虚拟机受信任启动。
创建具有受信任启动的计算机目录
- 创建启用受信任启动的主映像。请参阅 Microsoft 文档 受信任启动 VM 映像。
- 创建安全类型为 受信任启动虚拟机 的 VM 或模板规范。有关创建 VM 或模板规范的更多信息,请参阅 Microsoft 文档 部署受信任启动 VM。
-
使用 Web Studio 或 PowerShell 命令创建计算机目录。
- 如果要使用 Web Studio,请参阅 在 Web Studio 中使用 Azure 资源管理器映像创建计算机目录。
-
如果要使用 PowerShell 命令,请使用
New-ProvScheme命令,并将 VM 或模板规范作为计算机配置文件输入。有关创建目录的完整命令列表,请参阅 创建目录。将 VM 作为计算机配置文件输入的
New-ProvScheme示例:New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1 -MasterImageVM "XDHyp:/HostingUnits/azure/image.folder/fgthj.resourcegroup/nab-ws-vda_OsDisk_1_xxxxxxxxxxa.manageddisk" -MachineProfile "XDHyp:\HostingUnits\<adnet>\machineprofile.folder\<def.resourcegroup>\<machine profile vm.vm>" -ProvisioningSchemeName <String> -HostingUnitName <String> -IdentityPoolName <String> [-ServiceOffering <String>][-CustomProperties <String>] [<CommonParameters>] <!--NeedCopy-->将模板规范作为计算机配置文件输入的
New-ProvScheme示例:New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1 -MasterImageVM "XDHyp:/HostingUnits/azure/image.folder/fgthj.resourcegroup/nab-ws-vda_OsDisk_1_xxxxxxxxxxa.manageddisk" MachineProfile "XDHyp:/HostingUnits/azure/machineprofile.folder/fgthj.resourcegroup/test.templatespec/V1.templatespecversion" -ProvisioningSchemeName <String> -HostingUnitName <String> -IdentityPoolName <String> [-ServiceOffering <String>][-CustomProperties <String>] [<CommonParameters>] <!--NeedCopy-->
更新具有受信任启动的计算机目录
您可以更新持久和非持久计算机目录:
对于持久性计算机目录:

对于非持久性计算机目录:

使用受信任启动创建计算机目录时出错
在使用受信任启动创建计算机目录时,在以下情况下会出现相应的错误:
| 场景 | 错误 |
|---|---|
| 如果在创建非托管目录时选择了计算机配置文件 | MachineProfileNotSupportedForUnmanagedCatalog |
| 如果在创建托管目录时未选择计算机配置文件,且主映像源的安全类型为受信任启动 | MachineProfileNotFoundForTrustedLaunchMasterImage |
| 如果选择的计算机配置文件的安全类型与主映像的安全类型不同 | SecurityTypeConflictBetweenMasterImageAndMachineProfile |
| 如果在创建目录时选择的 VM 大小不支持受信任启动,但使用的主映像支持受信任启动 | MachineSizeNotSupportTrustedLaunch |
使用计算机配置文件属性值
计算机目录使用自定义属性中定义的以下属性:
- 可用性区域
- 专用主机组 ID
- 磁盘加密集 ID
- 操作系统类型
- 许可证类型
- 存储类型
如果未明确定义这些自定义属性,则属性值将从 ARM 模板规范或 VM(以用作计算机配置文件的为准)中设置。此外,如果未指定 ServiceOffering,则会从计算机配置文件中设置它。
注意:
如果计算机配置文件中缺少某些属性且未在自定义属性中定义,则在适用的情况下将采用属性的默认值。
以下部分描述了 New-ProvScheme 和 Set-ProvScheme 中的一些场景,其中 CustomProperties 定义了所有属性或值是从 MachineProfile 派生的。
-
New-ProvScheme 场景
-
MachineProfile 具有所有属性,并且未定义 CustomProperties。示例:
New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm"以下值被设置为目录的自定义属性:
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="DedicatedHostGroupId" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="Zones" Value="<mpA-value>"/> </CustomProperties> <!--NeedCopy--> -
MachineProfile 具有一些属性,但未定义 CustomProperties。示例:MachineProfile 仅具有 LicenseType 和 OsType。
New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm"以下值被设置为目录的自定义属性:
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpA-value>"/> </CustomProperties> <!--NeedCopy--> -
MachineProfile 和 CustomProperties 都定义了所有属性。示例:
New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -CustomProperties $CustomPropertiesA自定义属性优先。以下值被设置为目录的自定义属性:
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="DedicatedHostGroupId" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="Zones" Value="<CustomPropertiesA-value>"/> </CustomProperties> <!--NeedCopy--> - 某些属性在 MachineProfile 中定义,某些属性在 CustomProperties 中定义。示例:
- CustomProperties 定义 LicenseType 和 StorageAccountType
- MachineProfile 定义 LicenseType、OsType 和 Zones
New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -CustomProperties $CustomPropertiesA以下值被设置为目录的自定义属性:
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesA-value>"/> <Property xsi:type="StringProperty" Name="Zones" Value="<mpA-value>"/> </CustomProperties> <!--NeedCopy--> -
某些属性在 MachineProfile 中定义,某些属性在 CustomProperties 中定义。此外,未定义 ServiceOffering。示例:
- CustomProperties 定义 StorageType
- MachineProfile 定义 LicenseType
New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mp.vm" -ServiceOffering "XDHyp:\HostingUnits\azureunit\serviceoffering.folder\<explicit-machine-size>.serviceoffering" <!--NeedCopy-->以下值设置为目录的自定义属性:
Get-ProvScheme | select ServiceOffering serviceoffering.folder\<explicit-machine-size>.serviceoffering Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="explicit-storage-type"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="value-from-machineprofile"/> </CustomProperties> <!--NeedCopy--> - 如果 OsType 既不在 CustomProperties 中也不在 MachineProfile 中,则:
- 该值从主映像中读取。
- 如果主映像是未托管磁盘,则 OsType 设置为 Windows。示例:
New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -MasterImageVM "XDHyp:\HostingUnits\azureunit\image.folder\linux-master-image.manageddisk"主映像中的值将写入自定义属性,在本例中为 Linux。
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="OSType" Value="Linux"/> </CustomProperties> <!--NeedCopy-->
-
-
Set-ProvScheme 方案
-
具有以下内容的现有目录:
-
StorageAccountType和 OsType 的 CustomProperties - 定义区域的 MachineProfile
mpA.vm
-
-
更新:
- 定义 StorageAccountType 的 MachineProfile mpB.vm
- 定义 LicenseType 和 OsType 的一组新的自定义属性 $CustomPropertiesB
Set-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpB.vm" -CustomProperties $CustomPropertiesB以下值被设置为目录的自定义属性:
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpB-value>"/> <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesB-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesB-value>"/> </CustomProperties> <!--NeedCopy--> - 具有以下内容的现有目录:
- S
torageAccountType和 OsType 的 CustomProperties - 定义 StorageAccountType 和 LicenseType 的 MachineProfile
mpA.vm
- S
- 更新:
- 一组新的自定义属性 $CustomPropertiesB,定义了 StorageAccountType 和 OsType。
Set-ProvScheme -CustomProperties $CustomPropertiesB以下值被设置为目录的自定义属性:
Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesB-value>"/> <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesB-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<mp-A-value>"/> </CustomProperties> <!--NeedCopy--> - 具有以下内容的现有目录:
-
StorageAccountType和 OsType 的 CustomProperties - 定义 Zones 的 MachineProfile
mpA.vm
-
- 更新:
- 定义 StorageAccountType 和 LicenseType 的 MachineProfile mpB.vm
-
ServiceOffering未指定
Set-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpB.vm"以下值被设置为目录的自定义属性:
Get-ProvScheme | select ServiceOffering serviceoffering.folder\<value-from-machineprofile>.serviceoffering Get-ProvScheme | select CustomProperties <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpB-value>"/> <Property xsi:type="StringProperty" Name="OSType" Value="<prior-CustomProperties-value>"/> <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpB-value>"/> </CustomProperties> <!--NeedCopy-->
-
创建或更新每个 VM 具有多个 NIC 的目录
MCS 支持每个 VM 具有多个 NIC。您可以将 VM 上的多个 NIC 关联到多个子网,但是,这些子网必须位于同一个虚拟网络 (VNet) 中。您可以使用 PowerShell 命令来:
您可以创建或更新非计算机配置文件型计算机目录和计算机配置文件型计算机目录,以使 VM 具有多个 NIC。目前,对于计算机配置文件型计算机目录,您只能拥有与计算机配置文件源中指定的 NIC 数量相同的 NIC。
加速网络等属性派生自计算机配置文件源。
注意:
VM 大小必须支持相同数量的 NIC 和相应的加速网络,否则将出现错误。
您可以检索与所选 VM 大小关联的最大 NIC 数量。当您使用 AdditionalData 参数运行 PowerShell get-item 命令时,名为 MaxNetworkInterfaces 的 PowerShell 属性会显示最大 NIC 计数。
检索最大 NIC 计数
要检索最大 NIC 计数:
- 从 Delivery Controller™ 主机打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。 - 运行
Get-ChildItem -Path "XDHyp:\Connections\abc-connection\East US.region\serviceoffering.folder"以列出所有可用的 VM 大小。 - 运行
get-item -Path "XDHyp:\Connections\abc-connection\East US.region\serviceoffering.folder\Standard_M416ms_v2.serviceoffering").AdditionalData - 检查
MaxNetworkInterfaces以了解最大 NIC 计数。
在 VM 上创建具有多个 NIC 的目录
要在 VM 上创建具有多个 NIC 的目录,请执行以下操作:
- 从 Delivery Controller 主机打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。 - 如果尚未创建,请创建一个身份池。
- 创建预配方案:
-
如果创建的是非计算机配置文件型计算机目录,请使用
NetworkMappings参数运行New-ProvScheme命令。您可以向参数NetworkMappings添加多个子网。例如:New-Provscheme -NetworkMappings @{"0"="subnetpath1";"1"="subnetpath1"} <!--NeedCopy--> -
如果创建的是计算机配置文件型计算机目录:
- 在 Azure 中创建具有多个 NIC 的 VM。有关信息,请参阅 创建和管理具有多个 NIC 的 Windows 虚拟机。您还可以创建一个新 VM,然后在 Azure 门户的“网络”页面中附加一个网络接口。
- 运行
New-ProvScheme命令,并将 VM 作为计算机配置文件输入。
注意:
创建基于计算机配置文件的计算机目录时,
NetworkMappings的计数必须与计算机配置文件的NetworkInterfaceCount相同。可以从Get-item -Path "machine profile path"的AdditionalData中检索NetworkInterfaceCount。
-
- 完成目录创建。
更新目录以使虚拟机具有多个网卡
要更新目录以使虚拟机具有多个网卡,请执行以下操作:
- 从 Delivery Controller 主机打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。 -
更新预配方案:
-
如果创建非计算机配置文件型计算机目录,请使用
NetworkMappings参数运行Set-ProvScheme命令。您可以向参数NetworkMappings添加多个子网。例如:Set-Provscheme -NetworkMappings @{"0"="subnetpath1";"1"="subnetpath1"} <!--NeedCopy--> -
如果基于计算机配置文件创建计算机目录:
- 在 Azure 中创建具有多个网卡的虚拟机。有关信息,请参阅创建和管理具有多个网卡的 Windows 虚拟机。
- 运行
Set-ProvScheme命令,并将虚拟机作为计算机配置文件输入。
-
更新现有虚拟机以使虚拟机具有多个网卡
您还可以使用 Set-ProvVMUpdateTimeWindow 更新现有虚拟机,并在更新时间窗口内对现有虚拟机执行电源循环。
预配已安装 Azure Monitor 代理的目录虚拟机
Azure 监视是一项服务,可用于从 Azure 和本地环境中收集、分析遥测数据并对其执行操作。
Azure Monitor 代理 (AMA) 从虚拟机等计算资源收集监视数据,并将数据传送到 Azure Monitor。它目前支持收集事件日志、系统日志和性能指标,并将其发送到 Azure Monitor 指标和 Azure Monitor 日志数据源。
为了通过唯一标识监控数据中的 VM 来启用监控,您可以预配安装了 AMA 作为扩展的 MCS 计算机目录的 VM。
要求
-
权限:确保您拥有 (/zh-cn/citrix-virtual-apps-desktops/install-configure/connections/connection-azure-resource-manager#required-azure-permissions) 中指定的最低 Azure 权限以及以下使用 Azure Monitor 的权限:
Microsoft.Compute/virtualMachines/extensions/readMicrosoft.Compute/virtualMachines/extensions/writeMicrosoft.Insights/DataCollectionRuleAssociations/ReadMicrosoft.Insights/dataCollectionRuleAssociations/writeMicrosoft.Insights/DataCollectionRules/Read
- 数据收集规则:在 Azure 门户中设置数据收集规则。有关设置 DCR 的信息,请参阅创建数据收集规则。DCR 是特定于平台的(Windows 或 Linux)。请确保根据所需平台创建 DCR。 AMA 使用数据收集规则 (DCR) 来管理资源(例如 VM)与数据源(例如 Azure Monitor 指标和 Azure Monitor 日志)之间的映射。
- 默认工作区:在 Azure 门户中创建工作区。有关创建工作区的信息,请参阅 创建 Log Analytics 工作区。当您收集日志和数据时,信息会存储在工作区中。工作区具有唯一的工作区 ID 和资源 ID。工作区名称对于给定的资源组必须是唯一的。创建工作区后,配置数据源和解决方案以将其数据存储在工作区中。
- 已将监视器扩展列入白名单:扩展
AzureMonitorWindowsAgent和AzureMonitorLinuxAgent是 Citrix 定义的白名单扩展。要查看白名单扩展列表,请使用 PoSH 命令Get-ProvMetadataConfiguration。 - 主映像:Microsoft 建议在从现有计算机创建新计算机之前,从现有计算机中删除扩展。如果未删除扩展,可能会导致残留文件和意外行为。有关详细信息,请参阅 如果从现有 VM 重新创建 VM。
要预配启用了 AMA 的目录 VM:
-
设置计算机配置文件模板。
-
如果要使用 VM 作为计算机配置文件模板:
- 在 Azure 门户上创建 VM。
- 启动 VM。
- 在 Resources 下将 VM 添加到数据收集规则。这会在模板 VM 上调用代理安装。
注意:
如果必须创建 Linux 目录,请设置 Linux 计算机。
-
如果要使用模板规范作为计算机配置文件模板:
- 设置模板规范。
-
将以下扩展和数据收集规则关联添加到生成的模板规范:
{ "type": "Microsoft.Compute/virtualMachines/extensions", "apiVersion": "2022-03-01", "name": "<vm-name>/AzureMonitorWindowsAgent", "dependsOn": [ "Microsoft.Compute/virtualMachines/<vm-name>" ], "location": "<azure-region>", "properties": { "publisher": "Microsoft.Azure.Monitor", "type": "AzureMonitorWindowsAgent", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": true, "enableAutomaticUpgrade": true } }, { "type": "Microsoft.Insights/dataCollectionRuleAssociations", "apiVersion": "2021-11-01", "name": "<associatio-name>", "scope": "Microsoft.Compute/virtualMachines/<vm-name>", "dependsOn": [ "Microsoft.Compute/virtualMachines/<vm-name>", "Microsoft.Compute/virtualMachines/<vm-name>/extensions/AzureMonitorWindowsAgent" ], "properties": { "description": "Association of data collection rule. Deleting this association will break the data collection for this Arc server.", "dataCollectionRuleId": "/subscriptions/<azure-subscription>/resourcegroups/<azure-resource-group>/providers/microsoft.insights/datacollectionrules/<azure-data-collection-rule>" } } <!--NeedCopy-->
-
-
创建或更新现有 MCS 计算机目录。
-
要创建新的 MCS 目录:
- 在 Web Studio 中选择该 VM 或模板规范作为计算机配置文件。
- 继续执行后续步骤以创建目录。
-
要更新现有 MCS 目录,请使用以下 PoSH 命令:
-
要让新 VM 获取更新的计算机配置文件模板,请运行以下命令:
Set-ProvScheme -ProvisioningSchemeName "name" -MachineProfile "XDHyp:\HostingUnits\Unit1\machineprofile.folder\abc.resourcegroup\ab-machine-profile.vm" <!--NeedCopy--> -
要使用更新的计算机配置文件模板更新现有 VM:
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1 <!--NeedCopy-->
-
-
- 启动目录虚拟机。
- 转到 Azure 门户,检查监视扩展是否已安装在 VM 上,以及 VM 是否显示在 DCR 的资源下。几分钟后,监视数据将显示在 Azure Monitor 上。
故障排除
有关 Azure Monitor Agent 故障排除指南的信息,请参阅以下内容:
- https://learn.microsoft.com/zh-cn/azure/azure-monitor/agents/azure-monitor-agent-troubleshoot-windows-vm/
- https://learn.microsoft.com/zh-cn/azure/azure-resource-manager/troubleshooting/create-troubleshooting-template/
使用客户管理的加密密钥创建计算机目录
使用客户管理的加密密钥创建计算机目录的详细步骤如下:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。 - 输入
cd xdhyp:/。 - 输入
cd .\HostingUnits\(your hosting unit)。 - 输入
cd diskencryptionset.folder。 - 输入
dir以获取磁盘加密集列表。 - 复制磁盘加密集的 ID。
-
创建自定义属性字符串以包含磁盘加密集的 ID。例如:
$customProperties = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"> <Property xsi:type=`"StringProperty`" Name=`"StorageAccountType`" Value=`"Standard_LRS`" /> <Property xsi:type=`"StringProperty`" Name=`"persistWBC`" Value=`"False`" /> <Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"false`" /> <Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /> <Property xsi:type=`"StringProperty`" Name=`"DiskEncryptionSetId`" Value=`"/subscriptions/0xxx4xxx-xxb-4bxx-xxxx-xxxxxxxx/resourceGroups/abc/providers/Microsoft.Compute/diskEncryptionSets/abc-des`"/> </CustomProperties> <!--NeedCopy--> -
如果尚未创建身份池,请创建一个。例如:
New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain def.local -NamingSchemeType Numeric <!--NeedCopy--> -
运行 New-ProvScheme 命令:例如:
New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1 -MasterImageVM "XDHyp:\HostingUnits\azure-res2\image.folder\def.resourcegroup\def.snapshot" -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure-res2\\virtualprivatecloud.folder\def.resourcegroup\def-vnet.virtualprivatecloud\subnet1.network"} -ProvisioningSchemeName "name" -ServiceOffering "XDHyp:\HostingUnits\azure-res2\serviceoffering.folder\Standard_DS2_v2.serviceoffering" -MachineProfile "XDHyp:\HostingUnits\<adnet>\machineprofile.folder\<def.resourcegroup>\<machine profile vm.vm>" -CustomProperties $customProperties <!--NeedCopy--> - 完成创建计算机目录。
创建具有双重加密的计算机目录
您可以使用 Web Studio 和 PowerShell 命令创建和更新具有双重加密的计算机目录。
创建具有双重加密的计算机目录的详细步骤如下:
- 使用平台管理和客户管理的密钥创建 Azure Key Vault 和 DES。有关如何创建 Azure Key Vault 和 DES 的信息,请参阅使用 Azure 门户为托管磁盘启用静态双重加密。
- 要浏览托管连接中可用的 DiskEncryptionSets:
- 打开 PowerShell 窗口。
- 运行以下 PowerShell 命令:
asnp citrix*-
cd xdhyp:: cd HostingUnits-
cd YourHostingUnitName(例如 azure-east) cd diskencryptionset.folderdir
您可以使用
DiskEncryptionSet的 ID 来创建或更新目录,使用自定义属性。 - 如果要使用计算机配置文件工作流,请创建 VM 或模板规范作为计算机配置文件输入。
- 如果要使用 VM 作为计算机配置文件输入:
- 在 Azure 门户中创建 VM。
- 导航到 磁盘>密钥管理 以直接使用任何
DiskEncryptionSetID加密 VM。
- 如果要使用模板规范作为计算机配置文件输入:
- 在模板中,在
properties>storageProfile>osDisk>managedDisk下,添加diskEncryptionSet参数并添加双重加密 DES 的 ID。
- 在模板中,在
- 如果要使用 VM 作为计算机配置文件输入:
- 创建计算机目录。
- 如果使用 Web Studio,除了 创建计算机目录 中的步骤外,请执行以下操作之一。
- 如果您不使用基于计算机配置文件的工作流,请在 磁盘设置 页面上选择 使用以下密钥加密每台计算机上的数据。然后,从下拉菜单中选择您的双重加密 DES。继续创建目录。
- 如果使用计算机配置文件工作流,请在 映像 页面上选择主映像和计算机配置文件。确保计算机配置文件在其属性中具有磁盘加密集 ID。
目录中创建的所有计算机都通过您选择的 DES 关联的密钥进行双重加密。
- 如果使用 PowerShell 命令,请执行以下操作之一:
-
如果不使用基于计算机配置文件的流程,请在
New-ProvScheme命令中添加自定义属性DiskEncryptionSetId。例如:New-ProvScheme -CleanOnBoot -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="StorageAccountType" Value="Premium_LRS" /> <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="/subscriptions/12345678-xxxx-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet" /> </CustomProperties>' -HostingUnitName "Redacted" -IdentityPoolName "Redacted" -InitialBatchSizeHint 1 -MasterImageVM "Redacted" -NetworkMapping @{"0"="Redacted"} -ProvisioningSchemeName "Redacted" -ServiceOffering "Redacted" <!--NeedCopy--> -
如果使用基于计算机配置文件的流程,请在
New-ProvScheme命令中使用计算机配置文件输入。例如:New-ProvScheme -CleanOnBoot -HostingUnitName azure-east -IdentityPoolName aio-ip -InitialBatchSizeHint 1 -MasterImageVM XDHyp:\HostingUnits\azure-east\image.folder\abc.resourcegroup\fgb-vda-snapshot.snapshot -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure-east\virtualprivatecloud.folder\apa-resourceGroup.resourcegroup\apa-resourceGroup-vnet.virtualprivatecloud\default.network"} -ProvisioningSchemeName aio-test -MachineProfile XDHyp:\HostingUnits\azure-east\machineprofile.folder\abc.resourcegroup\abx-mp.templatespec\1.0.0.templatespecversion <!--NeedCopy-->
-
- 如果使用 Web Studio,除了 创建计算机目录 中的步骤外,请执行以下操作之一。
- 使用远程 PowerShell SDK 完成目录创建。有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/。目录中创建的所有计算机都将通过与您选择的 DES 关联的密钥进行双重加密。
将未加密的目录转换为使用双重加密
您可以更新计算机目录的加密类型(使用自定义属性或计算机配置文件)。
-
如果不使用基于计算机配置文件的流程,请在
Set-ProvScheme命令中添加自定义属性 DiskEncryptionSetId。例如:Set-ProvScheme -ProvisioningSchemeName "SampleProvSchemeName" -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="/subscriptions/12345678-xxxx-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet" /> </CustomProperties>' <!--NeedCopy--> -
如果使用基于计算机配置文件的流程,请在
Set-ProvScheme命令中使用计算机配置文件输入。例如:Set-ProvScheme -ProvisioningSchemeName mxiao-test -MachineProfile XDHyp:\HostingUnits\azure-east\machineprofile.folder\aelx.resourcegroup\elx-mp.templatespec\1.0.0.templatespecversion <!--NeedCopy-->
成功后,您在目录中添加的所有新 VM 都将通过与您选择的 DES 关联的密钥进行双重加密。
验证目录是否双重加密
-
在 Web Studio 中:
- 导航到“计算机目录”。
- 选择要验证的目录。单击屏幕底部的“模板属性”选项卡。
- 在“Azure 详细信息”下,在“磁盘加密集”中验证磁盘加密集 ID。如果目录的 DES ID 为空,则该目录未加密。
- 在 Azure 门户中,验证与 DES ID 关联的 DES 的加密类型是平台管理密钥和客户管理密钥。
-
使用 PowerShell 命令:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。 -
使用
Get-ProvScheme获取计算机目录的信息。例如:Get-ProvScheme -ProvisioningSchemeName "SampleProvSchemeName" <!--NeedCopy--> -
检索计算机目录的 DES Id 自定义属性。例如:
<Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet" /> <!--NeedCopy--> - 在 Azure 门户中,验证与 DES Id 关联的 DES 的加密类型是否为平台管理和客户管理的密钥。
使用 Azure 临时磁盘创建目录
要使用临时磁盘,在运行 New-ProvScheme 时,必须将自定义属性 UseEphemeralOsDisk 设置为 true。
注意:
如果自定义属性
UseEphemeralOsDisk设置为 false 或未指定值,则所有预配的 VDA 将继续使用预配的操作系统磁盘。
以下是用于预配方案的自定义属性示例集:
"CustomProperties": [
{
"Name": "UseManagedDisks",
"Value": "true"
},
{
"Name": "StorageType",
"Value": "Standard_LRS"
},
{
"Name": "UseSharedImageGallery",
"Value": "true"
},
{
"Name": "SharedImageGalleryReplicaRatio",
"Value": "40"
},
{
"Name": "SharedImageGalleryReplicaMaximum",
"Value": "10"
},
{
"Name": "LicenseType",
"Value": "Windows_Server"
},
{
"Name": "UseEphemeralOsDisk",
"Value": "true"
}
],
<!--NeedCopy-->
为目录配置临时磁盘
要为目录配置 Azure 临时操作系统磁盘,请在 Set-ProvScheme 中使用 UseEphemeralOsDisk 参数。将 UseEphemeralOsDisk 参数的值设置为 true。
注意:
要使用此功能,您还必须启用参数
UseManagedDisks和UseSharedImageGallery。
例如:
Set-ProvScheme -ProvisioningSchemeName catalog-name -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="UseSharedImageGallery" Value="true" />
<Property xsi:type="StringProperty" Name="UseEphemeralOsDisk" Value="true" />
</CustomProperties>'
<!--NeedCopy-->
配置临时磁盘使用的存储类型
默认情况下,Standard_LRS 是临时操作系统磁盘功能使用的存储类型。您可以通过指定 StorageType 自定义属性,将存储类型设置为使用 SSD,以提高读取操作的磁盘 IOPS。当前支持的值为 Standard_LRS、StandardSSD_LRS 和 Premium_LRS。
还可以使用 Set-ProvScheme 和 Set-ProvVMUpdateTimeWindow 在现有临时计算机上更新 StorageType。
临时磁盘的重要注意事项
要使用 New-ProvScheme 预配临时操作系统磁盘,请考虑以下限制:
- 用于目录的 VM 大小必须支持临时操作系统磁盘。
- 与 VM 大小关联的缓存或临时磁盘的大小必须大于或等于操作系统磁盘的大小。
- 临时磁盘大小必须大于缓存磁盘大小。
此外,在以下情况下也请考虑这些问题:
- 创建预配方案时。
- 修改预配方案时。
- 更新映像时。
Azure 专用主机
您可以使用 MCS 在 Azure 专用主机上预配 VM。在 Azure 专用主机上预配 VM 之前:
- 创建主机组。
- 在该主机组中创建主机。
- 确保有足够的主机容量用于创建目录和虚拟机。
您可以通过以下 PowerShell 脚本创建具有主机租用定义的计算机目录:
New-ProvScheme <otherParameters> -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="HostGroupId" Value="myResourceGroup/myHostGroup" />
...other Custom Properties...
</CustomProperties>
<!--NeedCopy-->
使用 MCS 在 Azure 专用主机上预配虚拟机时,请考虑:
- 专用主机是目录属性,创建目录后无法更改。Azure 目前不支持专用租用。
- 使用
HostGroupId参数时,需要一个在托管单元区域中预配置的 Azure 主机组。 - 需要 Azure 自动放置。此功能会发出请求以载入与主机组关联的订阅。有关详细信息,请参阅 Azure 专用主机上的 VM 规模集 - 公共预览版。如果未启用自动放置,MCS 会在目录创建期间引发错误。
使用 Azure 计算库映像创建或更新计算机目录
选择用于创建计算机目录的映像时,可以选择在 Azure 计算库中创建的映像。
要使这些映像显示,您必须:
- 配置 Citrix 虚拟应用和桌面 站点。
- 连接到 Azure 资源管理器。
- 在 Azure 门户中,创建一个资源组。有关详细信息,请参阅 使用门户创建 Azure 计算库。
- 在资源组中,创建一个 Azure 计算库。
- 在 Azure 计算库中,创建一个映像定义。
- 在映像定义中,创建映像版本。
使用以下 PowerShell 命令,通过 Azure Compute Gallery 中的映像创建或更新计算机目录:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 专用 PowerShell 模块。 -
选择一个资源组,然后列出该资源组的所有库。
Get-ChildItem -LiteralPath @("XDHyp:\HostingUnits\testresource\image.folder\sharedImageGalleryTest.resourcegroup") <!--NeedCopy--> -
选择一个库,然后列出该库的所有映像定义。
Get-ChildItem -LiteralPath @("XDHyp:\HostingUnits\testresource\image.folder\sharedImageGalleryTest.resourcegroup\sharedImageGallery.sharedimagegallery") <!--NeedCopy--> -
选择一个映像定义,然后列出该映像定义的所有映像版本。
Get-ChildItem -LiteralPath @("XDHyp:\HostingUnits\testresource\image.folder\sharedImageGalleryTest.resourcegroup\sharedImageGallery.sharedimagegallery\sigtestimage.imagedefinition") <!--NeedCopy--> - 使用以下元素创建和更新 MCS 目录:
- 资源组
- 库
- 库映像定义
- 库映像版本
有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/。
配置共享映像库
使用 New-ProvScheme 命令创建支持共享映像库的预配方案。使用 Set-ProvScheme 命令为预配方案启用或禁用此功能,并更改副本比率和副本最大值。
预配方案中添加了三个自定义属性,以支持共享映像库功能:
UseSharedImageGallery
- 定义是否使用共享映像库存储已发布的映像。如果设置为 True,映像将存储为共享映像库映像,否则映像将存储为快照。
- 有效值为 True 和 False。
- 如果未定义此属性,则默认值为 False。
SharedImageGalleryReplicaRatio
- 定义计算机与库映像版本副本的比率。
- 有效值是大于 0 的整数。
- 如果未定义此属性,将使用默认值。持久性操作系统磁盘的默认值为 1000,非持久性操作系统磁盘的默认值为 40。
SharedImageGalleryReplicaMaximum
- 定义每个库映像版本的最大副本数。
- 如果未定义此属性,则默认值为 100。
- 如果未定义此属性,则默认值为 100。
提示:
当使用共享映像库存储 MCS 预配目录的已发布映像时,MCS 会根据目录中的计算机数量、副本比率和最大副本数设置库映像版本副本计数。副本计数是通过将目录中的计算机数量除以副本比率(向上舍入到最接近的整数值),然后将该值限制为最大副本数来计算的。例如,如果副本比率为 20,最大副本数为 5,则 0-20 台计算机有一个副本,21-40 台有 2 个副本,41-60 台有 3 个副本,61-80 台有 4 个副本,81 台以上有 5 个副本。
用例:更新共享映像库副本比率和最大副本数
现有计算机目录使用共享映像库。使用 Set-ProvScheme 命令更新目录中所有现有计算机和任何未来计算机的自定义属性:
Set-ProvScheme -ProvisioningSchemeName catalog-name -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->
用例:将快照目录转换为共享映像库目录
对于此用例:
- 运行
Set-ProvScheme并将UseSharedImageGallery标志设置为 True。可以选择包括SharedImageGalleryReplicaRatio和SharedImageGalleryReplicaMaximum属性。 - 更新目录。
- 对计算机执行电源循环以强制更新。
例如:
Set-ProvScheme -ProvisioningSchemeName catalog-name -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->
提示:
参数
SharedImageGalleryReplicaRatio和SharedImageGalleryReplicaMaximum不是必需的。在Set-ProvScheme命令完成后,共享映像库映像尚未创建。目录配置为使用库后,下一次目录更新操作会将发布的映像存储在库中。目录更新命令会创建库、库映像和映像版本。对计算机执行电源循环会更新它们,此时(如果适用)会更新副本计数。从那时起,所有现有的非持久性计算机都将使用共享映像库映像进行重置,所有新预配的计算机都将使用该映像创建。旧快照将在数小时内自动清理。
用例:将共享映像库目录转换为快照目录
对于此用例:
- 运行
Set-ProvScheme并将UseSharedImageGallery标志设置为 False 或未定义。 - 更新目录。
- 对计算机执行电源循环以强制更新。
例如:
Set-ProvScheme -ProvisioningSchemeName catalog-name -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="False"/></CustomProperties>'
<!--NeedCopy-->
提示:
与从快照更新到共享映像库目录不同,每台计算机的自定义数据尚未更新以反映新的自定义属性。运行以下命令以查看原始共享映像库自定义属性:
Get-ProvVm -ProvisioningSchemeName catalog-name。在Set-ProvScheme命令完成后,映像快照尚未创建。一旦目录配置为不使用库,下一次目录更新操作会将发布的映像存储为快照。从那时起,所有现有的非持久性计算机都将使用快照进行重置,所有新预配的计算机都将从快照创建。重新启动计算机将更新它们,此时自定义计算机数据将更新以反映UseSharedImageGallery设置为 False。旧的共享映像库资产(库、映像和版本)将在几小时内自动清理。
将计算机预配到指定的可用性区域
您可以将计算机预配到 Azure 环境中的特定可用性区域。您可以使用 PowerShell 实现此目的。
注意:
- 如果未指定区域,MCS 将允许 Azure 在该区域内放置计算机。如果指定了多个区域,MCS 将在这些区域之间随机分配计算机。
- 如果您在“存储和许可证类型”页面上选择 ZRS 作为存储冗余,则会收到一条警告,建议清除区域选择并让 Azure 管理 VM 可用性区域。仅当您选择具有可用性区域的计算机配置文件或主机组时,才会收到此警告。
通过 PowerShell 配置可用性区域
使用 PowerShell,您可以通过使用 Get-Item 查看产品库存项。例如,要查看 美国东部地区 Standard_B1ls 服务产品:
$serviceOffering = Get-Item -path "XDHyp:\Connections\my-connection-name\East US.region\serviceoffering.folder\Standard_B1ls.serviceoffering"
<!--NeedCopy-->
要查看区域,请对该项使用 AdditionalData 参数:
$serviceOffering.AdditionalData
如果未指定可用性区域,则计算机的预配方式没有变化。
要通过 PowerShell 配置可用性区域,请使用 New-ProvScheme 操作提供的 Zones 自定义属性。Zones 属性定义了要将计算机预配到的可用性区域列表。这些区域可以包括一个或多个可用性区域。例如,<Property xsi:type="StringProperty" Name="Zones" Value="1, 3"/> 用于区域 1 和 3。
使用 Set-ProvScheme 命令更新预配方案的区域。
如果提供了无效区域,则不会更新预配方案,并且会出现一条错误消息,提供有关如何修复无效命令的说明。
提示:
如果指定了无效的自定义属性,则不会更新预配方案,并且会出现相关的错误消息。
存储类型
为使用 MCS 的 Azure 环境中的虚拟机选择不同的存储类型。对于目标 VM,MCS 支持:
- 操作系统磁盘:高级 SSD、SSD 或 HDD
- 回写缓存磁盘:高级 SSD、SSD 或 HDD
使用这些存储类型时,请考虑以下事项:
- 确保您的 VM 支持所选的存储类型。
- 如果您的配置使用 Azure 临时磁盘,则无法获得回写缓存磁盘设置选项。
提示:
StorageType配置用于操作系统类型和存储帐户。WBCDiskStorageType配置用于回写缓存存储类型。对于普通目录,需要StorageType。如果未配置WBCDiskStorageType,则StorageType将用作WBCDiskStorageType的默认值。
如果未配置 WBCDiskStorageType,则 StorageType 将用作 WBCDiskStorageType 的默认值。
配置存储类型
要为 VM 配置存储类型,请在 New-ProvScheme 中使用 StorageType 参数。将 StorageType 参数的值设置为受支持的存储类型之一。
以下是预配方案中 CustomProperties 参数的示例集:
Set-ProvScheme -ProvisioningSchemeName catalog-name -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="StorageType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>'
<!--NeedCopy-->
启用区域冗余存储
您可以在目录创建期间选择区域冗余存储。它将您的 Azure 托管磁盘同步复制到多个可用区,这使您能够通过利用其他区域的冗余来从一个区域的故障中恢复。
您可以在存储类型自定义属性中指定 Premium_ZRS 和 StandardSSD_ZRS。ZRS 存储可以使用现有自定义属性或通过 MachineProfile 模板进行设置。ZRS 存储还支持带 -StartsNow 和 -DurationInMinutes -1 参数的 Set-ProvVMUpdateTimeWindow 命令,并且您可以将现有计算机从 LRS 存储更改为 ZRS 存储。
限制:
- 仅支持托管磁盘
- 仅支持高级和标准固态硬盘 (SSD)
- 不支持
StorageTypeAtShutdown - 仅在某些区域可用。
- 大规模创建 ZRS 磁盘时,Azure 的性能会下降。因此,首次开机时,请分小批次(每次少于 300 台计算机)开启计算机。
将区域冗余存储设置为磁盘存储类型
您可以在初始目录创建期间选择区域冗余存储,也可以在现有目录中更新存储类型。
使用 PowerShell 命令选择区域冗余存储
在 Azure 中使用 New-ProvScheme PowerShell 命令创建新目录时,请在 StorageAccountType 中使用 Standard_ZRS 作为值。
例如:
<Property xsi:type="StringProperty" Name="StorageAccountType" Value="StandardSSD_ZRS" />
<!--NeedCopy-->
设置此值时,将由动态 API 进行验证,以确定其是否可以正确使用。如果 ZRS 的使用对您的目录无效,则可能会出现以下异常:
- StorageTypeAtShutdownNotSupportedForZrsDisks:StorageTypeAtShutdown 自定义属性不能与 ZRS 存储一起使用。
- StorageAccountTypeNotSupportedInRegion:如果您尝试在不支持 ZRS 的 Azure 区域中使用 ZRS 存储,则会发生此异常。
- ZrsRequiresManagedDisks:您只能将区域冗余存储与托管磁盘一起使用。
您可以使用以下自定义属性设置磁盘存储类型:
StorageTypeWBCDiskStorageTypeIdentityDiskStorageType
注意:
在目录创建期间,如果未设置自定义属性,则使用计算机配置文件的操作系统磁盘
StorageType。
从计算机配置文件捕获 VM 和 NIC 上的诊断设置
您可以在创建计算机目录、更新现有计算机目录以及更新现有 VM 时,从计算机配置文件捕获 VM 和 NIC 上的诊断设置。
您可以创建 VM 或模板规范作为计算机配置文件源。
关键步骤
-
在 Azure 中设置所需的 ID。您必须在模板规范中提供这些 ID。
- 存储帐户
- 日志分析工作区
- 具有标准层定价的事件中心命名空间
- 创建计算机配置文件源。
- 创建新的计算机目录、更新现有目录或更新现有虚拟机。
在 Azure 中设置所需的 ID
在 Azure 中设置以下其中一项:
- 存储帐户
- 日志分析工作区
- 具有标准层定价的事件中心命名空间
设置存储帐户
在 Azure 中创建标准存储帐户。在模板规范中,将存储帐户的完整 resourceId 指定为 storageAccountId。
将虚拟机设置为将数据记录到存储帐户后,可以在 insights-metrics-pt1m 容器下找到数据。
设置日志分析工作区
创建日志分析工作区。在模板规范中,将日志分析工作区的完整 resourceId 指定为 workspaceId。
将虚拟机设置为将数据记录到工作区后,可以在 Azure 的“日志”下查询数据。您可以在 Azure 的“日志”下运行以下命令,以显示资源记录的所有指标的计数:
AzureMetrics
| summarize Count=count() by ResourceId
设置事件中心
在 Azure 门户中设置事件中心,请执行以下操作:
- 创建具有标准层定价的事件中心命名空间。
- 在该命名空间下创建一个事件中心。
- 导航到事件中心下的 Capture。打开切换开关以使用 Avro 输出类型进行捕获。
- 在现有存储帐户中创建一个新容器以捕获日志。
- 在模板规范中,按以下格式指定
eventHubAuthorizationRuleId:/subscriptions/093f4c12-704b-4b1d-8339-f339e7557f60/resourcegroups/matspo/providers/Microsoft.EventHub/namespaces/matspoeventhub/authorizationrules/RootManageSharedAccessKey - 指定事件中心的名称。
将 VM 设置为将数据记录到事件中心后,数据将捕获到配置的存储容器中。
创建计算机配置文件源
您可以创建 VM 或模板规范作为计算机配置文件源。
创建基于 VM 的计算机配置文件并包含诊断设置
如果要创建 VM 作为计算机配置文件,则首先在模板 VM 本身设置诊断设置。您可以参考 Microsoft 文档 Azure Monitor 中的诊断设置 中提供的详细说明。
您可以运行以下命令来验证现在是否已将诊断设置与 VM 或 NIC 关联:
az monitor diagnostic-settings list --resource-group matspo --resource matspo-tog-cc2659 --resource-type microsoft.network/networkInterfaces
<!--NeedCopy-->
az monitor diagnostic-settings list --resource-group matspo --resource matspo-tog-cc2 --resource-type microsoft.compute/virtualMachines
<!--NeedCopy-->
创建基于模板规范的包含诊断设置的计算机配置文件
如果您想使用已启用诊断设置的虚拟机并将其导出到 ARM 模板规范中,这些设置不会自动包含在模板中。您必须在 ARM 模板中手动添加或修改诊断设置。
但是,如果您希望将虚拟机作为计算机配置文件,MCS 会确保准确捕获关键诊断设置并将其应用于 MCS 目录中的资源。
- 创建定义虚拟机和网卡(一个或多个)的标准模板规范。
-
根据规范添加其他资源以部署诊断设置:Microsoft.Insights diagnosticSettings。对于范围,通过名称和部分 ID 引用模板中的虚拟机或网卡。例如,要在模板规范中为名为 test-VM 的虚拟机创建诊断设置,请将范围指定为:
"scope": "microsoft.compute/virtualMachines/test-VM", <!--NeedCopy--> - 使用模板规范作为计算机配置文件源。
创建或更新包含诊断设置的目录
创建计算机配置文件源后,您现在可以使用 New-ProvScheme 命令创建计算机目录,使用 Set-ProvScheme 命令更新现有计算机目录,并使用 Request-ProvVMUpdate 命令更新现有虚拟机。
页面文件位置确定
页面文件位置根据以下情况确定:
注意:
默认页面文件位置是操作系统磁盘。
| 场景 | 位置 |
|---|---|
| 页面文件设置在自定义属性中指定 | 如自定义属性中指定 |
| 已启用临时 OS 磁盘或休眠 | 操作系统磁盘 |
| 虚拟机具有临时磁盘 | 临时磁盘 |
| 已启用 MCS I/O | WBC 磁盘 |
页面文件设置方案
下表描述了映像准备和预配方案更新期间页面文件设置的一些可能方案:
| 期间 | 方案 | 结果 |
|---|---|---|
| 映像准备 | 您将源映像页面文件设置在临时磁盘上,而您在预配方案中指定的虚拟机大小没有临时磁盘 | 页面文件放置在操作系统上 |
| 映像准备 | 您在操作系统磁盘上设置源映像页面文件,而您在预配方案中指定的 VM 大小具有临时磁盘 | 页面文件放置在临时磁盘上 |
| 映像准备 | 您在临时磁盘上设置源映像页面文件,并在预配方案中启用临时操作系统磁盘 | 页面文件放置在操作系统磁盘上 |
| 预配方案更新 | 当 VDA 版本早于 2311 时,您尝试更新预配方案 | 修改页面文件设置并发出警告 |
| 预配方案更新 | 当 VDA 版本为 2311 或更高版本时,您尝试更新预配方案 | 按照 页面文件位置确定 确定页面文件位置 |
指定页面文件设置
使用 PowerShell 命令,您可以指定页面文件设置,包括位置和大小。这将覆盖 MCS 根据 页面文件位置确定 确定的页面文件设置。您可以通过在创建计算机目录期间运行以下 New-ProvScheme 命令来完成此操作。
重要注意事项
在继续创建目录之前,请考虑以下事项:
- 您必须在
New-ProvScheme命令中提供所有自定义属性(’PageFileDiskDriveLetterOverride’、’InitialPageFileSizeInMB’ 和 ‘MaxPageFileSizeInMB’),否则不提供任何属性。 - Citrix Studio 不支持此功能。
- 初始页面文件大小必须介于 16 MB 和 16777216 MB 之间。
- 最大页面文件大小必须大于或等于初始页面文件大小,且小于 16777216 MB。
- 您可以同时将初始页面文件大小和最大页面文件大小设置为零。
注意:
您可以修改现有目录中新添加的 VM 的页面文件设置,而无需更新主映像。要修改页面文件设置,您需要 VDA 2311 或更高版本。您可以使用 PowerShell 命令修改页面文件设置。有关详细信息,请参阅修改页面文件设置。
New-ProvScheme -CleanOnBoot `
-HostingUnitName "zijinnet" `
-IdentityPoolName "PageFileSettingExample" `
-ProvisioningSchemeName "PageFileSettingExample" `
-InitialBatchSizeHint 1 `
-MasterImageVM "XDHyp:\HostingUnits\zijinnet\image.folder\neal-zijincloud-resources.resourcegroup\CustomWin10VDA_OsDisk_1_9473d7c8a6174b2c8284c7d3efeea88f.manageddisk" `
-NetworkMapping @{"0"="XDHyp:\\HostingUnits\\zijinnet\\virtualprivatecloud.folder\\East US.region\\virtualprivatecloud.folder\\neal-zijincloud-resources.resourcegroup\\neal-zijincloud-resources-vnet.virtualprivatecloud\\default.network"} `
-ServiceOffering "XDHyp:\\HostingUnits\\zijinnet\\serviceoffering.folder\\Standard_B2ms.serviceoffering" `
-CustomProperties '<CustomProperties xmlns=" http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> `
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="false"/> `
<Property xsi:type="StringProperty" Name="PersistVm" Value="false"/> `
<Property xsi:type="StringProperty" Name="PageFileDiskDriveLetterOverride" Value="d"/> `
<Property xsi:type="StringProperty" Name="InitialPageFileSizeInMB" Value="2048"/> `
<Property xsi:type="StringProperty" Name="MaxPageFileSizeInMB" Value="8196"/> `
<Property xsi:type="StringProperty" Name="StorageAccountType" Value="Premium_LRS"/> `
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client"/> `
</CustomProperties>'
<!--NeedCopy-->
修改页面文件设置
您可以修改现有目录中新添加的 VM 的页面文件设置,而无需更新主映像。目前,此功能仅适用于 Azure 环境。
要修改页面文件设置,您需要 VDA 2311 或更高版本。您可以使用 PowerShell 命令修改页面文件设置。
以下是您可以在 Azure 环境中修改的各种页面文件设置:
PageFileDiskDriveLetterOverrideInitialPageFileSizeInMBMaxPageFileSizeInMB
修改现有目录的页面文件设置
要修改现有计算机目录的页面文件设置,请运行 Set-ProvScheme 命令。在这种情况下,更新仅应用于添加到目录的新 VM。例如:
Set-ProvScheme -ProvisioningSchemeName $schemeName -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="StandardSSD_LRS" />
<Property xsi:type="StringProperty" Name="PageFileDiskDriveLetterOverride" Value="D" />
<Property xsi:type="StringProperty" Name="InitialPageFileSizeInMB" Value="2048" />
<Property xsi:type="StringProperty" Name="MaxPageFileSizeInMB" Value="8196" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
<Property xsi:type="StringProperty" Name="Zones" Value="1" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="neal-test-group1" />
<Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
</CustomProperties>'
<!--NeedCopy-->
注意:
如果您启用回写缓存并尝试使用 PowerShell 命令将
PageFileDiskDriveLetterOverride设置为C:,则 MCS IO 驱动程序会自动将页面文件重定向到正确的磁盘驱动器,而不是C:。
使用 Azure 现成 VM 创建目录
Azure 现成 VM 允许您利用 Azure 未使用的计算容量,从而显著节省成本。但是,分配 Azure 现成 VM 的能力取决于当前的容量和定价。因此,Azure 可能会根据 逐出策略 逐出您正在运行的 VM、无法创建 VM 或无法启动 VM。因此,Azure 现成 VM 适用于某些非关键应用程序和桌面。有关详细信息,请参阅 使用 Azure 现成虚拟机。
限制
-
并非所有 VM 大小都支持 Azure 现成 VM。有关详细信息,请参阅 限制。
您可以运行以下 PowerShell 命令来检查 VM 大小是否支持现成 VM。如果 VM 大小支持现成 VM,则
SupportsSpotVM为 True。(Get-Item "XDHyp:\HostingUnits\azure-res-conn2\serviceoffering.folder\Standard_D2ds_v4.serviceoffering"). AdditionalData <!--NeedCopy--> -
目前,Azure 现成 VM 不支持休眠。
要求
在为 Azure 现成 VM 目录创建计算机配置文件源(VM 或模板规范)时,您必须选择 Azure 现成实例(如果使用 VM)或将 priority 设置为 Spot(如果使用模板规范)。
使用 Azure 现成 VM 创建目录的步骤
-
创建计算机配置文件源(VM 或启动模板)。
- 有关使用 Azure 门户创建 VM 的信息,请参阅 使用 Azure 门户部署 Azure 现成虚拟机。
-
要创建模板规范,请在模板规范的 resources > type: Microsoft.Compute/virtualMachines > properties 下添加以下属性。例如:
"priority": "Spot", "evictionPolicy": "Deallocate", "billingProfile": { "maxPrice": 0.01 } <!--NeedCopy-->
注意:
- 逐出策略可以是 Deallocate 或 Delete。
- 对于非持久性 VM,MCS 始终将逐出策略设置为 Delete。如果 VM 被逐出,它将与任何非持久性磁盘(例如,操作系统磁盘)一起被删除。任何持久性磁盘(例如,身份磁盘)都不会被删除。但是,如果目录类型是持久性的,或者
PersistOsDisk自定义属性设置为 True,则操作系统磁盘是持久性的。同样,如果PersistWbc自定义属性设置为 True,则 WBC 磁盘是持久性的。 - 对于持久性 VM,MCS 始终将逐出策略设置为 Deallocate。如果 VM 被逐出,它将被解除分配。磁盘不会发生任何更改。
- 最高价格是您每小时愿意支付的价格。如果您使用的是 仅容量,则此值为 -1。最高价格只能为 null、-1 或大于零的小数。有关详细信息,请参阅定价。
-
您可以运行以下 PowerShell 命令来检查计算机配置文件是否启用了 Azure Spot VM。如果
SpotEnabled参数为 True 且SpotEvictionPolicy设置为 Deallocate 或 Delete,则计算机配置文件已启用 Azure Spot VM。例如,-
如果计算机配置文件源是 VM,请运行以下命令:
(Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\kb-spot-delete.vm"). AdditionalData <!--NeedCopy--> -
如果计算机配置文件源是模板规范,请运行以下命令:
(Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\fc-aeh-templatespec.templatespec\14.0.0-spot-delete.templatespecversion").AdditionalData <!--NeedCopy-->
-
-
使用具有
New-ProvSchemePowerShell 命令的计算机配置文件创建计算机目录。
您可以使用 Set-ProvScheme 命令更新目录。您还可以使用 PowerShell 命令 Set-ProvVmUpdateTimeWindow 更新现有 VM。计算机配置文件将在下次开机时更新。
正在运行的 Azure Spot VM 上的逐出
如果计算容量不可用或每小时价格高于配置的最大价格,Azure 会逐出正在运行的 Spot VM。默认情况下,您不会收到逐出通知。VM 只是冻结并被逐出。Microsoft 建议使用计划事件来监视逐出。请参阅持续监视逐出。您还可以从 VM 内部运行脚本以在逐出前获取通知。例如,Microsoft 有一个用 Python 编写的轮询脚本 ScheduledEvents.cs。
故障排除
- 您可以使用
Get-ProvVM命令在预配的 VM 的 customMachineData 中查看 Spot VM 属性。如果优先级字段设置为 Spot,则表示正在使用 Spot。 -
您可以在 Azure 门户中检查 VM 是否正在使用 Spot:
- 在 Azure 门户中找到该 VM。
- 转到“概述”页面。
-
向下滚动到底部,找到“Azure Spot”部分。
- 如果未使用 Spot,则此字段为空。
- 如果正在使用 Spot,则会设置“Azure Spot”和“Azure Spot 逐出策略”字段。
- 您可以在“配置”页面上检查 VM 的计费配置文件或每小时最高价格。
配置备份 VM 大小
公共云可能会耗尽特定 VM 大小的容量。当 Azure 容量不足时,MCS 会回退到预配置的备份 VM 大小列表。此精选列表由客户根据其工作负载要求量身定制,增加了其中一个大小具有足够容量在开机或恢复(如果 VM 之前已休眠)时启动的可能性。
启动电源操作时,MCS 会实施自动回退序列以确保高可用性。工作流程如下:
- 启动:用户或管理员通过 Web Studio 发出“开机”或“恢复”命令。
- 异常监控:MCS 尝试使用主配置启动 VM。它监控特定的 Azure 容量异常,例如“配额超出”、“分配失败”或“区域分配失败”以及“SKU 不可用”(可以概括地说,我们监控 Azure 的任何容量或分配失败)。
- 顺序回退:如果发生上述错误之一,MCS 会自动按顺序遍历 BackupVmConfiguration 列表,直到 VM 成功启动。如果 BackupVmConfiguration 中的所有大小都失败,则电源操作将被标记为失败。
-
更新与重新创建逻辑:
- 直接更新:在大多数情况下,MCS 会对备份 SKU 执行简单的 VM 大小更新,然后启动 VM。
- 删除并重新创建:为了保持环境完整性,某些转换要求删除现有 VM 并在其位置创建一个新 VM。这在以下情况下发生:
- 在现成 VM 类型和常规 VM 类型之间切换。
- 在支持资源磁盘(临时存储)的 VM 大小和不支持的 VM 大小之间切换。
- 数据持久性和恢复:在“删除并重新创建”操作期间,如果所有备份大小也因 Azure 容量严重短缺而失败,VM 可能会暂时从 Azure 门户中消失。但是,不会发生数据丢失。在下一次开机尝试时,MCS 将使用原始设置重新创建 VM,并重新附加现有的操作系统、身份和数据磁盘。
-
现成 VM 计费和 MaxPrice 行为 如果您的主要配置使用具有现成优先级和特定计费配置文件 (MaxPrice) 的计算机配置文件(VM 模板),则在回退期间适用以下逻辑:
- 主要大小:使用您的计算机配置文件中定义的 MaxPrice。逐出基于价格或容量。
- 备份现成大小:BackupVmConfiguration 属性目前不支持为每个 SKU 提供唯一的
MaxPrice输入,MCS 按如下方式处理转换: - MaxPrice 重置:MCS 将 MaxPrice 设置为 -1。
- 逐出策略转变:这会将 Azure 逐出行为从基于价格更改为基于容量。
- 定价:您将按当前现成价格计费,最高不超过该备份 SKU 的标准即用即付 (PAYG) 费率。这可确保仅当 Azure 确实耗尽物理容量时才逐出 VM,而不是因为价格波动。
- 备份状态的持久性:一旦启动,VM 将在会话期间保持备份大小,直到处理关机或休眠请求。
- 恢复主要大小:在下一次开机或恢复时,MCS 总是尝试将 VM “归位”到其主要服务产品(如目录或计算机配置文件中所定义)。如果主要大小仍然不可用,则回退序列会重复。
休眠的挑战
Azure 不允许对处于休眠状态的 VM 进行大小更改,如 一般限制 中所述。VM 必须处于“已停止”状态。因此,在更改大小之前,MCS 会发出解除分配请求以清除休眠状态,这会导致 VM 的休眠状态丢失。然后,MCS 循环遍历备份大小,更新 VM 大小,并将其开机。
备份 VM 大小不支持的场景
以下配置不受支持:
- 对于持久性 VM,以下情况不受支持:
- VM 使用 DiskControllerType SCSI,但备份 VM 大小仅支持 DiskControllerType NVMe。
- VM 使用 DiskControllerType NVMe,但备份 VM 大小仅支持 DiskControllerType SCSI。
- 对于启用了 MCSIO 的非持久性 VM,如果回写缓存磁盘使用资源磁盘临时存储,则不支持切换到没有临时存储的大小。
配置备份 VM 大小的先决条件
如果不满足以下任何条件,则会引发错误。
- 仅当计算机配置文件在计算机目录中使用时才支持。
- 类型是可选的,可以是 Spot 或 Regular。如果未指定,则默认为 Regular。
- ServiceOffering 的每个组合都必须是唯一的,以避免重复配置。
- 区域配额必须为 ServiceOffering 提供足够的内核。
- 网络接口计数不得超过 ServiceOffering 允许的最大值。
- 此 BackupVmConfiguration 列表中的 ServiceOffering 必须与当前的自定义属性、主映像的功能和 MachineProfile 兼容。一些失败场景包括:
- Azure 专用主机:如果使用专用主机,则主机组中的主机必须支持 ServiceOffering。
- 临时 OS 磁盘:如果自定义属性中启用了临时 OS 磁盘,则 ServiceOffering 必须支持临时 OS 磁盘。
- 高级存储:如果在自定义属性中指定,ServiceOffering 必须支持高级存储。
- 加速网络:如果在 MachineProfile 中启用,ServiceOffering 必须支持加速网络。
- 主机磁盘加密:如果在 MachineProfile 中启用,ServiceOffering 必须支持主机加密。
- 临时存储:如果正在使用 MCSIO 并且回写缓存位于临时磁盘上,则不允许使用没有临时存储的 VM 大小。
- HyperVGeneration:ServiceOffering 必须与 MasterImageVM 中指定的 VM 代系(1 或 2)兼容。
- 受信任启动:如果在 MachineProfile 中启用,ServiceOffering 必须支持受信任启动。
- 机密 VM:如果在 MachineProfile 中启用,ServiceOffering 必须支持机密 VM。
创建包含备份 VM 大小的目录
注意:
为解决 Studio UI 冻结问题,在运行 PowerShell 命令时,请将所有单引号替换为
"。
- 打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。 - 创建 Broker 目录。此目录将填充即将创建的计算机。
- 创建身份池。这将成为为即将创建的计算机创建的 AD 帐户的容器。
- 使用计算机配置文件创建预配方案。请参阅如何配置备份配置。
- 使用预配方案的唯一 ID 更新
BrokerCatalog。 - 创建虚拟机并将其添加到目录。
更新现有目录
您可以使用 Set-ProvScheme 命令更新预配方案。请参阅 如何配置备份配置。
更新现有虚拟机
您可以使用 Set-ProvVMUpdateTimeWindow PowerShell 命令更新目录中的现有虚拟机。此命令会在给定时间窗口内的下次开机时更新从与目录关联的预配方案创建的虚拟机。例如:
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartTimeInUTC "3/12/2022 3am" -DurationInMinutes 60`
<!--NeedCopy-->
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartsNow -DurationInMinutes 60
<!--NeedCopy-->
您可以使用 Set-ProvVM 命令为选定数量的现有 MCS 虚拟机配置备份虚拟机大小列表。但是,要应用更新,请使用 Set-ProvVMUpdateTimeWindow 为虚拟机设置更新时间窗口,并在该窗口内启动虚拟机。例如,
-
运行
Set-ProvVM命令,为选定的现有 MCS 虚拟机配置备份虚拟机大小列表。例如:Set-ProvVM -ProvisioningSchemeName "name" -VMName "Vm-001" -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=`"StorageAccountType`" Value=`"Premium_LRS`" /> <Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`"/> <Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`"/> <Property xsi:type=`"StringProperty`" Name=`"BackupVmConfiguration`" Value=`"[{"ServiceOffering": "Standard_D2as_v4", "Type": "Spot"}, {"ServiceOffering": "Standard_D2s_v3", "Type": "Regular"}, {"ServiceOffering": "Standard_D2s_v3", "Type": "Spot"}]`"/> </CustomProperties>" <!--NeedCopy--> -
运行
Set-ProvVMUpdateTimeWindow命令以应用更新。例如:Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartsNow -DurationInMinutes 60 <!--NeedCopy-->
复制所有资源上的标签
您可以将计算机配置文件中指定的标签复制到新虚拟机或计算机目录中现有虚拟机的所有资源,例如多个网卡和磁盘(操作系统磁盘、身份磁盘和回写缓存磁盘)。计算机配置文件源可以是虚拟机或 ARM 模板规范。
注意:
您必须添加标签策略(请参阅 分配标签合规性策略定义)或在计算机配置文件源中添加标签,以保留资源上的标签。
必备条件
创建计算机配置文件源(虚拟机或 ARM 模板规范),以便在该虚拟机的虚拟机、磁盘和网卡上拥有标签。
- 如果您想将 VM 作为计算机配置文件输入,请在 Azure 门户中将标签应用于 VM 和所有资源。请参阅 使用 Azure 门户应用标签。
-
如果您想将 ARM 模板规范作为计算机配置文件输入,请在每个资源下添加以下标签块。
"tags": { "TagC": "Value3" }, <!--NeedCopy-->
注意:
模板规范中最多可以有一个磁盘,并且至少有一个 NIC。
将标签复制到新计算机目录中 VM 的资源
- 使用 VM 或 ARM 模板规范作为计算机配置文件输入来创建非持久性或持久性目录。
-
将 VM 添加到目录并将其开机。您应该会看到计算机配置文件中指定的标签已复制到该 VM 的相应资源。
注意:
如果计算机配置文件中提供的 NIC 数量与您希望 VM 使用的 NIC 数量不匹配,则会收到错误。
修改现有 VM 资源的标签
- 创建包含所有资源标签的计算机配置文件。
-
使用更新后的计算机配置文件更新现有计算机目录。例如:
Set-ProvScheme -ProvisioningSchemeName <YourCatalogName> -MachineProfile <PathToYourMachineProfile> <!--NeedCopy--> - 关闭要应用更新的 VM。
-
请求对 VM 进行计划更新。例如:
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName <YourCatalogName> -VMName machine1 -StartsNow -DurationInMinutes -1 <!--NeedCopy--> - 打开 VM。
- 您必须看到机器配置文件中指定的标签已复制到相应的资源。
注意:
如果机器配置文件中提供的 NIC 数量与
Set-ProvScheme中提供的 NIC 数量不匹配,则会收到错误。
创建预格式化的 WBC 磁盘目录
您可以创建预格式化的 WBC 磁盘目录,以提高预配计算机的启动性能。要实现此功能,请创建一个已启用 WBC 的 Azure 目录,并包含一个额外的自定义属性 PreformatWriteBackCache 作为 True。
您可以使用 Set-ProvScheme 命令更新现有目录以更新 WBC 磁盘大小。
此功能与映像管理工作流兼容,在该工作流中,MCS 将主映像阶段与整个预配工作流分离。有关映像管理的信息,请参阅映像管理。
创建已启用 WBC 且 PreformatWriteBackCache 为 True 的 Azure 目录的示例:
$customProperties = @'
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<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-->
更新现有目录的 WBC 磁盘缓存大小的示例:
Set-ProvScheme -ProvisioningSchemeName provisioningschemename -WriteBackCacheDiskSize 127
<!--NeedCopy-->
关闭 MCS 预配的 Citrix Provisioning™ 目录时删除 WBC 磁盘
在 Azure 中创建 MCS 预配的 Citrix Provisioning 目录时,您可以将 WBC 磁盘预配为非持久性(PersistWBC 为 False)。此配置有助于在关闭 Azure 中 MCS 预配的 Citrix Provisioning 目录的 VM 后删除回写缓存 (WBC) 磁盘。
条件:
您必须将自定义属性 PreformatWriteBackCache 设置为 True 才能使此功能正常工作。
创建 Azure 目录的示例,其中 PersistWBC 为 False 且 PreformatWriteBackCache 为 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-->
您还可以使用 Set-ProvScheme 命令更新现有目录以更新 PersistWBC 自定义属性。
预配数据磁盘
您可以为 Azure 中 MCS 计算机目录的 MCS 创建的持久性或非持久性 VM 创建并分配持久性数据磁盘。
数据磁盘必须从托管磁盘作为映像源进行预配。
数据磁盘属性
如果未在自定义属性中指定属性,则数据磁盘从自定义属性或操作系统磁盘模板派生属性。
-
从自定义属性派生的属性
DiskEncryptionSetIdZonesStorageType
-
如果未在自定义属性中指定,则从操作系统磁盘模板派生的属性
DiskEncryptionSetIdZonesStorageType
注意:
- 如果未在自定义属性或操作系统磁盘模板中指定区域冗余存储 (ZRS),则数据磁盘与操作系统磁盘和身份磁盘位于同一区域。
- 标签仅来源于操作系统磁盘模板。
限制
目前不支持以下操作:
- 预配多个数据磁盘。
- 预配非持久性数据磁盘。
- 使用模板创建数据磁盘。
- 修改现有目录和虚拟机以使用数据磁盘。
- 重置数据磁盘。
- 数据磁盘的映像更新。
- 使用托管磁盘以外的源。
- 将数据磁盘存储在 Azure 计算库 (ACG) 中。
- 将
StorageTypeAtShutdown用于数据磁盘
创建带数据磁盘的目录
在 New-ProvScheme PowerShell 命令中包含以下参数,以预配带数据磁盘的 MCS 计算机目录。
-
DataDisk:有效 ManagedDisk 类型清单项的路径。 -
DataDiskPersistence:指示DataDisk是持久的还是非持久的。但是,目前仅支持持久性数据磁盘。
例如:
New-ProvScheme -CleanOnBoot -HostingUnitName "<HostingUnitName >" -IdentityPoolName "<IdentityPoolName >" -InitialBatchSizeHint 1 -MasterImageVM disk.manageddisk -NetworkMapping <NetworkMapping > -ProvisioningSchemeName "<ProvisioningSchemeName >" -DataDisk "XDHyp:\HostingUnits\Azure-Resources-1\image.folder\<resourcegroupname>\xxxx-datadisk.manageddisk" -DataDiskPersistence "Persistent" -Scope @() -VMCpuCount 4 -VMMemoryMB 6144 -TenancyType Shared -FunctionalLevel "L7_20"
<!--NeedCopy-->
确定数据磁盘是否正在使用
执行以下操作以验证数据磁盘是否已分配给 VM:
- 运行
Get-ProvVm并检查 VM 的CustomVmData。如果 VM 正在使用数据磁盘,则会有一个角色为DiskRole.DataDisk的磁盘记录。 - 检查 Azure 门户中 VM 下是否存在数据磁盘。
删除数据磁盘
如果删除目录,则数据磁盘将被删除,除非使用 forgetVM 或 purgeDBOnly 选项。如果删除 VM,则数据磁盘将被删除,除非使用 forgetVM 或 purgeDBOnly 选项。
从非托管磁盘迁移到托管磁盘
On September 30, 2025, Azure 将正式停用非托管磁盘(即 VHD)。任何使用非托管磁盘的现有 VM 都将在截止日期后停止并解除分配。
但是,您可以将 MCS 预配的 VM 从非托管磁盘迁移到托管磁盘,这有助于避免因 Azure 的非托管磁盘停用计划而导致的服务中断。
连接到 VM 的所有非托管磁盘都将进行转换。这包括身份磁盘、操作系统磁盘和 WBC 磁盘(如果使用)。
有关 Azure 非托管磁盘停用计划的更多信息,请参阅在 September 30, 2025 之前迁移 Azure 非托管磁盘。
用例
此功能适用于持久性和非持久性 MCS 预配目录。
它还支持按需和非按需(旧版)VM 的迁移:
- 按需 VM:将现有磁盘从非托管磁盘转换为托管磁盘,以与 Azure 的更新支持保持一致。
- 非按需(旧版)VM:旧版或非按需 VM 仅支持非托管磁盘。使用此功能可将旧版 VM 转换为按需 VM,同时迁移到托管磁盘。
有关按需预配的更多信息,请参阅Azure 按需预配。
限制
- 计算机目录或 VM 转换为托管磁盘后,无法再转换回非托管磁盘
- 对于非按需(旧版)VM,迁移过程包括将其转换为按需预配。您不能只转换磁盘并继续使用非按需 VM。
重要注意事项
- 转换不会自动发生。它作为开机操作的一部分发生。
- 如果为 VM 请求了多个更新,则磁盘转换优先。其他更新将推迟到下次开机。
- VM 成功转换并开机后,VM 的 VHD 将被清理以节省成本。存储帐户本身不会被清理。
- 基本磁盘可能仍然存在于存储帐户中。您可以运行目录更新,并创建一个新的快照(或 ACG)基本磁盘。
- 目录中的所有 VM 转换完成后,并且新的基本磁盘已创建,空存储帐户可以被删除。
所需权限
您需要在 Azure 服务主体上拥有以下权限,以允许从非托管磁盘转换为托管磁盘:
Microsoft.Compute/virtualMachines/convertToManagedDisks/write
<!--NeedCopy-->
配置步骤
对于按需目录:
-
运行
Set-ProvScheme(对于持久性 VM,则运行Set-ProvVM)以将UseManagedDisks更新为True。例如:Set-ProvScheme -ProvisioningSchemeName "<provscheme-name>" -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`" /></CustomProperties>" <!--NeedCopy-->Set-ProvVM -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-name>" -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`" /></CustomProperties>" <!--NeedCopy--> -
运行
Set-ProvVMUpdateTimeWindow` 以应用更新。在此示例中,更新将在 VM 下次开机时应用。Set-ProvVmUpdateTimeWindow -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-name>" <!--NeedCopy--> -
启动 VM。
对于非按需(旧版)目录:
-
运行
Set-ProvScheme(对于持久性 VM,则运行Set-ProvVM)以将Set DeploymentSchema配置为1.1。例如:Set-ProvScheme -ProvisioningSchemeName "<provscheme-name>" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"DeploymentSchema`" Value=`"1.1`" /></CustomProperties>" <!--NeedCopy-->Set-ProvVM -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-name>" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"DeploymentSchema`" Value=`"1.1`" /></CustomProperties> <!--NeedCopy--> -
运行
Set-ProvVMUpdateTimeWindow以应用更新。在此示例中,更新将在 VM 下次开机时应用。Set-ProvVmUpdateTimeWindow -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-name>" <!--NeedCopy--> -
启动 VM。
故障排除
如果 VM 未能从非托管磁盘转换为托管磁盘:
-
验证
UseManagedDisks或DeploymentSchema自定义属性是否已正确设置:- 如果使用
Set-ProvScheme,请通过运行Get-ProvScheme验证 ProvScheme 自定义属性。有关详细信息,请参阅 Get-ProvScheme。 - 如果使用
Set-ProvVM,请通过运行Get-ProvVMConfiguration验证 VM 是否具有包含已更新自定义属性的新配置。有关详细信息,请参阅 Set-ProvVM。
- 如果使用
-
验证您的 Azure 服务主体中是否存在以下权限:
Microsoft.Compute/virtualMachines/convertToManagedDisks/write
-
运行
Get-ProvOperationEvent以查看预配方案的任何警告。有关详细信息,请参阅 Get-ProvOperationEvent。例如:Get-ProvOperationEvent -LinkedObjectType ProvisioningScheme -LinkedObjectUid <your-provscheme-id> <!--NeedCopy-->
后续步骤
- 如果这是创建的第一个目录,Web Studio 会引导您 创建交付组
- 要查看整个配置过程,请参阅 安装和配置
- 要管理目录,请参阅 管理计算机目录 和 管理 Microsoft Azure 目录
更多信息
在本文中
- 创建计算机目录
- Azure 临时磁盘符合回写缓存磁盘条件的条件
- 非持久性回写缓存磁盘方案
- 创建 Azure 模板规范
- 在创建或更新目录时使用模板规范
- Azure 服务器端加密
- Azure 客户管理的加密密钥
- Azure 主机端磁盘加密
- 托管磁盘上的双重加密
- Azure 资源组
- Azure 临时磁盘
- Azure 计算库
- Azure 机密 VM
- 启动完整性监视
- Azure 应用商店
- 创建按需容量预留 VM 目录
- 嵌套虚拟化
- 仅限 NVMe 的 SKU
- 使用 PowerShell 创建计算机目录
- 创建具有非持久性回写缓存磁盘的目录
- 创建具有持久性回写缓存磁盘的目录
- 使用 MCSIO 提高启动性能
- 使用 PowerShell 创建或更新目录时使用模板规范
- 具有受信任启动的计算机目录
- 使用计算机配置文件属性值
- 创建或更新每个 VM 具有多个 NIC 的目录
- 预配已安装 Azure Monitor 代理的目录虚拟机
- 使用客户管理的加密密钥创建计算机目录
- 创建具有双重加密的计算机目录
- 使用 Azure 临时磁盘创建目录
- Azure 专用主机
- 使用 Azure 计算库映像创建或更新计算机目录
- 配置共享映像库
- 将计算机预配到指定的可用性区域
- 存储类型
- 从计算机配置文件捕获 VM 和 NIC 上的诊断设置
- 页面文件位置确定
- 页面文件设置方案
- 指定页面文件设置
- 修改页面文件设置
- 使用 Azure 现成 VM 创建目录
- 配置备份 VM 大小
- 复制所有资源上的标签
- 创建预格式化的 WBC 磁盘目录
- 关闭 MCS 预配的 Citrix Provisioning™ 目录时删除 WBC 磁盘
- 预配数据磁盘
- 从非托管磁盘迁移到托管磁盘
- 后续步骤
- 更多信息