Citrix Virtual Apps and Desktops 7 2402 LTSR

映像管理

本节引言

MCS 目录创建或更新过程分为两个阶段:

  • 制作主映像:将源映像转换为已发布的映像
  • 克隆:从已发布的映像创建新的 VM

借助映像管理功能,MCS 将制作主映像阶段与整个预配工作流程分开。

您可以从单个源映像准备各种 MCS 映像版本(准备好的映像),并在多个不同的 MCS 计算机目录中使用它们。此实现显著降低了存储和时间成本,并简化了 VM 部署和映像更新过程。

使用此映像管理功能具有以下优势:

  • 无需创建目录即可提前生成准备好的映像。
  • 在多种场景中重复使用准备好的映像,例如创建和更新目录。
  • 显著缩短目录创建或更新时间。

注意:

  • 此功能目前适用于 Azure 和 VMware 虚拟化环境。
  • 您可以在不使用准备好的映像的情况下创建 MCS 计算机目录。在这种情况下,您无法获得此功能的好处。
  • The feature is generally available from Citrix Virtual Apps and Desktops™ 2402 LTSR CU2.

使用场景

映像管理功能的一些主要使用场景包括:

  • 版本管理:映像版本允许您:

    • 对特定映像的不同迭代版本或更新进行管理。
    • 针对不同的应用目的,维护映像的多个版本。
  • 逻辑分组:您可以创建多个映像定义以实现以下目的:

    • 根据项目、部门或应用程序和桌面类型等各种条件对映像版本进行逻辑分组。
    • 在组织内部,实现更高效的映像管理。

什么是准备好的映像

借助映像管理功能,MCS 将主映像阶段从整体目录创建或更新工作流中分离出来,并将该过程分解为两个阶段:

  1. 从单个源映像创建准备好的映像。
  2. 使用准备好的映像创建或更新 MCS 计算机目录。

您可以提前创建准备好的映像。您可以使用单个准备好的映像来创建或更新多个 MCS 预配的计算机目录。

了解当您从映像使用 Web Studio 时,准备好的映像如何在多个 MCS 计算机目录中被使用:

准备好的映像概述

图像定义:图像定义是图像版本的逻辑分组。图像定义包含以下信息:

  • 图像创建的原因
  • 适用的操作系统
  • 有关使用图像的其他信息。

目录不是从图像定义创建的,而是从基于图像定义创建的图像版本创建的。

图像版本:图像版本管理图像定义的版本控制。一个图像定义可以有多个图像版本。使用图像版本作为准备好的图像来创建或更新目录。

另外,如果您想使用 PowerShell 命令创建预配方案来创建或更新目录,则必须根据主图像版本规范创建准备好的图像版本规范,以满足您的环境需求。

要求事项

  • 对于 Windows 主映像,仅支持 VDA 映像版本 2311 或更高版本。必须明确选择并安装 MCS/IO 组件。启用或禁用 MCS I/O 配置必须在计算机目录创建或更新期间确定,因为它默认未启用。

局限性

目前,此功能不支持以下内容:

  • Azure 中的多网卡
  • 持久数据磁盘功能
  • 多会话的休眠功能
  • 图像类型更改

使用 Web Studio 进行映像生命周期管理

使用 Web Studio 时映像的生命周期为:

  1. 创建准备好的映像:创建映像定义及其初始映像版本。
  2. 从初始映像版本创建映像版本。
  3. 使用映像版本作为准备好的映像来创建目录。
  4. 使用不同的准备好的映像更新计算机目录。
  5. 管理映像定义和版本:编辑映像版本的名称和描述,以及映像定义的描述。
  6. 删除映像版本。
  7. 删除映像定义。

此外,您还可以使用 PowerShell 管理映像。请参阅使用 PowerShell 进行映像生命周期管理

使用准备好的映像创建或更新目录

创建准备好的映像并使用这些准备好的映像通过以下方式创建或更新 MCS 计算机目录:

使用 Web Studio 界面进行管理

请参阅以下主题:

了解映像节点

使用 映像 节点创建和管理 MCS 准备的映像。其主视图分为四个部分:

图像节点主视图

