管理微软 Azure 目录
(/zh-cn/citrix-virtual-apps-desktops/install-configure/machine-catalogs-manage.html) 介绍了管理计算机目录的向导。以下信息涵盖了 Microsoft Azure Resource Manager 云环境特有的详细信息。
注意:
在管理微软 Azure 目录之前,您需要完成创建微软 Azure 目录。请参阅 创建微软 Azure 目录。
虚拟机关闭时将存储类型更改为较低层
通过在关闭虚拟机时将托管磁盘的存储类型切换到较低层,可以节省存储成本。为此,请使用 StorageTypeAtShutdown 自定义属性。
关闭虚拟机时,磁盘的存储类型会更改为较低层(如 StorageTypeAtShutdown 自定义属性中指定)。启动虚拟机后,存储类型会恢复为原始类型(如 StorageType 自定义属性或 WBCDiskStorageType 自定义属性中指定)。
重要:
磁盘在虚拟机至少启动一次之前不存在。因此,首次启动虚拟机时无法更改存储类型。
先决条件
- 适用于托管磁盘。这意味着您将自定义属性
UseManagedDisks设置为 true。 - 适用于具有持久性操作系统磁盘的持久性和非持久性目录。这意味着您将自定义属性
persistOsDisk设置为 true。 - 适用于具有持久性 WBC 磁盘的非持久性目录。这意味着您将自定义属性
persistWBC设置为 true。
限制条件
- 根据 Microsoft 的规定,您每天只能更改磁盘类型两次。请参阅 Microsoft 文档。根据 Citrix 的规定,每当虚拟机执行启动或解除分配操作时,都会发生
StorageType更新。因此,将每台虚拟机的电源操作次数限制为每天两次。例如,早上执行一次电源操作以启动虚拟机,晚上执行一次以解除分配虚拟机。
将存储类型更改为较低层级
-
添加自定义属性
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中定义的属性。 - 关闭 VM 并在 Azure 门户中检查 VM 的存储类型。磁盘的存储类型将更改为较低层级,如
StorageTypeAtShutdown自定义属性中指定。 - 开启 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-->
在关机时将现有 VM 的存储类型更改为较低层
您可以通过在 VM 关闭时将现有 VM 的存储类型更改为较低层来节省存储成本。为此,请使用 StorageTypeAtShutdown 自定义属性。
要在 VM 关闭时将目录中现有计算机的存储类型更改为较低层,请执行以下操作:
- Open a PowerShell window.
- 运行
asnp citrix®*命令,以加载 Citrix 专用的 PowerShell 模块。 - 运行
Get-Provscheme -ProvisioningSchemeName $CatalogName。 -
更改自定义属性字符串。
$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--> -
更新现有目录的预配方案。此更新适用于运行
Set-ProvScheme后添加的新 VM。Set-ProvScheme -ProvisioningSchemeName $CatalogName -CustomProperties $customProperties <!--NeedCopy--> -
更新现有 VM 以启用
StorageTypeAtShutdown。Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName $CatalogName -StartsNow -DurationInMinutes -1 <!--NeedCopy--> - 下次启动计算机时,计算机的
StorageTypeAtShutdown属性将更新。存储类型将在下次关机时更改。 -
运行以下命令以查看目录中每个 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 中,您可以更新 ServiceOffering、MachineProfile 和以下自定义属性:
StorageTypeWBCDiskStorageTypeIdentityDiskStorageTypeLicenseTypeDedicatedHostGroupIdPersistWBCPersistOsDiskPersistVmZones
注意:
- 在 Azure 环境中,对于使用托管磁盘的目录,您只能更新
StorageType、WBCDiskStorageType和IdentityDiskStorageType自定义属性。- 如果您运行
Set-ProvVMUpdateTimeWindow两次,则最新命令将生效。- 如果使用
Set-ProvVMUpdateTimeWindow更新了 VM,并且 Zones 自定义属性提供的当前可用区列表已更改为不包含 VM 当前正在使用的区域,则 VM 的持久磁盘将复制到新区域并删除原始磁盘。例如,在区域 3 中预配的 VM,如果使用设置为“1,2”的 Zones 自定义属性进行更新,则会将 VM 及其磁盘移动到区域 1 或区域 2,具体取决于这两个区域中哪个区域的计算机较少,以便在区域 1 和区域 2 之间平衡计算机。- 如果 Zones 自定义属性被完全清除(设置为空值),则 VM 的区域亲和性将被移除,从而允许 Azure 根据容量将 VM 放置在任何可用区中。在这种情况下,VM 的持久磁盘将保留在其原始区域中,并且不会移动。
您可以更新:
- 单个 VM
- 与预配方案 ID 关联的特定 VM 列表或所有现有 VM
- 与预配方案名称(计算机目录名称)关联的特定 VM 列表或所有现有 VM
对预配方案进行以下更改后,Azure 中持久性目录的 VM 实例将重新创建:
- 更改
MachineProfile - 删除
LicenseType - 删除
DedicatedHostGroupId
注意:
现有计算机的操作系统磁盘及其所有数据保持不变,并且新的 VM 将附加到该磁盘。
更新现有 VM 之前:
-
检查现有计算机的配置情况。例如,
Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion <!--NeedCopy--> -
对预配方案进行更新。例如,
-
以 VM 作为计算机配置文件输入:
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-->
-
-
检查 VM 的当前属性是否与当前预配方案匹配,以及 VM 上是否有任何待处理的更新操作。例如,
Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion <!--NeedCopy-->您还可以查找具有特定版本的计算机。例如,
Get-ProvVM -Filter "ProvisioningSchemeVersion -eq 1" | select VMName, ProvisioningSchemeVersion <!--NeedCopy-->
要请求现有计算机的更新以便在下次重新启动时应用:
-
运行以下命令以更新现有计算机并在下次重新启动时应用更新。
-
更新所有现有计算机。例如,
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表示计划时间窗口没有上限。
-
-
查找已计划更新的计算机。例如,
Get-ProvVM -Filter "ProvisioningSchemeUpdateAfter" | select VMName, ProvisioningSchemeUpdateAfter <!--NeedCopy--> -
重新启动计算机。在下次开机时,属性更改将应用于现有计算机。您可以使用以下命令检查更新状态。例如,
Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion <!--NeedCopy-->
要安排 VM 在计划的时间窗口内下次启动时更新到最新的预配设置:
-
运行以下命令:
-
将开始时间设置为当前时间以安排更新
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是可选的。如果未指定,则更新将针对整个目录进行计划。 - 不使用
StartTimeInUTC,而是使用StartsNow来指示计划开始时间是当前时间。 -
DurationInMinutes是可选的。默认值为 120 分钟。负数(例如,–1)表示计划时间窗口没有上限。
-
-
检查更新状态。
Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeUpdateUntil, ProvisioningSchemeVersion <!--NeedCopy--> -
启动虚拟机。如果您在计划的时间段之后启动计算机,则不会应用配置更新。如果您在计划的时间段内启动计算机,
-
如果计算机已关机,并且
- 您未启动计算机,则不会应用配置更新
- 您启动计算机,则会应用配置更新
-
如果计算机已开机,并且
- 您未重新启动计算机,则不会应用配置更新
- 您重新启动计算机,则会应用配置更新
-
如何取消配置更新:
您还可以取消单个 VM、多个 VM 或整个目录的配置更新。要取消配置更新:
-
运行
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 环境。
目前,您可以更新的属性包括:
CustomPropertiesServiceOfferingMachineProfile
使用此功能,您可以:
- 更新 VM 的属性
- 在更新计算机目录后保留在 VM 上更新的属性(#retain-the-properties-updated-on-a-vm-after-the-machine-catalog-is-updated)
- 还原应用于 VM 的配置更新(#revert-the-configuration-updates-applied-to-a-vm)
更新 VM 属性之前:
- 打开一个 PowerShell 命令行 窗口。
- 运行
asnp citrix*命令以加载 Citrix 特定的 PowerShell 模块。 -
检查现有计算机目录的配置信息。例如:
Get-ProvScheme -ProvisioningSchemeName AzureCatalog <!--NeedCopy--> -
请检查您希望对其应用更新的虚拟机的配置。例如:
Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->
更新 VM 的属性
执行以下操作以更新 VM 上的属性:
- 请关闭您计划应用更新的虚拟机。
-
更新 VM 的属性。例如,如果要更新 VM 的存储类型 (
StorageType) 自定义属性,请运行以下命令:Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -CustomProperties "...<Property Name='StorageType' Value='Premium_LRS' />..." <!--NeedCopy-->您可以同时更新计算机目录中两个 VM 的属性。例如:
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-->注意:
这些更新不会立即应用。
-
获取那些被指定为需要更新的属性列表,以及配置版本。例如:
Get-ProvVMConfiguration -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->检查
Version的属性值以及要更新的属性(在本例中为StorageType)。 -
请检查配置版本信息。例如:
Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->检查
ProvVMConfigurationVersion的属性值。更新尚未应用。VM 仍处于旧配置中。 -
请求计划更新。例如:
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -StartsNow -DurationInMinutes -1 <!--NeedCopy-->有关计划更新的更多信息,请参阅将预配的计算机更新到当前预配方案状态。
注意:
任何待处理的预配方案更新也将应用。
-
重新启动 VM。例如:
New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn <!--NeedCopy--> -
请检查配置版本信息。例如:
Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->检查
ProvVMConfigurationVersion的属性值。更新现已应用。VM 现在具有新配置。 - 要在 VM 上应用进一步的配置更新,请关闭 VM,然后重复这些步骤。
在更新计算机目录后保留在 VM 上更新的属性
执行以下操作以保留在 VM 上更新的属性:
- 关闭您希望在其上应用更新的虚拟机。
-
更新计算机目录。例如,如果要更改 VM 大小 (
ServiceOffering) 和存储类型 (StorageType),请运行以下命令:Set-ProvScheme -ProvisioningSchemeName AzureCatalog -ServiceOffering Standard_E4_v3 -CustomProperties "...<Property Name='StorageType' Value='StandardSSD_LRS' />..." <!--NeedCopy--> -
获取计算机目录的配置详细信息。例如:
Get-ProvScheme -ProvisioningSchemeName AzureCatalog <!--NeedCopy-->ProvisioningSchemeVersion现在增加了一。VM 大小和存储类型也已更新。 -
更新 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)。 -
获取将 VM 上的配置更新与计算机目录更新合并后,VM 将具有的属性列表。例如:
Get-ProvVMConfigurationResultantSet -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->注意:
对 VM 的任何更新都将覆盖对计算机目录所做的更新。
-
请求 VM 的计划更新。例如:
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -VMName machine1 -StartsNow -DurationInMinutes -1 <!--NeedCopy--> -
重新启动 VM。例如:
New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn <!--NeedCopy-->VM 保留其从计算机配置文件派生的更新后的 VM 大小。计算机配置文件中指定的标签值也应用于 VM。但是,存储类型是从最新的预配方案派生的。
-
获取 VM 的配置版本。例如:
Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->ProvisioningSchemeVersion和ProvVMConfigurationVersion现在显示最新版本。
还原应用于 VM 的配置更新
- 将更新应用于 VM 后,关闭 VM。
-
运行以下命令以删除应用于 VM 的更新。例如:
Set-ProvVM -RevertToProvSchemeConfiguration -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy--> -
请求 VM 的计划更新。例如:
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -VMName machine1 -StartsNow -DurationInMinutes -1 <!--NeedCopy--> -
重新启动 VM。例如:
New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn <!--NeedCopy--> -
检查 VM 的配置版本。例如:
Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 <!--NeedCopy-->ProvVMConfigurationVersion值现在是计算机目录的配置版本。
更改磁盘加密
您可以在 Azure 虚拟化环境中更改磁盘加密并执行以下操作:
-
使用
New-ProvScheme命令创建具有与主映像 DES 不同的磁盘加密集 (DES) 的 MCS 计算机目录。例如:$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-ProvScheme和Set-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-ProvScheme和Set-ProvVMUpdateTimeWindow命令更新以前未启用 CMEK 的 MCS 计算机目录和 VM,以使其具有客户管理的加密密钥 (CMEK) 加密 (DES)、主机上的磁盘加密或双重加密。有关不同加密类型的信息,请参阅 Azure 服务器端加密、Azure 主机上的磁盘加密 和 托管磁盘上的双重加密。 -
使用
Set-ProvScheme和Set-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 计算机目录)。有关如何启用带专用终结点的磁盘加密的信息,请参阅 启用带专用终结点的磁盘加密。
启用带专用终结点的磁盘加密
根据 Azure 的限制,目前,您无法为专用终结点使用客户管理的密钥进行服务器端加密。但是,您可以更新具有专用终结点的现有 MCS 计算机目录和 VM,以使用 DES 密钥进行加密。
更新具有专用终结点的现有计算机目录
更新现有具有私有端点的计算机目录的详细步骤如下:
- 通过
ProxyHypervisorTrafficThroughConnector创建一个不带磁盘加密的目录。 -
运行
Set-ProvScheme以使用DiskEncryptionSetId更新目录。注意:
DiskEcryptionSetId可以通过CustomProperties或MachineProfile进行配置。当它在CustomProperties和MachineProfile中都定义时,将应用在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 更新计算机配置文件。
-
运行
Set-ProvVMUpdateTimeWindow以更新现有目录 VM。例如:Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01, azu02 -StartsNow -DurationInMinutes -1 <!--NeedCopy--> - 重启 VM 后,您可以在 Azure 门户中看到 VM 磁盘上已更新的磁盘加密。
-
在添加新的目录 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--> - 向目录添加新的 VM。
更新单个目录虚拟机
更新单个目录虚拟机的详细步骤如下:
- 通过
ProxyHypervisorTrafficThroughConnector创建不带磁盘加密的目录。 -
运行
Set-ProvVM以使用DiskEncryptionSetId更新目录虚拟机。注意:
DiskEcryptionSetId可以通过CustomProperties或MachineProfile进行配置。使用
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-->Example when using MachineProfile:
Set-ProvVM -ProvisioningSchemeName azure-catalog -VMName azu01 -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\testrg.resourcegroup\new-template.vm" <!--NeedCopy--> -
运行
Set-ProvVMUpdateTimeWindow以更新现有目录虚拟机。例如:Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -VMName azu01 -StartsNow -DurationInMinutes -1 <!--NeedCopy--> - 重启虚拟机后,您可以在 Azure 门户中看到虚拟机磁盘上更新的磁盘加密。
- 将新虚拟机添加到目录。
将临时磁盘用作现有目录的 WBC 磁盘
您可以使用 Azure 临时磁盘作为现有 MCS 计算机目录的回写缓存磁盘 (WBC)。使用 Set-ProvScheme PowerShell 命令更新现有目录和虚拟机。
先决条件
现有目录必须满足以下各项条件:
注意:
如果现有目录不满足以下要求,WBC 磁盘将不会放置在临时磁盘内。
- MCSIO 已启用:自定义属性
WriteBackCacheMemorySize、WriteBackCacheDiskSize和UseWriteBackCache已启用。 - 未启用临时操作系统磁盘。
- WBC 是非持久性的:
PersistWBC为false。 -
UseTempDiskForWBC为空或为假。 - 临时磁盘大小必须大于(回写缓存磁盘大小 + 分页文件保留空间 + 1 GB 缓冲区空间)的总和。
重要:
不允许将服务产品从包含临时磁盘的更改为不包含临时磁盘的,反之亦然。
更新现有目录
要更新现有目录,请运行以下命令:
-
在现有目录上运行
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--> -
将新计算机添加到目录并开机。新 VM 的临时磁盘内包含 WBC 磁盘。
检索 Azure VM、快照、操作系统磁盘和库映像定义的信息
您可以显示 Azure VM 的信息,包括操作系统磁盘和类型、快照和库映像定义。当分配计算机目录时,此信息将显示在主映像上的资源中。使用此功能可以查看和选择 Linux 或 Windows 映像。PowerShell 属性 TemplateIsWindowsTemplate 已添加到 AdditionDatafield 参数。此字段包含 Azure 特定的信息:VM 类型、操作系统磁盘、库映像信息和操作系统类型信息。将 TemplateIsWindowsTemplate 设置为 True 表示操作系统类型为 Windows;将 TemplateIsWindowsTemplate 设置为 False 表示操作系统类型为 Linux。
提示:
由
TemplateIsWindowsTemplatePowerShell 属性显示的信息来源于 Azure API。有时,此字段可能为空。例如,数据磁盘的快照不包含TemplateIsWindowsTemplate字段,因为无法从快照中检索操作系统类型。
例如,使用 PowerShell 将 Windows 操作系统类型的 Azure 虚拟机 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-->
克隆 MCS 目录
将现有的持久性和非持久性 MCS 目录拆分为多个目录。通过克隆原始预配方案,您可以将不同的目录级策略和配置应用于特定的 VM 子集。当组织内不同的职能角色(例如财务或高管)与标准用户相比需要不同的资源配置(例如备份限制)时,此功能特别有用。
用法示例
管理员管理着一个大型 VM 目录。高管团队需要的备份数量高于标准策略允许的数量。管理员使用 Copy-ProvScheme 命令将现有目录预配方案克隆到新目录中。这使得管理员能够将专用备份策略应用于新的高管目录,同时为组织的其他部分保留原始设置。
适用范围
- 微软 Azure 环境
- 持久性和非持久性 MCS 目录
- MCS 预配的 思杰预配目录
局限性
- 预配方案:仅复制预配方案的最新版本。
- 备份计划:备份计划不会复制到新目录;新目录必须配置自己的备份计划。
-
身份池:身份相关对象不会被克隆,而是使用相同的
ADAccountIdentityPool保持共享。 - 交付组:在克隆过程中,交付组操作和用户分配不会更改或关联。
重要注意事项
-
资源组 (目标位置):
- 如果您未提供
TargetLocation(Azure 资源组):- 对于 Citrix 管理的资源组,将创建一个新的 Citrix 管理的资源组。
- 对于 BYO(自带)资源组,新的预配方案资源将在同一资源组中创建。
-
如果您提供
TargetLocation:- 资源将在所提供的资源组中创建。
- 指定的资源组必须已存在于 Azure 中。
- 如果您未提供
-
基础磁盘快照:无论资源组配置如何,始终会创建基础磁盘快照的副本。
先决条件
- 必须有一个现有的预配方案(源目录)可用。
- 如果指定了目标位置,目标 Azure 资源组必须存在。
Configure using PowerShell
- 请打开一个 PowerShell 窗口。
-
运行
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 添加到资源的标签。表中的标签表示为“key”:“value”。
| 资源名称 | 标签 |
|---|---|
| ID 磁盘 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “Citrix 资源” : “内部” | |
| 映像 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “CitrixResource” : “Internal” | |
| 网卡 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “思杰资源” : “内部” | |
| OS 磁盘 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “Citrix 资源” : “内部” | |
| 预备虚拟机 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “Citrix资源” : “内部” | |
| 已发布的快照 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “思杰资源” : “内部” | |
| 资源集合 | “CitrixResource” : “Internal” |
| Citrix架构版本: 2.0 | |
| “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” | |
| 存储帐户 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “Citrix资源” : “内部” | |
| 目录中的 VM | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “Citrix 资源” : “内部” | |
| WBC 磁盘 | “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” |
| “Citrix 资源” : “内部” |
注意:
如果添加了 CitrixResource 标记以将其标识为 MCS 创建的资源,则 VM 在 Citrix 清单中不可见。您可以删除或重命名该标记以使其可见。
删除标记
创建目录或 VM 时,会在以下资源上创建标记:
- 资源群组
- 虚拟机器
- 操作系统磁盘
- 身份磁盘
- Network interface
- 存储帐户
您可以从 Citrix 数据库中删除 VM 和计算机目录,并删除标记。您可以使用:
- 使用
ForgetVM参数的Remove-ProvVM从单个 VM 或计算机目录中的 VM 列表中删除 VM 和标记。 - 使用
ForgetVM参数的Remove-ProvScheme从 Citrix 数据库中删除计算机目录,并从整个计算机目录中删除标记。
此功能仅适用于持久性 VM。
为此,请执行以下操作:
- 打开一个 PowerShell 命令行界面窗口。
- 请运行 asnp citrix* 这条命令,以便加载所有与 Citrix 相关的 PowerShell 模块。
-
运行
Remove-ProvVM以从 Citrix 数据库中删除 VM 并从 VM 中删除标记。 例如:Remove-ProvVM -ProvisioningSchemeName “ProvisioningSchemeName” -VMName “vmname” -ForgetVM <!--NeedCopy--> -
运行
Remove-ProvScheme以从 Citrix 数据库中删除计算机目录并从计算机目录中删除标记。例如:Remove-ProvScheme -ProvisioningSchemeName “ProvisioningSchemeName” -ForgetVM <!--NeedCopy-->注意:
在
Remove-ProvScheme中使用ForgetVM参数后,如果预配方案存在于自带资源组 (BYORG) 或 Citrix 管理的资源组中,MCS 将删除所有快照,包括基础磁盘快照。