Citrix Virtual Apps and Desktops

Image management (Preview)

Introduction

The MCS catalog creation or update process has two phases:

  • Mastering: a source image is converted into a published image
  • Cloning: new VMs are created from the published image

With the image management functionality, MCS separates the mastering phase from the overall provisioning workflow.

You can prepare various MCS image versions (Prepared Image) from a single source image and use it across multiple different MCS machine catalogs. This implementation significantly reduces the storage and time costs, and simplifies the VM deployment and image update process.

The benefits of using this image management functionality are:

  • Generate prepared images in advance without creating a catalog.
  • Reuse prepared images in multiple scenarios, such as creating and updating a catalog.
  • Significantly reduce catalog creation or update time.

Note:

  • This feature is currently applicable to Azure and VMware virtualization environments.
  • You can create an MCS machine catalog without using prepared images. In that case, you cannot get the benefits of the feature.

Use cases

Some of the use cases of image management functionality are:

  • Version management: Image versions allow you to:

    • manage different iterations or updates to a particular image.
    • maintain multiple versions of an image for different purposes.
  • Logical grouping: You can create multiple image definitions to:

    • logically group image versions based on various criteria such as project, department, or application and desktop type.
    • manage images more efficiently within an organization.

What is a prepared image?

With the image management functionality, MCS decouples the mastering phase from the overall catalog creation or update workflow and breaks down the process into two stages:

  1. Create prepared images from a single source image.
  2. Use the prepared image to create or update an MCS machine catalog.

You can create the prepared images in advance. You can use a single prepared image to create or update multiple MCS provisioned machine catalogs.

Understand how a prepared image is used across multiple MCS machine catalogs when you use the Web Studio from the image:

Prepared image overview

Image definition: Image definitions are a logical grouping of versions of an image. The image definition holds information about:

  • why the image was created
  • what OS it is for
  • other information about using the image.

A catalog isn’t created from an image definition, but from the image versions that are created based on the image definition.

Image version: Image versions manage versionings for the image definition. An image definition can have multiple image versions. Use the image versions as prepared images to create or update a catalog.

Alternatively, if you want to use PowerShell commands to create a provisioning scheme to create or update a catalog, then you must create a prepared image version spec based on the master image version spec as needed for your environment.

Participate in Tech Preview

If you’re interested in participating in the Tech Preview, please provide your contact information here.

We’ll help you set up the test environment and provide technical support if needed.

Requirement

  • For Windows master image, only VDA images with version 2311 and later, and MCS/IO enabled are supported.

Limitations

Currently, the feature does not support the following:

  • Multiple NIC in Azure
  • Persistent data disk feature
  • Hibernation for multi-session
  • Image type change

Image lifecycle management using the Web Studio

Lifecycle of the image when you use the Web Studio is:

  1. Create a prepared image: Create an image definition and its initial image version.
  2. Create image versions from the initial image version.
  3. Use an image version as a prepared image to create catalogs.
  4. Update a machine catalog with a different prepared image.
  5. Manage the image definitions and versions: Edit the name and description of image versions, and description of an image definition.
  6. Delete an image version.
  7. Delete an image definition.

Alternatively, you can also manage images using PowerShell. See Image lifecycle management using PowerShell.

Create or update a catalog using a prepared image

Create prepared images and use the prepared images to create or update an MCS machine catalog using:

Use Web Studio

See the following topics:

Understand Images node

Use the Images node to create and manage MCS-prepared images. Its main view is divided into four parts:

image-node-main-view

Label Part Description
A Image definitions Lists the previously created image definitions.
B Image versions Displays image versions of the selected image definition.
C


Details


  • The Details tab displays detailed information about the selected image definition or version such as Master Image, Resource, Hypervisor, name of the image definition, OS type, and session type.
  • The Image Scheme tab displays information about the template used for preparing images such as hard disk, machine size, license type, disk encryption set, machine profile, and so on.
  • The Provisioning Schemes tab displays the provisioning scheme name used for creating the catalog.
  • The Troubleshoot tab provides the error status of the selected image version.
D Action bar Lists the actions that you can take on image definitions and versions such as Create Image Version, Edit Description, Delete Image Version, and Create Catalog.

Create a machine catalog using the prepared image

The key steps to create an MCS machine catalog using the prepared image are:

  1. Create the image definition and the initial image versions.
  2. Use the image version as a prepared image to create a catalog.