标签 部分 详细说明
A 映像的定义 列出以前创建的映像定义。
B 映像版本 显示所选映像定义的映像版本信息。
C


详细信息


  • 详细信息选项卡显示有关所选映像定义或版本的详细信息,例如主映像、资源、虚拟机管理程序、映像定义名称、操作系统类型和会话类型。
  • 映像方案选项卡显示用于准备映像的模板信息,例如硬盘、计算机大小、许可证类型、磁盘加密集、计算机配置文件等。
  • 预配方案选项卡显示用于创建目录的预配方案名称。
  • 故障排除选项卡提供所选映像版本的错误状态。
D 操作栏 列出您可以对映像定义和版本执行的操作,例如创建映像版本编辑描述删除映像版本创建目录

使用准备好的映像创建计算机目录

使用准备好的映像创建 MCS 计算机目录的关键步骤如下:

  1. 创建映像定义及其初始映像版本。
  2. 使用映像版本作为准备好的映像来创建目录。

创建映像定义和初始映像版本

要创建映像定义和初始映像版本,请执行以下操作:

  1. 登录 Web Studio 并选择映像节点。在简介页面上单击下一步
  2. 映像定义页面上,为映像定义指定操作系统类型会话类型
  3. 映像页面上,选择资源和要用作创建映像版本模板的主映像。您可以选中使用计算机配置文件复选框并选择一个计算机配置文件。

    注意:

    在选择映像之前,请验证主映像是否已安装 VDA 2311 或更高版本,并且 VDA 上已安装 MCSIO 驱动程序。

  4. (仅适用于 Azure) 在存储和许可证类型页面上,选择将用作映像准备过程一部分的存储和许可证类型。

    注意:

    如果您在映像页面上选择计算机配置文件,则计算机配置文件的许可证类型将根据配置文件设置预先选择。

  5. 计算机规范页面上:

    • 对于 Azure,选择一个计算机大小。如果您在映像页面上选择计算机配置文件,则默认选择计算机配置文件的计算机大小。
    • 对于 VMware,如果您选择计算机配置文件,则可以看到从计算机配置文件派生的虚拟 CPU 计数,并且它是不可更改的。如果您不选择计算机配置文件,则只能看到从主映像派生的内存大小。
  6. 网卡页面上,为准备映像选择或添加网卡。对于每个网卡,选择一个关联的虚拟网络。

    对于 VMware,如果您不选择计算机配置文件,则默认选择与主映像关联的网卡。如果您选择计算机配置文件,则网卡将从计算机配置文件派生,并且数量不可更改。

    注意:

    Azure 不支持多网卡。

  7. (仅适用于 Azure) 在磁盘设置页面上,选择客户管理的加密密钥 (CMEK)。如果计算机配置文件没有 CMEK 但主映像有,则它会预先选择主映像中的 CMEK。
  8. 版本描述页面上,输入所创建的初始映像版本的描述。
  9. 摘要页面上,检查映像定义和所创建的初始映像版本的详细信息。输入映像定义的名称和描述。单击完成

创建映像版本

镜像版本使得对特定镜像的不同迭代或更新进行管理成为可能。这项功能让您能够针对不同的用途,维护一个镜像的多个版本。

要从初始映像版本创建映像版本,请执行以下操作:

注意:

所有映像版本的托管单元必须相同。

  1. 转到映像节点,选择一个映像版本,然后选择创建映像版本
  2. 如果您希望映像版本的配置与初始配置的映像版本不同,请在创建映像版本对话框的映像存储和许可证类型计算机规范网卡磁盘设置页面上配置设置。
  3. 添加映像版本的描述。单击完成

创建镜像版本

从映像节点创建计算机目录

使用映像节点中的创建目录选项,使用映像版本创建目录。

另外,您可以在计算机目录节点中创建目录时选择版本,链接到目录创建工作流中的准备好的映像选项。请参阅从计算机目录节点创建计算机目录

