管理 Azure VM 的电源

Last published : Nov 13, 2026
有关所需权限的信息,请参阅所需的 Azure 权限。

Azure 按需预配

使用 Azure 按需预配,仅当 Citrix Virtual Apps and Desktops™ 在预配完成后启动开机操作时,才会创建 VM。
当您使用 MCS 在 Azure Resource Manager 中创建计算机目录时,Azure 按需预配功能具有以下特点:
  • 降低存储成本
  • 加快目录创建速度
创建 MCS 目录时,Azure 门户会在资源组中显示网络安全组、网络接口、基础映像和身份磁盘。
Azure 门户不会显示 VM,直到 Citrix Virtual Apps and Desktops 为其启动开机操作。有两种类型的计算机,其区别如下:
  • 对于池化计算机,操作系统磁盘和回写缓存仅在 VM 存在时才存在。当您在控制台中关闭池化计算机时,VM 在 Azure 门户中不可见。如果您定期关闭计算机(例如,在工作时间之外),可以显著节省存储成本。
  • 对于专用计算机,操作系统磁盘在 VM 首次开机时创建。Azure 门户中的 VM 会一直保留在存储中,直到计算机身份被删除。当您在控制台中关闭专用计算机时,VM 在 Azure 门户中仍然可见。
注意:
对按需预配功能之前创建的 Azure 目录(“旧版”目录)的支持已弃用。因此,请重新创建 Azure 旧版目录 VM。然后,这些目录将按需预配,从而节省存储成本。

在电源循环时保留已预配的虚拟机

选择在电源循环时是否保留已预配的虚拟机。使用 PowerShell 参数 New-ProvScheme CustomProperties。此参数支持一个额外的属性 PersistVm,用于确定已预配的虚拟机在电源循环时是否持久存在。将 PersistVm 属性设置为 true 以在关机时保留虚拟机,或将该属性设置为 false 以确保在关机时不保留虚拟机。
注意:
PersistVm 属性仅适用于启用了 CleanOnBoot 和 UseWriteBackCache 属性的预配方案。如果未为非持久性虚拟机指定 PersistVm 属性,则它们在关机时会从 Azure 环境中删除。
在以下示例中,New-ProvScheme CustomProperties 参数将 PersistVm 属性设置为 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="StorageType" Value="Standard_LRS" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
<Property xsi:type="StringProperty" Name="PersistVm" Value="true" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="demo-resourcegroup" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>
在以下示例中,New-ProvScheme CustomProperties 参数通过将 PersistVM 设置为 true 来保留回写缓存:
 New-ProvScheme
 -AzureAdJoinType "None"
 -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=`"StorageType`" Value=`"Standard_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"false`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"demo-resourcegroup`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Client`" /></CustomProperties>"
 -HostingUnitName "demo"
 -IdentityPoolName "NonPersistent-MCSIO-PersistVM"
 -MasterImageVM "XDHyp:\HostingUnits\demo\image.folder\scale-test.resourcegroup\demo-snapshot.snapshot"
 -NetworkMapping @ {"0"="XDHyp:\HostingUnits\demo\\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\ji-test.resourcegroup\jitest-vnet.virtualprivatecloud\default.network"}
-ProvisioningSchemeName "NonPersistent-MCSIO-PersistVM"
 -ServiceOffering "XDHyp:\HostingUnits\demo\serviceoffering.folder\Standard_B2ms.serviceoffering" -UseWriteBackCache
 -WriteBackCacheDiskSize 127
 -WriteBackCacheMemorySize 256
提示:
PersistVm 属性决定是否保留已预配的虚拟机。PersistOsdisk 属性决定是否持久化操作系统磁盘。要保留已预配的虚拟机,请首先保留操作系统磁盘。请勿在未先删除虚拟机的情况下删除操作系统磁盘。您可以使用 PersistOsdisk 属性,而无需指定 PersistVm 参数。

自定义存储类型更改失败时的开机行为