Create an image definition and initial image version

To create an image definition and the initial image version, do the following:

  1. Sign into Web Studio and select the Images node. Click Next on the Introduction page.
  2. On the Image Definition page, specify the OS type and Session type for the image definition.
  3. On the Image page, select Resources and a master image to use as a template for creating the image version. You can select the Use a machine profile checkbox and select a machine profile.

    Note:

    Before selecting an image, verify that the master image has VDA 2311 or later installed and the MCSIO driver is installed on the VDA.

  4. (Only for Azure) On the Storage and Licenses Types page, select the storage and license type to be used as part of the image preparation process.

    Note:

    If you select a machine profile on the Image page, the license type of the machine profile is pre-selected based on the profile setting.

  5. On the Machine Specification page:

    • For Azure, select a machine size. If you select a machine profile on the Image page, the machine size of the machine profile is selected by default.
    • For VMware, if you select a machine profile, then you can see the Virtual CPU count derived from the machine profile and it is unchangeable. If you do not select a machine profile, then you can see only the memory size that is derived from the master image.
  6. On the NICs page, select or add NICs for the preparation image. For each NIC, select an associated virtual network.

    For VMware, if you do not select a machine profile, then the NIC associated with the master image is selected by default. If you select a machine profile, then the NICs are derived from the machine profile and the count is unchangeable.

    Note:

    Multiple NIC is not supported in Azure.

  7. (Only for Azure) On the Disk Settings page, select the customer-managed encryption key (CMEK). If the machine profile doesn’t have a CMEK but the master image has, it pre-selects the CMEK from the master image.
  8. On the Version Description page, enter a description for the initial image version created.
  9. On the Summary page, check the details of the image definition and the initial image version created. Enter a name and description for the image definition. Click Finish.

Create image versions

Image versions allow for the management of different iterations or updates to a particular image. This functionality enables you to maintain multiple versions of an image for different purposes.

To create image versions from the initial image version, do the following:

Note:

The hosting unit of all the image versions must be the same.

  1. Go to the Images node, select an image version, and select Create Image Version.
  2. If you want the configuration of the image version to be different from the initial configured image version, then configure the settings on the Image, Storage and License Types, Machine Specification, NICs, and Disk Settings pages of the Create Image Version dialog.
  3. Add a description for the image version. Click Finish.

create-image-versions

Create a machine catalog from the Images node

Use the Create catalog option in the Images node to create a catalog using the image version.

Alternatively, you can select the version when creating a catalog in the Machine Catalogs node, linking to the prepared image option in the catalog creation workflow. See Create a machine catalog from the Machine Catalogs node

To create an MCS machine catalog from the Images node, do the following:

  1. Select an image version and click Create catalog. Click Next on the Introduction page.
  2. On the Desktop Experience page, select the required desktop experience.
  3. From the Image page to Disk Settings page, the settings are pre-selected based on the selected image version.
  4. (For Azure) On the Resource Group page, you can choose to create a new resource group or use an existing resource group to place the resources of this catalog.
  5. Complete the settings on the following pages.
  6. On the Summary page, check the details of the machine catalog. Enter a name and description for the machine catalog. Click Finish.
  7. Go to the Machine Catalogs node to see the created machine catalog.

Create a machine catalog from the Machine Catalogs node

To create an MCS machine catalog from the Machine Catalogs node, do the following:

  1. Click Machine Catalogs on the left navigation pane.
  2. Click Create Machine Catalog. The Machine Catalog Setup page appears. Click Next through the Introduction, Machine Type, and Machine Management pages.
  3. On the Image page:
    1. Select Prepared image.
    2. Under the Prepared image, select an image version of an image definition.
    3. Click the image version name. To view more details about the selected image version, click the version number, which is underlined.
    4. If the selected image version is configured with a machine profile, select a machine profile. If the selected image version is not configured with a machine profile, you cannot choose to use a machine profile.
  4. Configure the settings on the following pages.
  5. On the Disk Settings page, if the selected prepared image uses a disk encryption set, then you cannot remove the encryption set, but you can change the key to another encryption key.
  6. (For Azure) On the Resource Group page, you can choose to create a new resource group or use an existing resource group to place the resources of this catalog.
  7. Complete the settings on the following pages.
  8. On the Summary page, check the details of the machine catalog. Enter a name and description for the machine catalog. Click Finish.