要从映像节点创建 MCS 计算机目录,请执行以下操作:

  1. 选择一个映像版本,然后单击创建目录。在简介页面上单击下一步
  2. 桌面体验页面上,选择所需的桌面体验。
  3. 映像页面到磁盘设置页面,设置会根据所选映像版本预先选择。
  4. (对于 Azure) 在“资源组”页面上,您可以选择创建新的资源组或使用现有资源组来放置此目录的资源。
  5. 请在以下页面中完成各项设置。
  6. 在“摘要”页面上,检查计算机目录的详细信息。输入计算机目录的名称和描述。单击“完成”。
  7. 转到“计算机目录”节点以查看已创建的计算机目录。

从“计算机目录”节点创建计算机目录

要从“计算机目录”节点创建 MCS 计算机目录,请执行以下操作:

  1. 在左侧导航窗格中单击“计算机目录”。
  2. 单击“创建计算机目录”。此时将显示“计算机目录设置”页面。依次单击“下一步”通过“简介”、“计算机类型”和“计算机管理”页面。
  3. 在“映像”页面上:
    1. 选择“准备好的映像”。
    2. 在“准备好的映像”下,选择映像定义的映像版本。
    3. 单击映像版本名称。要查看有关所选映像版本的更多详细信息,请单击带下划线的版本号。
    4. 如果所选映像版本配置了计算机配置文件,请选择一个计算机配置文件。如果所选映像版本未配置计算机配置文件,则无法选择使用计算机配置文件。
  4. 请在以下页面中配置各项设置。
  5. 在“磁盘设置”页面上,如果所选的准备好的映像使用磁盘加密集,则无法删除该加密集,但可以将密钥更改为另一个加密密钥。
  6. (对于 Azure) 在“资源组”页面上,您可以选择创建新的资源组或使用现有资源组来放置此目录的资源。
  7. 请完成以下页面中的各项设置。
  8. 在“摘要”页面上,检查计算机目录的详细信息。输入计算机目录的名称和描述。单击“完成”。

使用不同的准备好的映像更新计算机目录

要使用不同的准备好的映像更新现有 MCS 计算机目录,请执行以下操作:

  1. 单击左侧导航窗格中的“计算机目录”,然后选择要更新的计算机目录。右键单击并选择“更改准备好的映像”。
  2. 在“映像”页面上,选择一个准备好的映像。
  3. 在“推出策略”页面上,选择何时要使用选定的准备好的映像更新此目录。
  4. 在“摘要”页面上,检查详细信息。单击“完成”。

您可以查看对目录所做的映像更改历史记录。要查看历史记录,请执行以下操作:

  1. 选择一个计算机目录。
  2. 在“模板属性”选项卡下的“准备好的映像”字段中,单击“查看映像历史记录”。

管理映像定义和映像版本

您可以编辑和删除映像定义和版本,以管理各种已创建映像版本和定义的使用。

编辑映像定义

您可以编辑映像定义的名称和描述。

要编辑映像定义,请执行以下操作:

  1. 转到“映像”节点,选择一个映像定义,然后选择“编辑映像定义”。

编辑映像版本

您可以编辑映像版本的描述,以指定该映像版本的用途。

要编辑映像版本,请执行以下操作:

  1. 转到“映像”节点,选择一个映像版本,然后选择“编辑描述”。

删除映像版本

要删除映像版本,请执行以下操作:

  1. 转到“映像”节点,选择一个映像版本,然后选择“删除映像版本”。

注意:

如果映像版本正在被计算机目录使用,则无法删除它。

删除一个映像定义

要删除映像定义,请执行以下操作:

  1. 转到“映像”节点,选择一个映像定义,然后选择“删除映像定义”。

注意:

如果映像定义包含映像版本,则无法删除该映像定义。

使用 PowerShell 进行映像生命周期管理

如果要使用 PowerShell 命令创建预配方案,则必须根据您的环境需要,基于主映像版本规范创建准备好的映像版本规范。

主映像版本规范:主映像版本规范是在映像版本下添加或创建的特定映像。您可以将管理程序中的现有映像添加为主映像版本规范,或者根据您的环境需要,基于主映像版本规范创建准备好的映像版本规范。准备好的映像版本规范可用于多个预配方案。