开机时,由于 Azure 上的故障,托管磁盘的存储类型可能无法更改为所需类型。在这种情况下,VM 将保持关机状态,并向您发送故障消息。但是,您可以选择即使存储无法恢复到其配置类型也开机 VM,或者选择保持 VM 关机。
  • 如果您将自定义属性 FailSafeStorageType 配置为 true(默认设置),或者未在 New-ProvScheme 或 Set-ProvScheme 命令中指定它:
    • 开机时,VM 以不正确的存储类型启动。
    • 关机时,虚拟机以不正确的存储类型保持关机状态。
  • 如果您在 New-ProvScheme 或 Set-ProvScheme 命令中将自定义属性 FailSafeStorageType 配置为 false:
    • 开机时,VM 保持关机状态,存储类型不正确。
    • 关机时,虚拟机以不正确的存储类型保持关机状态。
要创建计算机目录:
  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 如果尚未创建,请创建身份池。
  4. 在 New-ProvScheme 中添加自定义属性。例如:
    New-ProvScheme -HostingUnitName "Azure-Resources-1" -IdentityPoolName "name" -InitialBatchSizeHint 1
    -MasterImageVM "XDHyp:\HostingUnits\Azure-Resources-1\image.folder\abc.resourcegroup\def.snapshot"
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\Azure-Resources-1\ght.folder\abc.resourcegroup\abc-vnet.virtualprivatecloud\default.network"}
    -ProvisioningSchemeName "name"
    -ServiceOffering "XDHyp:\HostingUnits\Azure-Resources-1\serviceoffering.folder\Standard_DS2_v2.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=`"StorageType`" Value=`"Premium_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"StorageTypeAtShutdown`" Value=`"Standard_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"true`" />
    </CustomProperties>"
  5. 创建计算机目录。有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 <https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/>。
更新现有计算机目录以包含 FailSafeStorageType 自定义属性。此更新不影响现有 VM。
  1. 在 Set-ProvScheme 命令中更新自定义属性。例如:
Set-ProvScheme -ProvisioningSchemeName <String> -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=`"Premium_LRS`" />
<Property xsi:type=`"StringProperty`" Name=`"IdentityDiskStorageType`" Value=`"Premium_LRS`" />
<Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"false`" />
</CustomProperties>"
要将 Set-ProvScheme 中所做的更改应用于现有 VM,请运行带有 -StartsNow 和 -DurationInMinutes -1 参数的 Set-ProvVMUpdateTimeWindow 命令。
  1. 运行 Set-ProvVMUpdateTimeWindow 命令,带 -StartsNow 和 -DurationInMinutes -1 参数。例如:
    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
  2. 重新启动 VM。

创建支持休眠的 VM

在 Azure 环境中,您可以创建支持休眠的 MCS 计算机目录。使用此功能,您可以暂停 VM,然后在用户再次登录时重新连接到 VM 的先前状态。
休眠功能适用于以下情况:
  • 单会话操作系统
  • 持久和非持久 VM
  • 静态和随机(池化)VDI 桌面
无论 VDI 桌面是静态还是随机的,在休眠 VM 后,您都可以恢复到同一会话。
在本节中,请参阅以下内容:

使用休眠的先决条件

要使用休眠,请确保完成以下任务:
  • 在 Windows 和 Linux 的主映像上安装 Azure VM 代理。Windows 映像的页面文件可以位于临时磁盘上。在计算机目录上启用休眠时,MCS 会将页面文件位置设置为基础磁盘中的 C: 驱动器。
  • MCS 会自动为生成的资源设置休眠属性。您无需配置主资源的属性来支持休眠。
  • 在您的订阅中使用支持休眠的 VM 大小。
  • 创建支持休眠的计算机配置文件(VM 或模板规范),以便 VM 继承休眠功能。要创建 VM,请参阅休眠入门。
    注意:
    根据 Microsoft 的说法,您可以从操作系统磁盘部署启用休眠的 VM。此功能目前支持某些区域,并将很快在所有区域可用。有关详细信息,请参阅从操作系统磁盘部署启用休眠的 VM。
    要创建模板规范,请执行以下操作:
    1. 打开 Azure 门户。选择要在模板中使用的 VM 的配置。在左侧窗格中选择导出模板。
    2. 清除包括参数复选框。复制上下文并将其保存为 JSON 文件,例如 VMExportTemplate.json。
    3. 确保模板上的参数 hibernationEnabled 为 true。如果参数不是 true,请检查您使用的 VM 配置。您可以在模板文件中指定支持的 VM 大小。但是,您也可以在创建目录时指定计算机大小。
    4. 将网络接口资源的模板添加到 JSON 文件 VMExportTemplate.json。这样,您就拥有了一个包含两个资源的 ARM 模板文件。
    5. 选择 Azure 门户 > 模板规范 > 导入模板 > 选择本地模板文件以将此模板文件作为 ARM 模板规范导入。
    6. 创建 ARM 模板规范后,您可以将其用作计算机配置文件。
    注意:
    同步到 Citrix Studio 可能需要几分钟时间。
