Citrix DaaS

管理 Microsoft Azure 目录

管理计算机目录介绍了用于管理计算机目录的向导。以下信息涵盖了 Microsoft Azure Resource Manager 云环境的特定详细信息。

注意:

在管理 Microsoft Azure 目录之前,您需要完成 Microsoft Azure 目录的创建。请参阅创建 Microsoft Azure 目录

重启电源时保留已置备的虚拟机

选择在重启电源时是否保留预配的虚拟机。使用 PowerShell 参数 New-ProvScheme CustomProperties。此参数支持额外的属性 PersistVm,用于确定重启电源后预配的虚拟机是否仍然存在。将 PersistVm 属性设置为 true 以在关闭电源时保留虚拟机,或者将属性设置为 false 以确保在关闭电源时不保留虚拟机。

注意:

PersistVm 属性仅适用于启用了属性 CleanOnBootUseWriteBackCache 的预配方案。如果未为非持久性虚拟机指定了 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>
<!--NeedCopy-->

在以下示例中,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
 <!--NeedCopy-->

提示:

PersistVm 属性决定是否保留预配的虚拟机。PersistOsdisk 属性决定是否保留操作系统磁盘。要保留预配的虚拟机,请先保留操作系统磁盘。如果不先删除虚拟机,则无法删除操作系统磁盘。可以在不使用指定 PersistVm 参数的情况下使用 PersistOsdisk 属性。

安排配置更新

可以使用 PowerShell 命令 Schedule-ProvVMUpdate 为 MCS 预配的现有计算机的配置更新安排时段。在安排的时段内打开电源或重新启动都会对计算机应用安排的预配方案更新。

如果您同时运行 Request-ProvVMUpdateSchedule-ProvVMUpdate 命令,最新的命令将生效。

注意:

Schedule-ProvVMUpdate 具有 Request-ProvVMUpdate 的所有功能以及更多功能。最终,Schedule-ProvVMUpdate 将取代 Request-ProvVMUpdate

也可以使用 Cancel-ProvVMUpdate 在计划的时间之前取消配置更新。

可以安排以下对象的配置更新:

  • 单个 VM
  • 与预配方案 ID 或预配方案名称关联的多个 VM
  • 与预配方案 ID 或预配方案名称关联的整个目录

要安排配置更新,请执行以下操作:

  1. 使用完整配置界面或 PowerShell 创建目录。
  2. 打开 PowerShell 窗口。
  3. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  4. 检查现有计算机的配置。例如:

    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  5. 更新预配方案以更新自定义属性、计算机配置文件或服务产品。例如:

    Set-ProvScheme –ProvisioningSchemeName “my-catalog” – MachineProfile“XDHyp:\HostingUnits<hosting-unit>\machineprofileinstance.vm”
    <!--NeedCopy-->
    
  6. 检查:

    • VM 的当前属性是否与当前的预配方案相匹配,以及
    • VM 上是否存在任何待处理的更新操作。

    例如:

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeUpdateUntil, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  7. 运行 Schedule-ProvVMUpdate 可安排 VM 下次在计划的时间范围内启动时更新到最新的预配设置。例如:

    • 要安排以开始时间作为当前时间的更新,请执行以下操作:

       Schedule-ProvVMUpdate -ProvisioningSchemeName " my-catalog " -VMName "vm1" -StartsNow -DurationInMinutes 120
       <!--NeedCopy-->
      
    • 要安排在周末更新,请执行以下操作:

        Schedule-ProvVMUpdate -ProvisioningSchemeName " my-catalog " -VMName "vm1" -StartTimeInUTC "10/15/2022 9:00am" -DurationInMinutes (New –TimeSpan –Days 2).TotalMinutes
        <!--NeedCopy-->
      

      注意:

      • VMName 是可选的。如果未指定,则安排对整个目录进行更新。
      • 使用 StartsNow 代替 StartTimeInUTC 来表示计划开始时间为当前时间。
      • DurationInMinutes 是可选的。默认值为 120 分钟。负数(例如 —1)表示计划的时间范围没有上限。
  8. 检查更新状态。

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeUpdateUntil, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  9. 打开 VM 的电源。如果您在安排的时段之后打开计算机电源,则不会应用配置更新。如果您在安排的时段内打开计算机电源,

    • 如果计算机已关闭电源,并且
      • 您未打开计算机电源,未应用配置更新
      • 您打开了计算机电源,应用了配置更新
    • 如果计算机已打开电源,并且
      • 您未重新启动计算机,未应用配置更新
      • 您重新启动了计算机,应用了配置更新

