管理 微软 Azure 目录

注意:

Since July 2023, Microsoft has renamed Azure Active Directory (Azure AD) to Microsoft Entra ID. In this document, any reference to Azure Active Directory, Azure AD, or AAD now refers to Microsoft Entra ID.

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

注意:

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

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

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

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

重要:

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

必备条件

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

限制条件

  • 根据 Microsoft 的规定,您每天只能更改磁盘类型两次。请参阅 Microsoft 文档。根据 Citrix 的规定,只要对 VM 执行启动或解除分配操作,就会发生 StorageType 更新。因此,将每台 VM 的电源操作次数限制为每天两次。例如,早上执行一次电源操作以启动 VM,晚上执行一次以解除分配 VM。

将存储类型更改为较低层

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

  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 自定义属性
    • 用于 WBC 磁盘的 WBCDiskStorageType 自定义属性,仅当您在 CustomProperties 中指定它时。否则,它将切换回 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-->

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

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

当 VM 关机时,您可以通过将现有 VM 的存储类型更改为较低层来节省存储成本。为此,请使用 StorageTypeAtShutdown 自定义属性。

要在 VM 关机时将目录中现有计算机的存储类型更改为较低层:

  1. 打开 PowerShell 命令行窗口。
  2. 运行 asnp citrix* 以加载 思杰 特定的 PowerShell 模块。
  3. 运行 Get-Provscheme -ProvisioningSchemeName $CatalogName
  4. 更改自定义属性字符串。

    $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-->
    
  5. 更新现有目录的预配方案。此更新适用于运行 Set-ProvScheme 后添加的新 VM。

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

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName $CatalogName -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  7. 下次启动计算机时,计算机的 StorageTypeAtShutdown 属性将更新。存储类型将在下次关机时更改。
  8. 运行以下命令以查看目录中每个 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-->
    

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

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

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

注意:

  • 在 Azure 环境中,您只能更新使用托管磁盘的目录的 StorageTypeWBCDiskStorageTypeIdentityDiskStorageType 自定义属性。
  • 如果您运行 Set-ProvVMUpdateTimeWindow 两次,则最新命令将生效。

您可以更新:

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

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

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

注意:

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

更新现有虚拟机之前:

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

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

    • 将虚拟机作为计算机配置文件输入:

       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-->
      
  3. 检查 VM 的当前属性是否与当前预配方案匹配,以及 VM 上是否有任何待处理的更新操作。例如,

    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 表示计划的开始时间是当前时间。
    • 带有负数(例如,–1)的 DurationInMinutes 表示计划时间窗口没有上限。
  2. 查找已计划更新的计算机。例如,

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

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

要计划 VM 在下次在计划的时间窗口内启动时更新到最新的预配设置:

  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. 启动虚拟机。如果您在计划的时间段之后启动计算机,则不会应用配置更新。如果您在计划的时间段内启动计算机,

    • 如果计算机已关机,并且

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

      • 您未重新启动计算机,则不会应用配置更新
      • 您重新启动计算机,则会应用配置更新

如何取消配置更新:

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

  1. 运行 Clear-ProvVMUpdateTimeWindow。例如:

    • 要取消为单个 VM 计划的配置更新:

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

       Clear-ProvVMUpdateTimeWindow -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2"
       <!--NeedCopy-->
      

      注意:

      VM 必须来自同一目录。

更新单个 VM 的属性

您可以使用 PowerShell 命令 Set-ProvVM 更新持久 MCS 计算机目录中单个 VM 的属性。但是,更新不会立即应用。您必须使用 PowerShell 命令 Set-ProvVMUpdateTimeWindow 设置时间窗口才能应用更新。

此实现有助于您高效地管理单个 VM,而无需更新整个计算机目录。目前,此功能仅适用于 Azure 环境。

目前,您可以更新的属性包括:

  • CustomProperties
  • ServiceOffering
  • MachineProfile

使用此功能,您可以:

更新虚拟机属性之前:

  1. 打开 PowerShell 命令行窗口。
  2. 运行 asnp citrix* 命令,以便加载 Citrix 专用的 PowerShell 模块。
  3. 请检查现有计算机目录的配置信息。例如:

    Get-ProvScheme -ProvisioningSchemeName AzureCatalog
    <!--NeedCopy-->
    
  4. 请检查您希望应用更新的虚拟机的配置信息。例如:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