Update a machine catalog with a different prepared image

To update an existing MCS machine catalog with a different prepared image, do the following:

  1. Click Machine Catalogs on the left navigation pane and select a machine catalog that you want to update. Right-click and select Change Prepared Image.
  2. On the Image page, select a prepared image.
  3. On the Rollout strategy page, select when you want to update this catalog with the selected prepared image.
  4. On the Summary page, check the details. Click Finish.

You can see the history of image changes made to a catalog. To see the history, do the following:

  1. Select a machine catalog.
  2. Under the Template Properties tab in the Prepared image field, click View Image history.

Manage the image definitions and versions

You can edit and delete the image definitions and versions to manage the use of various created image versions and definitions.

Edit an image definition

You can edit the name and description of an image definition.

To edit an image definition, do the following:

  1. Go to the Images node, select an image definition, and select Edit Image Definition.

Edit image version

You can edit the description of an image version to specify the purpose of that image version.

To edit an image version, do the following:

  1. Go to the Images node, select an image version, and select Edit Description.

Delete an image version

To delete an image version, do the following:

  1. Go to the Images node, select an image version, and select Delete Image Version.

Note:

You cannot delete an image version if it is used by a machine catalog.

Delete an image definition

To delete an image definition, do the following:

  1. Go to the Images node, select an image definition, and select Delete Image Definition.

Note:

You cannot delete an image definition if it contains an image version.

Image lifecycle management using PowerShell

If you want to use PowerShell commands to create a provisioning scheme, then you must create a prepared image version spec based on the master image version spec as needed for your environment.

Master image version spec: A master image version spec is a specific image added or created under an image version. You can add an existing image in the hypervisor as a master image version spec or create a prepared image version spec based on the master image version spec as needed for your environment. The prepared image version spec can be used for multiple provisioning schemes.

The lifecycle of an image when using PowerShell commands is:

  1. Create an image:

    1. Create an image definition.
    2. Create an image version.
    3. Add a master image version spec.
    4. Create a prepared image version spec.
  2. Create an MCS machine catalog using a prepared image version spec:

    1. Create a broker catalog.
    2. Create an identity pool.
    3. Create a provisioning scheme with the parameter of prepared image version spec Uid using the New-ProvScheme command.
    4. Link the broker catalog with the provisioning scheme.
  3. Create VMs in the MCS machine catalog.
  4. Change the prepared image version spec of a provisioning scheme using Set-ProvScheme command.
  5. Manage the image definitions and versions: Edit the image versions and image definitions.
  6. Delete an MCS machine catalog: The deletion order is: prepared image version spec > master image version spec > image version > image definition. Before deleting the image version spec, ensure that the prepared image version spec is not associated with any MCS machine catalog.

Use PowerShell

You can do the following using PowerShell commands:

Create a prepared image

The detailed PowerShell commands to create a prepared image version spec are as follows:

  1. Check the available image definition names using the Test-ProvImageDefinitionNameAvailable command. For example,

    Test-ProvImageDefinitionNameAvailable -ImageDefinitionName <string[]>
    <!--NeedCopy-->
    
  2. Create an image definition using the New-ProvImageDefinition command. For example,

    New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession
    <!--NeedCopy-->
    
  3. Create an image version using the New-ProvImageVersion command. For example,

    New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1"
    <!--NeedCopy-->
    
  4. Add a master image version spec to the image version using the Add-ProvImageVersionSpec command. For example,

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

    Note:

    You can add only one master image version spec to one image version for a hosting unit.

  5. Create a prepared image version spec from the master image version spec using the New-ProvImageVersionSpec command. For example,

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

    Note:

    One hosting unit and preparation type can have only one prepared instance.

Example of the complete set of Powershell commands to create image definition, image version, and prepared image version spec in Azure:

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

Example of the complete set of Powershell commands to create image definition, image version, and prepared image version spec in VMware:

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

Note:

  • All image version specs in an image definition must belong to the same hosting unit.
  • An image version can have only one master image version spec and one prepared image version spec.
  • All image version specs must either have a machine profile or none of the image version specs must have a machine profile.
  • You cannot specify a resource group while creating an image version spec.

Create a catalog using a prepared image version spec

Create an MCS machine catalog from the prepared image version spec using the New-ProvScheme command. For example,

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

Or,

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