也可以取消单个 VM、多个 VM 或整个目录的配置更新。要取消配置更新,请执行以下操作:

  1. 运行 Cancel-ProvVMUpdate。例如:

    • 要取消为单个 VM 安排的配置更新,请执行以下操作:

         Cancel-ProvVMUpdate -ProvisioningSchemeName " my-catalog " -VMName "vm1"
        <!--NeedCopy-->
      
    • 要取消为多个 VM 安排的配置更新,请执行以下操作:

        Cancel-ProvVMUpdate -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2"
       <!--NeedCopy-->
      

注意:

VM 必须来自同一个目录。

关闭 VM 时将存储类型更改为较低的层

关闭 VM 时,您可以通过将托管磁盘的存储类型切换到较低的层来节省存储成本。为此,请使用 StorageTypeAtShutdown 自定义属性。

关闭虚拟机时,磁盘的存储类型更改为较低层(在 StorageTypeAtShutdown 自定义属性中指定)。打开 VM 的电源后,存储类型将更改回原始类型(如 StorageType 自定义属性或 WBCDiskStorageType 自定义属性中所指定)。

重要:

在 VM 至少打开电源一次之前,磁盘不存在。因此,您无法在首次打开 VM 电源时更改存储类型。

要求:

  • 适用于托管磁盘。这意味着您将自定义属性 UseManagedDisks 设置为 true。
  • 适用于具有永久操作系统磁盘的永久和非永久目录。这意味着您将自定义属性 persistOsDisk 设置为 true。
  • 适用于具有永久 WBC 磁盘的非永久目录。这意味着您将自定义属性 persistWBC 设置为 true。

要将存储类型更改为较低的层,请执行以下操作:

  1. 添加自定义属性 StorageTypeAtShutdown,将值设置为 Standard_LRS (HDD),然后使用 New-ProvScheme 创建目录。有关使用 PowerShell 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

    注意:

    如果 StorageTypeAtShutdown 除空值或 Standard_LRS (HDD) 之外还有其他任何值,操作将失败。

    创建永久目录时设置自定义属性的示例:

    $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="ResourceGroups" Value="" />
    <Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
    <Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
    <Property xsi:type="StringProperty" Name="OsType" Value="Windows" />
    <Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
    </CustomProperties>’
    <!--NeedCopy-->
    

    创建非永久目录时设置自定义属性的示例:

    $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="WbcDiskStorageType" Value="Standard_SSD_LRS" />
    <Property xsi:type="StringProperty" Name="ResourceGroups" Value="" />
    <Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
    <Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
    <Property xsi:type="StringProperty" Name="OsType" Value="Windows" />
    <Property xsi:type="BooleanProperty" Name="persistWBC" Value=true />
    <Property xsi:type="BooleanProperty" Name="persistOsDisk" Value=true />
    <Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
    </CustomProperties>’
    <!--NeedCopy-->
    

    注意:

    使用计算机配置文件时,自定义属性优先于在 MachineProfile 中定义的属性。

  2. 关闭 VM 并在 Azure 门户中检查 VM 的存储类型。磁盘的存储类型更改为较低的层,如 StorageTypeAtShutdown 自定义属性中所指定。
  3. 打开 VM。磁盘的存储类型切换回下面提及的存储类型:
    • 操作系统磁盘的 StorageType 自定义属性
    • 仅当您在 CustomProperties 中指定了 WBC 磁盘的 WBCDiskStorageType自定义属性时。否则,它会切换回 StorageType 中提到的存储类型。