更新虚拟机的属性

执行以下操作以更新虚拟机的属性:

  1. 请关闭您希望应用更新的虚拟机。
  2. 更新虚拟机的属性。例如,如果要更新虚拟机的存储类型 (StorageType) 自定义属性,请运行以下命令:

    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -CustomProperties "...<Property Name='StorageType' Value='Premium_LRS' />..."
    <!--NeedCopy-->
    

    您可以同时更新计算机目录中两台虚拟机的属性。例如:

    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -CustomProperties "...<Property Name='StorageType' Value='Premium_LRS' />..."
    <!--NeedCopy-->
    
    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine2 -CustomProperties "...<Property Name='StorageType' Value='StandardSSD_LRS' />..."
    <!--NeedCopy-->
    

    注意:

    这些更新不会立即生效。

  3. 获取那些被指定为需要更新的属性列表,以及当前的配置版本信息。例如:

    Get-ProvVMConfiguration -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    检查 Version 的属性值以及要更新的属性(在本例中为 StorageType)。

  4. 请检查配置版本。示例如下:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    检查 ProvVMConfigurationVersion 的属性值。更新尚未应用。VM 仍处于旧配置中。

  5. 请求计划更新。例如:

     Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -StartsNow -DurationInMinutes -1
     <!--NeedCopy-->
    

    有关计划更新的更多信息,请参阅将预配的计算机更新到当前预配方案状态

    注意:

    任何待处理的预配方案更新也会应用。

  6. 重新启动 VM。例如:

    New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn
    <!--NeedCopy-->
    
  7. 请检查配置版本。示例如下:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    检查 ProvVMConfigurationVersion 的属性值。更新现已应用。VM 现在具有新配置。

  8. 要在 VM 上应用进一步的配置更新,请关闭 VM 并重复这些步骤。

在计算机目录更新后保留 VM 上更新的属性

执行以下操作以保留 VM 上更新的属性:

  1. 请关闭您希望应用更新的 VM。
  2. 更新计算机目录。例如,如果要更改 VM 大小 (ServiceOffering) 和存储类型 (StorageType),请运行以下命令:

    Set-ProvScheme -ProvisioningSchemeName AzureCatalog -ServiceOffering Standard_E4_v3 -CustomProperties "...<Property Name='StorageType' Value='StandardSSD_LRS' />..."
    <!--NeedCopy-->
    
  3. 获取计算机目录的配置详细信息。例如:

    Get-ProvScheme -ProvisioningSchemeName AzureCatalog
    <!--NeedCopy-->
    

    现在 ProvisioningSchemeVersion 增加了一。VM 大小和存储类型也已更新。

  4. 更新 VM 的属性。例如,为 VM 提供一个计算机配置文件。

    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -MachineProfile "XDHyp:\HostingUnits\<hosting-unit>\machineprofile.folder\<resource-group>.resourcegroup\<template-spec>.templatespec\<template-spec-version>.templatespecversion"
    <!--NeedCopy-->
    

    注意:

    计算机配置文件输入中指定了一个标签和不同的 VM 大小 (ServiceOffering)。

  5. 获取将 VM 上的配置更新与计算机目录更新合并后,VM 将具有的属性列表。例如:

    Get-ProvVMConfigurationResultantSet -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    注意:

    对 VM 的任何更新都将覆盖对计算机目录所做的更新。

  6. 请求对 VM 进行计划更新。例如:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -VMName machine1 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  7. 重新启动 VM。例如:

    New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn
    <!--NeedCopy-->
    

    VM 保留其从计算机配置文件派生的更新后的 VM 大小。计算机配置文件中指定的标签值也应用于 VM。但是,存储类型是从最新的预配方案派生的。

  8. 获取 VM 的配置版本。例如:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    现在 ProvisioningSchemeVersionProvVMConfigurationVersion 显示最新版本。

还原应用于 VM 的配置更新

  1. 将更新应用于 VM 后,关闭 VM。
  2. 运行以下命令以删除应用于 VM 的更新。例如:

    Set-ProvVM -RevertToProvSchemeConfiguration -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    
  3. 请求虚拟机的计划更新。例如:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -VMName machine1 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  4. 重启虚拟机。例如:

    New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn
    <!--NeedCopy-->
    
  5. 检查虚拟机的配置版本。例如:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    ProvVMConfigurationVersion 现在是计算机目录的配置版本。