在使用 PowerShell 命令时,映像的生命周期为:

  1. 创建映像:

    1. 创建映像定义。
    2. 创建映像版本。
    3. 添加主映像版本规范。
    4. 创建准备好的映像版本规范。
  2. 使用准备好的映像版本规范创建 MCS 计算机目录:

    1. 创建代理目录。
    2. 创建身份池。
    3. 使用 New-ProvScheme 命令,创建具有准备好的映像版本规范 Uid 参数的预配方案。
    4. 将代理目录与预配方案进行关联。
  3. 在 MCS 计算机目录中创建 VM。
  4. 使用 Set-ProvScheme 命令更改预配方案的准备好的映像版本规范。
  5. 管理映像的定义和版本:编辑映像的各个版本和定义。
  6. 删除 MCS 计算机目录:删除顺序为:准备好的映像版本规范 > 主映像版本规范 > 映像版本 > 映像定义。在删除映像版本规范之前,请确保准备好的映像版本规范未与任何 MCS 计算机目录关联。

使用 PowerShell 命令行工具

您可以使用 PowerShell 命令执行以下操作:

创建准备好的映像

创建准备好的映像版本规范的详细 PowerShell 命令如下:

  1. 使用 Test-ProvImageDefinitionNameAvailable command 检查可用的映像定义名称。例如,

    Test-ProvImageDefinitionNameAvailable -ImageDefinitionName <string[]>
    <!--NeedCopy-->
    
  2. 使用 New-ProvImageDefinition 命令创建映像定义。例如,

    New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession
    <!--NeedCopy-->
    
  3. 使用 New-ProvImageVersion 命令创建映像版本。例如,

    New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1"
    <!--NeedCopy-->
    
  4. 使用 Add-ProvImageVersionSpec 命令将主映像版本规范添加到映像版本。例如,

    Add-ProvImageVersionSpec -ImageDefinitionName  image1  -ImageVersionNumber  1 -HostingUnitName azure -MasterImagePath "XDHyp:\HostingUnits\azure\image.folder\azureresourcegroup.resourcegroup\win2022-snapshot.snapshot"
    <!--NeedCopy-->
    

    注意:

    对于一个托管单元,您只能向一个映像版本添加一个主映像版本规范。

  5. 使用 New-ProvImageVersionSpec 命令从主映像版本规范创建准备好的映像版本规范。例如,

    New-ProvImageVersionSpec
    -SourceImageVersionSpecUid  c6e7384c-b2f8-46d6-9519-29a2c57ed3cb
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure\virtualprivatecloud.folder\azureresourcegroup.resourcegroup\azure-vnet-eastus.virtualprivatecloud\dev.network"
    -ServiceOffering "XDHyp:\HostingUnits\azure\serviceoffering.folder\Standard_B2ms.serviceoffering" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"></CustomProperties>" -RunAsynchronously
    <!--NeedCopy-->
    

    注意:

    一个托管单元和准备类型只能有一个准备好的实例。

在 Azure 中创建映像定义、映像版本和准备好的映像版本规范的完整 Powershell 命令集示例

$ImageDefintion = New-ProvImageDefinition
-ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession
 $ImageVersion = New-ProvImageVersion -ImageDefinitionName $ImageDefintion.ImageDefinitionName -Description "version 1"
$MasterImagePath = "XDHyp:\HostingUnits\azure\image.folder\azureresourcegroup.resourcegroup\win2022-snapshot.snapshot"
$SourceImageVersionSpec = Add-ProvImageVersionSpec -ImageDefinitionName $ImageVersion.ImageDefinitionName -ImageVersionNumber $ImageVersion.ImageVersionNumber -HostingUnitName azure -MasterImagePath $MasterImagePath
$Task = New-ProvImageVersionSpec -SourceImageVersionSpecUid  $SourceImageVersionSpec.ImageVersionSpecUid -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure\virtualprivatecloud.folder\azureresourcegroup.resourcegroup\azure-vnet-eastus.virtualprivatecloud\dev.network"} -ServiceOffering "XDHyp:\HostingUnits\azure\serviceoffering.folder\Standard_B2ms.serviceoffering" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"></CustomProperties>" -RunAsynchronously
Get-ProvTask -TaskId $Task.TaskId
<!--NeedCopy-->

