Citrix DaaS™

管理 Microsoft Azure 目录

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

注意:

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

在 VM 关机时将存储类型更改为较低层级

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

当您关闭 VM 时,磁盘的存储类型将更改为较低层级(如 StorageTypeAtShutdown 自定义属性中指定)。启动 VM 后,存储类型将恢复为原始类型(如 StorageType 自定义属性或 WBCDiskStorageType 自定义属性中指定)。

重要:

  • 磁盘在 VM 至少启动一次之前不存在。因此,您无法在首次启动 VM 时更改存储类型。

  • 将存储类型更改为较低层级后,VM 启动可能需要稍长的时间。

要求

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

限制

-  根据 Microsoft 的规定,您每天只能更改磁盘类型两次。请参阅 [Microsoft 文档](https://learn.microsoft.com/zh-cn/azure/virtual-machines/disks-convert-types?tabs=azure-powershell#restrictions)。根据 Citrix 的规定,每当 VM 有启动或解除分配操作时,`StorageType` 都会更新。因此,请将每个 VM 的电源操作数量限制为每天两次。例如,早上一次电源操作以启动 VM,晚上一次电源操作以解除分配 VM。

将存储类型更改为较低层级

在继续执行这些步骤之前,请参阅要求限制

  1. 添加自定义属性 StorageTypeAtShutdown,将其值设置为 Standard_LRS (HDD),然后使用 New-ProvScheme 创建目录。

    注意:

    如果 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-ProvSchemeStorageTypeAtShutdown 应用于添加到现有目录的新 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-->

在关机时将现有 VM 的存储类型更改为较低层级

在继续执行这些步骤之前,请参阅要求限制

您可以在 VM 关机时将现有 VM 的存储类型更改为较低层级,从而节省存储成本。

要在 VM 关机时将目录中现有计算机的存储类型更改为较低层级,请执行以下操作:

    1. 打开 PowerShell 窗口。
    1. 运行 asnp citrix* 以加载 Citrix 专用 PowerShell 模块。
    1. 运行 Get-Provscheme -ProvisioningSchemeName $CatalogName
    1. 更改自定义属性字符串。
    
     $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
     <Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
     </CustomProperties>'
    
     <!--NeedCopy-->
    
  1. 更新现有目录的预配方案。此更新适用于运行 Set-ProvScheme 后添加的新 VM。

    
    Set-ProvScheme -ProvisioningSchemeName $CatalogName -CustomProperties $customProperties
    
    <!--NeedCopy-->
    
    1. 更新现有 VM 以启用 StorageTypeAtShutdown

    ```

  • Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1

    ```

  1. 下次启动计算机时,计算机的 StorageTypeAtShutdown 属性将更新。存储类型将在下次关机时更改。

  2. 运行以下命令以查看目录中每个 VM 的 StorageTypeAtShutdown 值。

    
    Get-ProvVM -ProvisioningSchemeName <catalog-name> | foreach { $vmName = $_.VMName; $storageTypeAtShutdown = ($_.CustomVmData | ConvertFrom-Json).StorageTypeAtShutdown.DiskStorageAccountType; return New-Object psobject -Property @{ "VMName" = $vmName; "StorageTypeAtShutdown" = $storageTypeAtShutdown } }
    
    <!--NeedCopy-->
    

将 Azure 中的旧版 MCS 目录转换为基于计算机配置文件的目录

-  要将非基于计算机配置文件的计算机目录转换为基于计算机配置文件的计算机目录,请完成以下步骤:
  1. 计算机目录页面上,右键单击要转换的计算机目录名称,然后选择编辑计算机目录
  2. 编辑计算机目录 > 计算机配置文件页面上,选中使用计算机配置文件(Microsoft Entra ID 的强制要求)复选框。
      1. 单击选择计算机配置文件
  3. 选择计算机配置文件页面上,选择一个虚拟机或启动模板用作计算机配置文件。
  4. 如果某些当前设置与新的计算机配置文件设置不同,请为要使用的设置选择所需选项,然后单击继续
  5. 单击应用

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

Set-ProvScheme 命令更改预配方案。但是,它不影响现有计算机。使用 PowerShell 命令 Set-ProvVMUpdateTimeWindow,您可以将当前预配方案应用于现有持久或非持久计算机或计算机组。您还可以为现有 MCS 预配的计算机的配置更新安排时间段。在计划的时间段内进行的任何开机或重新启动都会将计划的预配方案更新应用于计算机。目前,在 Azure 中,您可以更新 ServiceOfferingMachineProfile 以及以下自定义属性:

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

注意: >

  • 您只能在 Azure 环境中为使用托管磁盘的目录更新 StorageTypeWBCDiskStorageTypeIdentityDiskStorageType 自定义属性。
  • 如果您运行 Set-ProvVMUpdateTimeWindow 两次,则最新命令生效。
    • 如果使用 Set-ProvVMUpdateTimeWindow 更新了虚拟机,并且 Zones 自定义属性提供的当前可用区列表已更改为不包括虚拟机当前正在使用的区域,则虚拟机的持久磁盘将复制到新区域,并删除原始磁盘。例如,在区域 3 中预配的虚拟机,如果使用设置为“1,2”的 Zones 自定义属性进行更新,则会将虚拟机及其磁盘移动到区域 1 或区域 2,具体取决于这两个区域中哪个区域的计算机较少,以便在区域 1 和区域 2 之间平衡计算机。
    • 如果 Zones 自定义属性完全清除(设置为一个空值),则虚拟机的区域亲和性将被移除,允许 Azure 根据容量将虚拟机放置在任何可用区中。在这种情况下,虚拟机的持久磁盘保留在其原始区域中,并且不会移动。

您可以更新:

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

对预配方案进行以下更改后,Azure 中的持久目录将重新创建虚拟机实例:

-  更改 `MachineProfile`
    -  移除 `LicenseType`
    -  移除 `DedicatedHostGroupId`

注意:

现有计算机的操作系统磁盘及其所有数据保持不变,新的虚拟机将附加到该磁盘。

在更新现有虚拟机之前:

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

    
    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    
    <!--NeedCopy-->
    
      1. 更新预配方案。例如,
      • 以虚拟机作为计算机配置文件输入:
      
       Set-ProvScheme -ProvisioningSchemeName "my-catalog" -MachineProfile "XDHyp:\HostingUnits\<hosting-unit>\machineprofile.folder\<resource-group>.resourcegroup\<virtual-machine>.vm"
      
       <!--NeedCopy-->
      
      • 以模板规范作为计算机配置文件输入:
      
       Set-ProvScheme -ProvisioningSchemeName "my-catalog"
       -MachineProfile "XDHyp:\HostingUnits\<hosting-unit>\machineprofile.folder\<resource-group>.resourcegroup\<template-spec>.templatespec\<template-spec-version>.templatespecversion"
       -ServiceOffering "XDHyp:\HostingUnits\<hosting-unit>\serviceoffering.folder\<service-offering>.serviceoffering"
      
       <!--NeedCopy-->
      
    • 仅使用服务产品:

      
       -  Set-ProvScheme -ProvisioningSchemeName "my-catalog" -ServiceOffering "XDHyp:\HostingUnits\<hosting-unit>\serviceoffering.folder\<service-offering>.serviceoffering"
      
       <!--NeedCopy-->
      
  2. 检查虚拟机的当前属性是否与当前预配方案匹配,以及虚拟机上是否有任何待处理的更新操作。例如,

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

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

    
    Get-ProvVM -Filter "ProvisioningSchemeVersion -eq 1" | select VMName, ProvisioningSchemeVersion
    
    <!--NeedCopy-->
    

要请求更新现有计算机以便在下次重新启动时应用:

    1. 运行以下命令以更新现有计算机,并使更新在下次重新启动时应用。
    • 更新所有现有计算机。例如,

      
       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
      
       <!--NeedCopy-->
      
    • 更新特定计算机列表。例如,

      
       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
      
       <!--NeedCopy-->
      
    • 根据 Get-ProvVM 的输出更新计算机。例如,

      
       Get-ProvVM -ProvisioningSchemeName "my-catalog" | Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
      
       <!--NeedCopy-->
      

    注意:

    • StartsNow 表示计划的开始时间是当前时间。
    • DurationInMinutes 带有负数(例如,–1)表示计划时间窗口没有上限。
    1. 查找已安排更新的计算机。例如,
    
     Get-ProvVM -Filter "ProvisioningSchemeUpdateAfter" | select VMName, ProvisioningSchemeUpdateAfter
    
     <!--NeedCopy-->
    
  1. 重新启动计算机。在下次开机时,属性更改将应用于现有计算机。您可以使用以下命令检查更新状态。例如,

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

要在计划的时间窗口内下次启动时安排虚拟机更新到最新的预配设置:

  1. 运行以下命令:

    • 安排更新并将开始时间设置为当前时间:

      
       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName vm1 -StartsNow -DurationInMinutes 120
      
       <!--NeedCopy-->
      
    • 要在周末安排更新:

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

    注意:

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

    
    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeUpdateUntil, ProvisioningSchemeVersion
    
    <!--NeedCopy-->
    
  3. 启动 VM。如果在计划时间段之后启动计算机,则不应用配置更新。如果在计划时间段内启动计算机,则:

    • 如果计算机已关机,并且
      • 您未启动计算机,则不应用配置更新
      • 您启动计算机,则应用配置更新
    • 如果计算机已开机,并且
      • 您未重新启动计算机,则不应用配置更新
      • 您重新启动计算机,则应用配置更新

要取消配置更新:

您还可以取消单个 VM、多个 VM 或整个目录的配置更新。要取消配置更新:

  1. 运行 Clear-ProvVMUpdateTimeWindow。例如:

    • 要取消为单个 VM 安排的配置更新:

      
       Clear-ProvVMUpdateTimeWindow -ProvisioningSchemeName “ my-catalog “ -VMName “vm1”
      
       <!--NeedCopy-->
      
      • 要取消为多个 VM 安排的配置更新:
      
        Clear-ProvVMUpdateTimeWindow -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2"
      
       <!--NeedCopy-->
      

注意:

VM 必须来自同一目录。

更改磁盘加密

您可以在 Azure 虚拟化环境中更改磁盘加密并执行以下操作:

    -  使用 `New-ProvScheme` 命令创建具有磁盘加密集 (DES) 的 MCS 计算机目录,该 DES 与主映像 DES 不同。例如:

```

$customProperties = @"
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="DiskEncryptionSetId" Name="Zones" Value="/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/testrsg/providers/Microsoft.Compute/diskEncryptionSets/test-diskEncryptionSet"/>
</CustomProperties>
"@
New-ProvScheme -CleanOnBoot `
-ProvisioningSchemeName $provisioningSchemeName `
-HostingUnitName $hostingUnitName `
-IdentityPoolName $identityPoolName `
-InitialBatchSizeHint $numberOfVms `
-masterImagePath $masterImagePath `
-NetworkMapping $networkMapping `
-CustomProperties $customProperties

<!--NeedCopy--> ```
  • 使用 Set-ProvSchemeSet-ProvVMUpdateTimeWindow 命令将现有 MCS 计算机目录和现有 VM 的磁盘加密类型从一个 DES 密钥更改为另一个 DES 密钥。重新启动 VM 后,您可以看到更新的 DES 密钥。例如:

    
     $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/456c683e2ed7/resourceGroups/testrg/providers/Microsoft.Compute/diskEncryptionSets/diskEncryptionSet1" />
     </CustomProperties>'
     Set-ProvScheme -ProvisioningSchemeName azure-catalog -CustomProperties $customProperties
     Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01, azu02 -StartsNow -DurationInMinutes -1
    
     <!--NeedCopy-->
    
  • 使用 Set-ProvSchemeSet-ProvVMUpdateTimeWindow 命令更新以前未启用 CMEK 的 MCS 计算机目录和 VM,以使其具有客户管理的加密密钥 (CMEK) 加密 (DES)、主机上的磁盘加密或双重加密。有关不同加密类型的信息,请参阅 Azure 服务器端加密Azure 主机上的磁盘加密托管磁盘上的双重加密

  • 使用 Set-ProvSchemeSet-ProvVMUpdateTimeWindow 命令更新现有 MCS 计算机目录和 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="DiskEncryptionSetId" Value="" />
     </CustomProperties>'
     Set-ProvScheme -ProvisioningSchemeName azure-catalog -CustomProperties $customProperties
     Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01, azu02 -StartsNow -DurationInMinutes -1
    
     <!--NeedCopy-->
    
  • 通过专用终结点启用磁盘加密(使用启用了 ProxyHypervisorTrafficThroughConnector 的主机连接的 MCS 计算机目录)。有关 ProxyHypervisorTrafficThroughConnector 的更多信息,请参阅 为 Azure 托管流量创建安全环境。有关如何通过专用终结点启用磁盘加密的信息,请参阅 通过专用终结点启用磁盘加密

通过专用终结点启用磁盘加密

根据 Azure 限制,目前无法通过客户管理的密钥对专用终结点进行服务器端加密。但是,您可以更新具有专用终结点的现有 MCS 计算机目录和 VM,以使用 DES 密钥进行加密。

更新具有专用终结点的现有计算机目录

更新具有专用终结点的现有计算机目录的详细步骤如下:

  1. 通过 ProxyHypervisorTrafficThroughConnector 创建不带磁盘加密的目录。有关 ProxyHypervisorTrafficThroughConnector 的更多信息,请参阅 为 Azure 托管流量创建安全环境
  2. 运行 Set-ProvScheme 以使用 DiskEncryptionSetId 更新目录。

    注意:

    DiskEcryptionSetId 可以通过 CustomPropertiesMachineProfile 进行配置。当它在 CustomPropertiesMachineProfile 中都定义时,将应用在 CustomProperties 中定义的属性。

    使用 CustomProperties 的示例:

    
    $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/456c683e2ed7/resourceGroups/testrg/providers/Microsoft.Compute/diskEncryptionSets/diskEncryptionSet1"/>
    </CustomProperties>'
    Set-ProvScheme -ProvisioningSchemeName azure-catalog -CustomProperties $customProperties
    
    <!--NeedCopy-->
    
  • 使用 MachineProfile 的示例:使用已启用磁盘加密的 VM 或具有磁盘加密设置的模板规范:

    
     Set-ProvScheme -ProvisioningSchemeName azure-catalog -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\testrg.resourcegroup\new-template.vm"
    
     <!--NeedCopy-->
    
     -  或者,您可以使用 Studio 更新计算机配置文件。
    
      1. 运行 Set-ProvVMUpdateTimeWindow 以更新现有目录 VM。例如:

    ```

  • Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01, azu02 -StartsNow -DurationInMinutes -1

    ```

    1. 重新启动 VM 后,您可以在 Azure 门户中看到 VM 磁盘上更新的磁盘加密。
  1. 在添加新的目录 VM 之前,运行 Set-ProvScheme 以取消设置磁盘加密。

    注意:

    此步骤是必需的,因为您正在更新专用端点目录。如果不执行此步骤,则在尝试向目录添加新 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="DiskEncryptionSetId" Value="" />
</CustomProperties>'
Set-ProvScheme -ProvisioningSchemeName azure-catalog -CustomProperties $customProperties

<!--NeedCopy--> ```
  1. 向目录添加新 VM。

更新单个目录 VM

更新单个目录 VM 的详细步骤如下:

  1. 通过 ProxyHypervisorTrafficThroughConnector 创建一个不带磁盘加密的目录。有关 ProxyHypervisorTrafficThroughConnector 的详细信息,请参阅为 Azure 托管流量创建安全环境
  2. 运行 Set-ProvVM 以使用 DiskEncryptionSetId 更新目录 VM。

    注意:

    DiskEcryptionSetId 可以通过 CustomPropertiesMachineProfile 进行配置。

    使用 CustomProperties 时的示例:

    
    $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/456c683e2ed7/resourceGroups/testrg/providers/Microsoft.Compute/diskEncryptionSets/diskEncryptionSet1" />
    </CustomProperties>'
    Set-ProvVM -ProvisioningSchemeName azure-catalog  -VMName azu01 -CustomProperties $customProperties
    
    <!--NeedCopy-->
    

    使用 MachineProfile 时的示例:

    
    Set-ProvVM -ProvisioningSchemeName azure-catalog  -VMName azu01 -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\testrg.resourcegroup\new-template.vm"
    
    <!--NeedCopy-->
    
    1. 运行 Set-ProvVMUpdateTimeWindow 以更新现有目录 VM。例如:

    ```

  • Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01 -StartsNow -DurationInMinutes -1

    ```

  1. 重新启动 VM 后,您可以在 Azure 门户中看到 VM 磁盘上更新的磁盘加密。
    1. 向目录添加新 VM。

将临时磁盘用作现有目录的 WBC 磁盘

您可以将 Azure 临时磁盘用作现有 MCS 计算机目录的回写缓存 (WBC) 磁盘。使用 Set-ProvScheme PowerShell 命令更新现有目录和 VM。

先决条件

现有目录必须满足以下条件:

注意:

如果现有目录不满足以下要求,则 WBC 磁盘不会放置在临时磁盘内。

  • MCSIO 已启用:已启用自定义属性 WriteBackCacheMemorySizeWriteBackCacheDiskSizeUseWriteBackCache
  • 未启用临时 OS 磁盘。
  • WBC 是非持久性的:PersistWBCfalse
  • UseTempDiskForWBC 为 null 或 false。
  • 临时磁盘大小必须大于(回写缓存磁盘大小 + 分页文件保留空间 + 1 GB 缓冲区空间)的总大小。

重要:

不允许将服务产品从具有临时磁盘的服务产品更改为不具有临时磁盘的服务产品,反之亦然。

更新现有目录

要更新现有目录,请运行以下命令:

  1. 在现有目录上运行 Set-ProvScheme 以将 UseTempDiskForWBC 更新为 true。例如:

    
    Set-ProvScheme -ProvisioningSchemeName 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=`"StorageAccountType`" Value=`"Standard_LRS`"/><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"True`"/><Property xsi:type=`"StringProperty`" Name=`"ManagedDisksPreview`" Value=`"False`"/><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"False`"/><Property xsi:type=`"StringProperty`" Name=`"UseTempDiskForWBC`" Value=`"True`"/><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"False`"/></CustomProperties>"
    
    <!--NeedCopy-->
    
  2. 向目录添加新计算机并开机。新 VM 的 WBC 磁盘位于临时磁盘内。

检索 Azure VM、快照、OS 磁盘和库映像定义的信息

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

提示:

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

例如,使用 PowerShell 将 Azure VM AdditionData 参数设置为 True 以表示 Windows OS 类型:


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 命令时,名为 RegionName 的 PowerShell 属性会显示区域名称信息。

例如,使用以下 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 目录拆分为多个目录。通过克隆原始预配方案,您可以将不同的目录级别策略和配置应用于特定的 VM 子集。当组织内不同的职能角色(例如财务或高管)需要与标准用户不同的资源配置(例如备份限制)时,此功能特别有用。

用法示例

管理员管理着一个大型 VM 目录。高管团队需要比标准策略允许的更多备份。管理员使用 Copy-ProvScheme 命令将现有目录预配方案克隆到新目录中。这允许管理员将专用备份策略应用于新的高管目录,同时为组织的其他部分保留原始设置。

适用范围

  • Azure 环境
  • 持久和非持久 MCS 目录
  • MCS 预配的 Citrix Provisioning 目录

限制

  • 预配方案: 仅复制最新版本的预配方案。
  • 备份计划: 备份计划不会复制到新目录;新目录必须配置自己的备份计划。
  • 身份池: 身份相关对象不会被克隆,而是使用相同的 ADAccountIdentityPool 保持共享。
  • 交付组: 在克隆过程中,交付组操作和用户分配不会更改或关联。

重要注意事项

  • 资源组 (TargetLocation)

    • 如果您未提供 TargetLocation (Azure 资源组):
      • 对于 Citrix 托管资源组,将创建一个新的 Citrix 托管资源组。
      • 对于 BYO(自带)资源组,新的预配方案资源将在同一资源组中创建。
    • 如果您提供了 TargetLocation

      • 资源将在提供的资源组中创建。
      • 指定的资源组必须已在 Azure 中存在。
  • 基础磁盘快照:无论资源组配置如何,始终会创建基础磁盘快照的副本。

先决条件

  • 必须存在一个现有的预配方案(源目录)。
  • 如果指定了目标位置,则目标 Azure 资源组必须存在。

使用 PowerShell 进行配置

  1. 打开 PowerShell 窗口。
  2. 使用所需参数运行 Copy-ProvScheme 命令:SourceProvisioningSchemeName(或 SourceProvisioningSchemeUid)和 TargetProvisioningSchemeName

    示例 1:按名称复制预配方案。

    此示例将名为“Backup”的方案复制到名为“TestCopy”的新方案。

    
    Copy-ProvScheme -SourceProvisioningSchemeName Backup -TargetProvisioningSchemeName TestCopy
    
    <!--NeedCopy-->
    

    示例 2:按 Uid 将预配方案复制到特定资源组

    此示例使用其 Uid 复制方案,并指定名为“TestRg”的目标资源组。

    
    Copy-ProvScheme -SourceProvisioningSchemeUid 771e205d-1ee5-4ad2-b044-ecf3d7f24ec7 -TargetProvisioningSchemeName TestCopy -TargetLocation TestRg
    
    <!--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”
OS 磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
准备 VM “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 标签以将其标识为 MCS 创建的资源,则 VM 在 Citrix 清单中不可见。您可以删除或重命名该标签以使其可见。

删除标签

当您创建目录或 VM 时,会在以下资源上创建标签:

  • 资源组
  • 虚拟机
  • 操作系统磁盘
  • 身份磁盘
  • 网络接口
  • 存储帐户

您可以从 Citrix 数据库中删除 VM 和计算机目录,并删除标签。您可以使用:

  • 带有 ForgetVM 参数的 Remove-ProvVM,用于从单个 VM 或计算机目录中的 VM 列表中删除 VM 和标签。
  • 带有 ForgetVM 参数的 Remove-ProvScheme,用于从 Citrix 数据库中删除计算机目录以及从整个计算机目录中删除标签。

此功能仅适用于持久性 VM。

为此:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 运行 Remove-ProvVM 以从 Citrix 数据库中删除 VM 并从 VM 中删除标签。

例如:

```

Remove-ProvVM -ProvisioningSchemeName “ProvisioningSchemeName” -VMName “vmname” -ForgetVM

<!--NeedCopy--> ```
  1. 运行 Remove-ProvScheme 以从 Citrix 数据库中删除计算机目录并从计算机目录中删除标签。例如:

    
    Remove-ProvScheme -ProvisioningSchemeName “ProvisioningSchemeName” -ForgetVM
    
    <!--NeedCopy-->
    

    注意:

    Remove-ProvScheme 中使用 ForgetVM 参数后,如果预配方案存在于自带资源组 (BYORG) 或 Citrix 托管资源组中,MCS 将删除所有快照,包括基础磁盘快照。

更多信息