Example of the complete set of Powershell commands to create a catalog in Azure:

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

Example of the complete set of Powershell commands to create a catalog in VMware:

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

Update a catalog using a prepared image version spec

You can update a catalog using the Set-ProvSchemeImage command. For example,

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

Or,

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

Example of the complete set of Powershell commands to update a catalog:

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

Delete image definition, image version, and prepared image version spec

Consider the following before deleting an image definition, image version, and prepared image version spec:

  • An image definition can’t be deleted if it contains any image version.
  • An image version can’t be deleted if it contains any image version specification.
  • A master image version spec can’t be deleted if it is used by any other prepared image version spec.
  • A prepared image version spec can’t be deleted if it is used by any provisioning scheme.

The detailed steps are as follows:

  1. Remove a prepared image version spec. For example,

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

    Note:

    Master image version spec can only be deleted when there is no associated prepared image version spec.

  2. Remove master image version specification. For example,

    $MasterImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'None'"
    Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously
    <!--NeedCopy-->
    
  3. Remove an image version. For example,

    Remove-ProvImageVersion -ImageDefinitionName image1 -ImageVersionNumber 1
    <!--NeedCopy-->
    
  4. Remove an image definition. For example,

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

Example of the complete set of PowerShell commands:

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

Manage image definition and image version

You can rename and edit an image definition, and edit an image version.

  • Rename an image definition using the Rename-ProvImageDefinition command. For example:

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

    Or,

     Rename-ProvImageDefinition -ImageDefinitionName <string> -NewImageDefinitionName <string>
     <!--NeedCopy-->
    
  • Edit an image definition using the Set-ProvImageDefinition command. For example:

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

    Or,

     Set-ProvImageDefinition -ImageDefinitionName <string> [-Description <string>]
     <!--NeedCopy-->
    
  • Edit an image version using the Set-ProvImageVersion command. For example:

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

    Or,

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

Get image definition, image version, prepared image version spec, and provisioning scheme details

  • Get image definition details using the Get-ProvImageDefinition command. For example:

     Get-ProvImageDefinition [-ImageDefinitionName <string>] [-ImageDefinitionUid <Guid>] [-ReturnTotalRecordCount] [-MaxRecordCount <int>] [-Skip <int>] [-SortBy <string>] [-Filter <string>]
     <!--NeedCopy-->
    
  • Get image version details using the Get-ProvImageVersion command. For example:

    • To list image versions in an image definition,

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

      Or,

       Get-ProvImageVersion -ImageDefinitionName <string>
       <!--NeedCopy-->
      
    • To get an image version detail,

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

      Or,

       Get-ProvImageVersion -ImageDefinitionName <string> -ImageVersionNumber <int>
       <!--NeedCopy-->
      
  • Get prepared image version spec using the Get-ProvImageVersionSpec command. For example:

    • To list all prepared image version specs in an image version,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid>
       <!--NeedCopy-->
      
    • To list master image version specs in a prepared image version spec,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid> -Filter 'PreparationType -eq "None"'
       <!--NeedCopy-->
      
    • To list prepared image version specs in an image version, which is associated with a master image,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid> -Filter 'PreparationType -eq "MCS" -and SourceImageVersionSpecUid -eq "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"'
       <!--NeedCopy-->
      
    • To get successful prepared image version specs in an image version,

       Get-ProvImageVersionSpec -ImageVersionUid <Guid> -Filter 'PreparationType -eq "MCS" -and SourceImageVersionSpecUid -eq "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -and ImageVersionSpecStatus -eq "Complete"'
       <!--NeedCopy-->
      
    • To get a prepared image version spec detail,

       Get-ProvImageVersionSpec -ImageVersionSpecUid <Guid>
       <!--NeedCopy-->
      
  • Get provisioning scheme details using the Get-ProvScheme command. For example:

     Get-ProvScheme [[-ProvisioningSchemeName] <String>] [-ProvisioningSchemeUid <Guid>] [-ScopeId <Guid>] [-ScopeName <String>] [-ReturnTotalRecordCount] [-MaxRecordCount <Int32>] [-Skip <Int32>] [-SortBy <String>] [-Filter <String>] [-FilterScope <Guid>]
     <!--NeedCopy-->
    
  • Get prepared image version spec history of a provisioning scheme using the Get-ProvSchemeImageVersionSpecHistory command. For example:

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