有关详细信息,请参阅 Microsoft 文档使用休眠的先决条件。

限制

  • 仅支持单会话操作系统计算机目录(持久和非持久)。
  • 临时 OS 磁盘和 MCS I/O 功能不支持 Azure 休眠。
  • 休眠可能会在 Windows 自动更新期间失败。
有关详细信息,请参阅 Microsoft 文档。

创建和管理支持休眠的计算机目录

要创建支持休眠的 VM,可以使用以下方法创建和管理支持休眠的计算机目录:

使用 Web Studio 创建目录

  1. 选择创建计算机目录。目录创建向导随即打开。
  2. 在计算机类型页面上,为此目录选择单会话操作系统计算机类型。
  3. 在计算机管理页面上,按如下所示选择设置:
    1. 选择“已进行电源管理的计算机(例如,虚拟机或刀片式电脑)”。
    2. 选择 Citrix 机器创建服务™ (MCS)。
  4. 在“桌面体验”页面上,根据需要选择随机或静态桌面体验。
  5. 在“映像”页面上,选择主映像。选中“使用计算机配置文件”复选框,然后选择支持休眠的计算机配置文件。单击工具提示以了解计算机配置文件是否支持休眠。
  6. 在“存储和许可证类型”页面上,选择要用于此目录的存储和许可证。
  7. 在“虚拟机”页面上,选择 VM 数量、VM 大小和可用区。
    注意:
    仅显示支持休眠的计算机大小供您选择。
  8. 在“NIC”页面上,添加要供 VM 使用的 NIC。
  9. 在“磁盘设置”页面上,选择回写缓存磁盘的存储类型和大小。
  10. 在“资源组”页面上,选择要预配 VM 的资源组。
  11. 在“计算机身份”页面上,选择“创建新的 Active Directory 帐户”。然后,指定帐户命名方案。
  12. 在“域凭据”页面上,单击“输入凭据”。输入您的域凭据以在目标 Active Directory 域中执行帐户创建。
  13. 在“摘要”页面上,输入计算机目录的名称,然后单击“完成”。
MCS 计算机目录创建完成后,在目录列表中找到该目录,然后单击“模板属性”选项卡。参数“休眠”的值必须为“支持”。
如果要编辑计算机目录,请考虑以下限制:
  • 如果当前计算机目录支持休眠,则不能:
    • 将 VM 大小更改为不支持休眠的大小。
    • 将计算机配置文件更改为不支持休眠的配置文件。
  • 如果当前计算机目录不支持休眠,则不能:
    • 目前,使用 Web Studio 将计算机配置文件更改为支持休眠的配置文件。

创建用于管理现有支持休眠的 VM 的计算机目录

如果您已有支持休眠的 VM 并希望暂停和恢复它们,请创建一个计算机目录以导入这些 VM 进行电源管理。
注意:
您可以创建包含支持休眠和不支持休眠的 VM 的计算机目录。但是,如果您需要与休眠相关的功能,则必须仅使用支持休眠的 VM 创建计算机目录。
要使用 Web Studio 为现有支持休眠的 VM 创建目录,请按照屏幕上的说明完成步骤,并注意以下关键设置:
  1. 在“计算机管理”页面上,选择“已进行电源管理的计算机”,然后选择“其他服务或技术”作为部署计算机的方式。
  2. 在“虚拟机”页面上,仅添加或导入支持休眠的 VM。

使用 PowerShell 命令创建计算机目录