要将 StorageTypeAtShutdown 应用到现有目录,请执行以下操作:

使用 Set-ProvScheme 向现有目录中添加 VM。该功能适用于运行 Set-ProvScheme 后添加的新 VM。现有计算机不受影响。

将 VM 添加到现有目录时设置自定义属性的示例:

$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="WbcDiskStorageType" Value="Standard_SSD_LRS" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
<Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
<Property xsi:type="StringProperty" Name="OsType" Value="Windows" />
<Property xsi:type="BooleanProperty" Name="persistWBC" Value=true />
<Property xsi:type="BooleanProperty" Name="persistOsDisk" Value=true />
<Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
</CustomProperties>’

$ProvScheme = Get-Provscheme -ProvisioningSchemeName $CatalogName

Set-ProvScheme -ProvisioningSchemeName $ProvScheme.ProvisioningSchemeName -CustomProperties $customProperties
<!--NeedCopy-->

将预配的计算机更新为当前预配方案状态

Set-ProvScheme 命令更改了预配方案。但是,它不会影响现有计算机。可以使用 PowerShell 命令 Request-ProvVMUpdate 将当前的预配方案应用到现有的永久性计算机或非永久性计算机或者一组计算机。目前,在 Azure 中,您可以更新 ServiceOfferingMachineProfile 以及以下自定义属性:

  • StorageType
  • WBCDiskStorageType
  • IdentityDiskStorageType
  • LicenseType
  • DedicatedHostGroupId
  • PersistWBC
  • PersistOsDisk
  • PersistVm

注意:

在 Azure 环境中,只能使用托管磁盘更新目录的 StorageTypeWBCDiskStorageTypeIdentityDiskStorageType 自定义属性。

可以更新以下对象:

  • 单个 VM
  • 与预配方案 ID 关联的特定 VM 或所有现有 VM 的列表
  • 与预配方案名称(计算机目录名称)关联的特定 VM 或所有现有 VM 的列表

对预配方案做以下更改后,将在 Azure 中为永久目录重新创建 VM 实例:

  • 更改 MachineProfile
  • 删除 LicenseType
  • 删除 DedicatedHostGroupId

注意:

现有计算机的操作系统磁盘及其所有数据保持原样,新的 VM 已连接到该磁盘。

要更新现有 VM,请执行以下操作:

  1. 检查现有计算机的配置。例如,

    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  2. 更新预配方案。例如,

    Set-ProvScheme –ProvisioningSchemeName “my-catalog” – ServiceOffering“XDHyp:\HostingUnits<hosting-unit>\machineprofileinstance.vm”
    <!--NeedCopy-->
    
  3. 检查 VM 的当前属性是否与当前的预配方案相匹配,以及 VM 上是否有任何待处理的更新操作。例如,

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion
    <!--NeedCopy-->
    

    还可以查找具有特定版本的计算机。例如,

    Get-ProvVM -Filter "ProvisioningSchemeVersion -eq 1" | select VMName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  4. 更新现有计算机。

    • 更新所有现有计算机。例如,

       Request-ProvVMUpdate –ProvisioningSchemeName “my-catalog”
       <!--NeedCopy-->
      
    • 更新特定计算机的列表。例如,

       Request-ProvVMUpdate -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2"
       <!--NeedCopy-->
      
    • 根据 Get-ProvVM 的输出更新计算机。例如,

       Get-ProvVM -ProvisioningSchemeName "my-catalog" | Request-ProvVMUpdate
       <!--NeedCopy-->
      
  5. 查找已安排更新的计算机。例如,

    Get-ProvVM -Filter "ProvisioningSchemeUpdateAfter" | select VMName, ProvisioningSchemeUpdateAfter
    <!--NeedCopy-->
    
  6. 请重新启动计算机。下次启动时,属性更改将应用到现有计算机。可以使用以下命令检查更新后的状态。例如,

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion
    <!--NeedCopy-->
    