在 VMware 中创建映像定义、映像版本和准备好的映像版本规范的完整 Powershell 命令集示例:

$ImageDefintion = New-ProvImageDefinition -ImageDefinitionName image2 -OsType Windows -VdaSessionSupport SingleSession
$ImageVersion = New-ProvImageVersion -ImageDefinitionName $ImageDefintion.ImageDefinitionName -Description "version 1"
$MasterImagePath = "XDHyp:\HostingUnits\vmware\win10-master.vm\win10-master-snap.snapshot"
$SourceImageVersionSpec = Add-ProvImageVersionSpec -ImageDefinitionName $ImageVersion.ImageDefinitionName -ImageVersionNumber $ImageVersion.ImageVersionNumber -HostingUnitName vmware -MasterImagePath $MasterImagePath
$Task = New-ProvImageVersionSpec -SourceImageVersionSpecUid  $SourceImageVersionSpec.ImageVersionSpecUid -NetworkMapping @{"0"="XDHyp:\HostingUnits\vmware\\DSwitch-VM Network.network"} -VMCpuCount 2 -VMMemoryMB 4096 -RunAsynchronously
Get-ProvTask -TaskId $Task.TaskId
<!--NeedCopy-->

注意:

  • 映像定义中的所有映像版本规范必须属于同一个托管单元。
  • 一个映像版本只能有一个主映像版本规范和一个准备好的映像版本规范。
  • 所有映像版本规范必须要么具有计算机配置文件,要么所有映像版本规范都不具有计算机配置文件。
  • 在创建映像版本规范时,您无法指定资源组。

使用准备好的映像版本规范创建目录

使用 New-ProvScheme 命令从准备好的映像版本规范创建 MCS 计算机目录。例如,

New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-VMCpuCount <int>] [-VMMemoryMB <int>] [-UseWriteBackCache] [-NetworkMapping <Hashtable>] [-CleanOnBoot] [-Scope <string[]>] [-Metadata <Hashtable>] [-ServiceOffering <string>] [-SecurityGroup <string[]>] [-TenancyType <string>] [-MachineProfile <string>] [-CustomProperties <string>] [-ResetAdministratorPasswords] [-UseFullDiskCloneProvisioning] [-RunAsynchronously] [-PurgeJobOnSuccess] [-ProvisioningSchemeType <ProvisioningSchemeType>]
<!--NeedCopy-->

或者,

New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitName <string> -IdentityPoolName <string> [-VMCpuCount <int>] [-VMMemoryMB <int>] [-UseWriteBackCache] [-NetworkMapping <Hashtable>] [-CleanOnBoot] [-Scope <string[]>] [-Metadata <Hashtable>] [-ServiceOffering <string>] [-SecurityGroup <string[]>] [-TenancyType <string>] [-MachineProfile <string>] [-CustomProperties <string>] [-ResetAdministratorPasswords] [-UseFullDiskCloneProvisioning] [-RunAsynchronously] [-PurgeJobOnSuccess] [-ProvisioningSchemeType <ProvisioningSchemeType>]
<!--NeedCopy-->

在 Azure 中创建目录的完整 Powershell 命令集示例:

$Catalog = New-BrokerCatalog  -AllocationType "Random"  -IsRemotePC $False  -MinimumFunctionalLevel "L7_20" -Name "azurecatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"
$IdentityPool = New-AcctIdentityPool  -AllowUnicode  -Domain "azure.local" -IdentityPoolName "azurecatalog" -IdentityType "ActiveDirectory"  -NamingScheme "azure##" -NamingSchemeType "Numeric" -Scope @()
$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"
$Task = New-ProvScheme -ProvisioningSchemeName azurecatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName azure -IdentityPoolName azurecatalog -CleanOnBoot -Scope @() -SecurityGroup @() -ServiceOffering "XDHyp:\HostingUnits\azure\serviceoffering.folder\Standard_B2s.serviceoffering" -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure\virtualprivatecloud.folder\azureresourcegroup.resourcegroup\azure-vnet-eastus.virtualprivatecloud\dev.network"} -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=`"StandardSSD_LRS`" /></CustomProperties>" -RunAsynchronously
Get-ProvTask -TaskId $Task.TaskId
$ProvScheme = Get-ProvScheme -ProvisioningSchemeName azurecatalog
Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid
<!--NeedCopy-->

在 VMware 中创建目录的完整 Powershell 命令集示例:

$Catalog = New-BrokerCatalog  -AllocationType "Random"  -IsRemotePC $False  -MinimumFunctionalLevel "L7_20" -Name "vmwarecatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"
$IdentityPool = New-AcctIdentityPool  -AllowUnicode  -Domain "vmware.local" -IdentityPoolName "vmwarecatalog" -IdentityType "ActiveDirectory"  -NamingScheme "vmware##" -NamingSchemeType "Numeric" -Scope @()
$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image2 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"
$Task = New-ProvScheme -ProvisioningSchemeName vmwarecatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName vmware -IdentityPoolName vmwarecatalog -CleanOnBoot -Scope @() -SecurityGroup @() -NetworkMapping @{"0"="XDHyp:\HostingUnits\vmware\\DSwitch-VM Network.network"} -VMCpuCount 2 -VMMemoryMB 4096 -RunAsynchronously
Get-ProvTask -TaskId $Task.TaskId
$ProvScheme = Get-ProvScheme -ProvisioningSchemeName vmwarecatalog
Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid
<!--NeedCopy-->

使用准备好的映像版本规范更新目录

您可以使用 Set-ProvSchemeImage 命令更新目录。例如,

Set-ProvSchemeImage -ProvisioningSchemeUid <Guid> -ImageVersionSpecUid <Guid> [-DoNotStoreOldImage] [-RunAsynchronously] [-PurgeJobOnSuccess]
<!--NeedCopy-->

或者,

Set-ProvSchemeImage -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> [-DoNotStoreOldImage] [-RunAsynchronously] [-PurgeJobOnSuccess]
<!--NeedCopy-->

更新目录的完整 Powershell 命令集示例:

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 2 -Filter "PreparationType -eq 'Mcs'"
Set-ProvSchemeImage -ProvisioningSchemeName azurecatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously
<!--NeedCopy-->

删除映像定义、映像版本和准备好的映像版本规范

在删除映像定义、映像版本和准备好的映像版本规范之前,请考虑以下事项:

  • 如果映像定义包含任何映像版本,则无法删除该映像定义。
  • 如果映像版本包含任何映像版本规范,则无法删除该映像版本。
  • 如果主映像版本规范被任何其他准备好的映像版本规范使用,则无法删除该主映像版本规范。
  • 如果预准备的映像版本规范被任何预配方案使用,则无法删除。

具体的步骤如下所示:

  1. 删除预准备的映像版本规范。例如,

    $PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"
    Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously
    <!--NeedCopy-->
    

    注意:

    只有在没有关联的预准备映像版本规范时,才能删除主映像版本规范。

  2. 删除主映像版本规范。例如,您可以执行以下操作:

    $MasterImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'None'"
    Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously
    <!--NeedCopy-->
    
  3. 删除映像版本。例如,

    Remove-ProvImageVersion -ImageDefinitionName image1 -ImageVersionNumber 1
    <!--NeedCopy-->
    
  4. 删除映像定义。例如,

    Remove-ProvImageDefinition -ImageDefinitionName image1
    <!--NeedCopy-->
    

PowerShell 命令完整集的示例:

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"
$Task = Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously
$MasterImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'None'"
$Task = Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously
Remove-ProvImageVersion -ImageDefinitionName image1 -ImageVersionNumber 1
Remove-ProvImageDefinition -ImageDefinitionName image1
<!--NeedCopy-->

管理映像定义和映像版本

您可以重命名和编辑映像定义,以及编辑映像版本。

  • 使用 Rename-ProvImageDefinition 命令重命名映像定义。例如:

     Rename-ProvImageDefinition -ImageDefinitionUid <Guid> -NewImageDefinitionName <string>
     <!--NeedCopy-->
    

    或者,

     Rename-ProvImageDefinition -ImageDefinitionName <string> -NewImageDefinitionName <string>
     <!--NeedCopy-->
    
  • 使用 Set-ProvImageDefinition 命令编辑映像定义。例如:

     Set-ProvImageDefinition -ImageDefinitionUid <Guid> [-Description <string>]
     <!--NeedCopy-->
    

    或者,

     Set-ProvImageDefinition -ImageDefinitionName <string> [-Description <string>]
     <!--NeedCopy-->
    
  • 使用 Set-ProvImageVersion 命令编辑映像版本。例如:

     Set-ProvImageVersion -ImageVersionUid <Guid> [-Description <string>]
     <!--NeedCopy-->
    

    或者,

     Set-ProvImageVersion -ImageDefinitionName <string> -ImageVersionNumber <int> [-Description <string>]
     <!--NeedCopy-->
    

获取映像定义、映像版本、准备好的映像版本规范和预配方案详细信息

  • 使用 Get-ProvImageDefinition 命令获取映像定义详细信息。例如:

     Get-ProvImageDefinition [-ImageDefinitionName <string>] [-ImageDefinitionUid <Guid>] [-ReturnTotalRecordCount] [-MaxRecordCount <int>] [-Skip <int>] [-SortBy <string>] [-Filter <string>]
     <!--NeedCopy-->
    
  • 使用 Get-ProvImageVersion 命令获取映像版本详细信息。例如:

    • 要列出映像定义中的映像版本,

       Get-ProvImageVersion -ImageDefinitionUid <Guid>
       <!--NeedCopy-->
      

      或者,

       Get-ProvImageVersion -ImageDefinitionName <string>
       <!--NeedCopy-->
      
    • 要获取映像版本详细信息,

       Get-ProvImageVersion -ImageVersionUid <Guid>
       <!--NeedCopy-->
      

      或者,

       Get-ProvImageVersion -ImageDefinitionName <string> -ImageVersionNumber <int>
       <!--NeedCopy-->
      
  • 使用 Get-ProvImageVersionSpec 命令获取准备好的映像版本规范。例如:

    • 要列出映像版本中的所有准备好的映像版本规范,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid>
       <!--NeedCopy-->
      
    • 要列出准备好的映像版本规范中的主映像版本规范,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid> -Filter 'PreparationType -eq "None"'
       <!--NeedCopy-->
      
    • 要列出与主映像关联的映像版本中的准备好的映像版本规范,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid> -Filter 'PreparationType -eq "MCS" -and SourceImageVersionSpecUid -eq "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"'
       <!--NeedCopy-->
      
    • 要获取映像版本中成功的准备好的映像版本规范,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid> -Filter 'PreparationType -eq "MCS" -and SourceImageVersionSpecUid -eq "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -and ImageVersionSpecStatus -eq "Complete"'
       <!--NeedCopy-->
      
    • 要获取准备好的映像版本规范详细信息,

       Get-ProvImageVersionSpec -ImageVersionSpecUid <Guid>
       <!--NeedCopy-->
      
  • 使用 Get-ProvScheme 命令获取预配方案详细信息。例如:

     Get-ProvScheme [[-ProvisioningSchemeName] <String>] [-ProvisioningSchemeUid <Guid>] [-ScopeId <Guid>] [-ScopeName <String>] [-ReturnTotalRecordCount] [-MaxRecordCount <Int32>] [-Skip <Int32>] [-SortBy <String>] [-Filter <String>] [-FilterScope <Guid>]
     <!--NeedCopy-->
    
  • 使用 Get-ProvSchemeImageVersionSpecHistory 命令获取预配方案的准备好的映像版本规范历史记录。例如:

     Get-ProvSchemeImageVersionSpecHistory [-ProvisioningSchemeName <String>] [-ProvisioningSchemeUid <Guid>] [-ImageVersionSpecUid <Guid>] [-ImageVersionSpecHistoryUid <Guid>] [-ReturnTotalRecordCount] [-MaxRecordCount <Int32>] [-Skip <Int32>] [-SortBy <String>] [-Filter <String>] [-FilterScope <Guid>]
     <!--NeedCopy-->