满足所有使用休眠的要求后,您可以使用 New-ProvScheme 命令创建支持休眠的计算机目录。有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 New-ProvScheme。
创建目录时,您可以使用以下 PowerShell 命令检查 VM 大小和计算机配置文件是否支持休眠:
  • 对于 VM 大小,运行以下命令并检查属性 supportsHibernation 是否为 True。例如,
    Get-ChildItem -AdminAddress "MyDDC.MyDomain.local" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \serviceoffering.folder") | select Name, AdditionalData | ConvertTo-Json
  • 对于计算机配置文件,运行以下命令并检查属性 supportsHibernation 是否为 True。例如,
    Get-ChildItem -AdminAddress "MyDDC.MyDomain.local" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \machineprofile.folder\abc.resourcegroup")|select Name, AdditionalData|ConvertTo-Json
如果要编辑计算机目录,请考虑以下限制:
  • 如果当前计算机目录支持休眠,您不能:
    • 将 VM 大小更改为不支持休眠的大小
    • 将计算机配置文件更改为不支持休眠的配置文件
  • 如果当前计算机目录不支持休眠,您不能:
    • 目前,使用 Web Studio 将计算机配置文件更改为支持休眠的配置文件。
有关如何使用远程 PowerShell SDK 修改目录的 VM 大小和计算机配置文件,请参阅 <https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Set-ProvScheme/>。

检查休眠属性

您可以使用 PowerShell 命令检查计算机目录、VM 和代理计算机的休眠属性:
  • 要检查预配方案的休眠属性,请运行以下 PowerShell 命令。HibernationEnabled 参数必须为 True。
    (Get-ProvScheme -provisioningSchemeName <YourSchemeName>).VMMetadata -join "" |  ConvertFrom-Json | Select HibernationEnabled
  • 要检查预配 VM 的休眠属性,请运行以下 PowerShell 命令。SupportsHibernation 参数必须为 True。
    (Get-ProvVM -VMName <YourVMName>).CustomVmData | ConvertFrom-Json | Select SupportsHibernation
  • 要检查代理计算机的休眠容量,请运行以下 PowerShell 命令。挂起和恢复电源操作表示休眠功能。
    (Get-BrokerMachine -MachineName <YourMachineName>).SupportedPowerActions

支持休眠的 VM 的电源管理

您可以对支持休眠的 VM 执行以下电源管理操作:
  • 从运行状态挂起 VM
  • 从挂起状态恢复 VM
  • 从挂起状态强制关闭 VM
  • 从挂起状态强制重启 VM
有关详细信息,请参阅以下内容:

挂起

您可以通过以下方式之一挂起 VM:
  • 手动使用 Web Studio
  • 使用超时策略自动:有关详细信息,请参阅其他设置。
要手动挂起 VM:
  1. 右键单击 VM,然后选择“挂起”。单击“是”以确认操作。“电源状态”从“正在挂起”变为“已挂起”。
    挂起支持休眠的 VM
您可以在 Azure 门户中检查 VM 的状态。
在 Azure 门户中检查 VM 的状态

恢复

要恢复已休眠的 VM,请使用以下方法之一:
  • 手动:
    • 管理员可以使用 Web Studio 恢复 VM。
      使用 Web Studio 恢复 VM
    • 最终用户在单击桌面图标后,可以使用 Citrix Workspace™ 菜单启动 VM。
      使用 Citrix Workspace 恢复 VM
  • 自动:
    • 如果正确配置了高峰时段,Autoscale™ 可以自动开启已休眠的计算机。您可以通过单击时间表以 30 分钟为间隔设置高峰时段。每个蓝色框表示一个标记为高峰时段的时间段。高峰时段可以包含连续和非连续的时间段。
      • 连续时间段
        连续高峰时段
      • 非连续时段
        非连续高峰时段
注意:
在 管理自动缩放 > 基于负载的设置 中,如果将 操作 配置为 挂起,请确保该交付组中的所有 VM 都具有休眠功能。否则,无法休眠的 VM 将继续运行。
管理自动缩放基于负载的设置

更多信息

有关 Citrix Azure 休眠的详细信息,请参阅 Citrix Tech Zone 文章。