检索 Azure VM、快照、操作系统磁盘和库映像定义的信息

可以显示 Azure VM 的信息,包括操作系统磁盘和类型、快照和库映像定义。分配计算机目录时,将为主映像上的资源显示此信息。使用此功能可以查看和选择 Linux 或 Windows 映像。PowerShell 属性 TemplateIsWindowsTemplate 已添加到 AdditionDatafield 参数中。此字段包含 Azure 特定的信息:VM 类型、操作系统磁盘、库映像信息和操作系统类型信息。将 TemplateIsWindowsTemplate 设置为 True 表示操作系统类型为 Windows;将 TemplateIsWindowsTemplate 设置为 False 表示操作系统类型为 Linux。

提示:

TemplateIsWindowsTemplate PowerShell 属性显示的信息来自 Azure API。有时,此字段可能是空的。例如,数据磁盘中的快照不包含 TemplateIsWindowsTemplate 字段,因为无法从快照中检索操作系统类型。

例如,使用 PowerShell 将 Windows 操作系统类型的 Azure VM AdditionData 参数设置为 True

PS C:\Users\username> (get-item XDHyp:\HostingUnits\mynetwork\image.folder\username-dev-testing-rg.resourcegroup\username-dev-tsvda.vm).AdditionalData
Key Value
ServiceOfferingDescription Standard_B2ms
HardDiskSizeGB 127
ResourceGroupName FENGHUAJ-DEV-TESTING-RG
ServiceOfferingMemory 8192
ServiceOfferingCores 2
TemplateIsWindowsTemplate True
ServiceOfferingWithTemporaryDiskSizeInMb 16384
SupportedMachineGenerations Gen1,Gen2
<!--NeedCopy-->

检索 Azure VM、托管磁盘、快照、Azure VHD 和 ARM 模板的区域名称信息

您可以显示 Azure VM、托管磁盘、快照、Azure VHD 和 ARM 模板的区域名称信息。分配计算机目录后,将为主映像上的资源显示此信息。当您使用 AdditionalData 参数运行 PowerShell 命令时,名为的 PowerShell 属性 RegionName 会显示区域名称信息。

例如,使用以下 PowerShell 命令在 Azure 中获取 VM 信息。

PS C:\Windows\system32> (get-item XDHyp:\HostingUnits\myAzureNetwork\image.folder\hu-dev-testing-rg.resourcegroup\hu-dev-tsvda.vm).AdditionalData
Key Value
HardDiskSizeGB 127
ResourceGroupName HU-DEV-TESTING-RG
RegionName East US
TemplateIsWindowsTemplate True
LicenseType
ServiceOfferingDescription Standard_B2ms
ServiceOfferingMemory 8192
ServiceOfferingCores 2
SupportedMachineGenerations Gen1,Gen2
ServiceOfferingWithTemporaryDiskSizeInMb 16384
SecurityType
SecureBootEnabled
VTpmEnabled
<!--NeedCopy-->

识别 MCS 创建的资源

以下是 MCS 向 Azure 平台上的资源添加的标签。表中的标签表示方式为 “key”:”value”。

资源名称 标记
ID 磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
映像 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
NIC “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
操作系统磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
PrepVM “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
已发布的快照 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
资源组 “CitrixResource” : “Internal”
  CitrixSchemaVersion:2.0
  “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
存储帐户 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
目录中的 VM “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
WBC 磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”

注意:

如果添加了 CitrixResource 标记以将某个 VM 标识为 MCS 创建的资源,该 VM 在 Citrix 清单中将不可见。您可以删除或重命名该标记以使其可见。

更多信息