更改磁盘加密

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

  • 使用 New-ProvScheme 命令创建具有磁盘加密集 (DES) 的 MCS 计算机目录,该目录与主映像 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 计算机目录和现有虚拟机的磁盘加密类型从一个 DES 密钥更改为另一个 DES 密钥。重启虚拟机后,您可以看到更新的 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 计算机目录和虚拟机,以使其具有客户管理的加密密钥 (CMEK) 加密 (DES)、主机磁盘加密或双重加密。有关不同加密类型的信息,请参阅 Azure 服务器端加密Azure 主机磁盘加密托管磁盘上的双重加密

  • 使用 Set-ProvSchemeSet-ProvVMUpdateTimeWindow 命令将以前已加密的现有 MCS 计算机目录和虚拟机更新为未加密。例如:

     $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 计算机目录)。有关如何启用带专用终结点的磁盘加密的信息,请参阅 启用带专用终结点的磁盘加密

启用带专用终结点的磁盘加密

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

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

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

  1. 通过 ProxyHypervisorTrafficThroughConnector 创建不带磁盘加密的目录。
  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-->
    

    或者,您可以使用 Web Studio 更新计算机配置文件。

  3. 运行 Set-ProvVMUpdateTimeWindow 以更新现有目录 VM。例如:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01, azu02 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  4. 重新启动 VM 后,您可以在 Azure 门户中 VM 的磁盘上看到更新的磁盘加密。
  5. 在添加新的目录 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-->
    
  6. 向目录添加新的 VM。

更新单个目录 VM

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

  1. 通过 ProxyHypervisorTrafficThroughConnector 创建不带磁盘加密的目录。
  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-->
    
  3. 运行 Set-ProvVMUpdateTimeWindow 以更新现有目录 VM。例如:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  4. 重新启动 VM 后,您可以在 Azure 门户中看到 VM 磁盘上更新的磁盘加密。
  5. 将新 VM 添加到目录。

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

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

先决条件

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

注意:

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

  • MCSIO 已启用:自定义属性 WriteBackCacheMemorySizeWriteBackCacheDiskSizeUseWriteBackCache 已启用。
  • 临时 OS 磁盘未启用。
  • WBC 是非持久性的:PersistWBCfalse
  • UseTempDiskForWBC 为空或假。
  • 临时磁盘大小必须大于(回写缓存磁盘大小 + 用于页面文件的保留空间 + 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 映像。PowerShell 属性 TemplateIsWindowsTemplate 已添加到 AdditionDatafield 参数中。此字段包含 Azure 特定信息:VM 类型、OS 磁盘、库映像信息和 OS 类型信息。将 TemplateIsWindowsTemplate 设置为 True 表示 OS 类型为 Windows;将 TemplateIsWindowsTemplate 设置为 False 表示 OS 类型为 Linux。

提示:

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

例如,使用 PowerShell 将 Azure 虚拟机 AdditionData 参数设置为 True,以用于 Windows 操作系统类型:

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

识别由 MCS 创建的资源

以下是 MCS 添加到资源的标签。表中的标签表示为“key”:“value”。

资源名称 标签
ID 磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “Citrix 资源” : “内部”
映像 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “Citrix 资源” : “内部”
NIC “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “Citrix 资源” : “内部”
操作系统磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
准备虚拟机 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “Citrix 资源” : “内部”
已发布的快照 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Resource group “CitrixResource” : “Internal”
  Citrix架构版本:2.0
  “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
存储帐户 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
目录中的 VM “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “思杰资源” : “内部”
WBC 磁盘 “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”

注意:

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

删除标记

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

  • Resource group
  • 虚拟计算机
  • 操作系统磁盘
  • 身份磁盘
  • 网络连接接口
  • 存储帐户

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

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

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

为此,请执行以下操作:

  1. Open a PowerShell window.
  2. 运行 asnp citrix* 以加载 思杰特有的 命令行管理程序 模块。
  3. 运行 Remove-ProvVM 以从 Citrix 数据库中删除 VM 并从 VM 中删除标签。 例如:

    Remove-ProvVM -ProvisioningSchemeName “ProvisioningSchemeName” -VMName “vmname” -ForgetVM
    <!--NeedCopy-->
    
  4. 运行 Remove-ProvScheme 以从 Citrix 数据库中删除计算机目录并从计算机目录中删除标签。例如:

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

    注意:

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

更多信息