Citrix Virtual Apps and Desktops

Manage prepared image machine catalogs

You can update an existing MCS machine catalog with a different prepared image and manage the image definitions and versions using:

Use Web Studio

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.

    Note:

    Applicable to Azure: You can also choose an image with ACG not enabled and later select Place prepared image in Azure Compute Gallery check box to place the images in the gallery.

  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.

Use PowerShell

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 MCS machine catalog.
  • A hosting unit can’t be deleted if it is used by any other prepared image version spec.

The detailed steps are as follows:

  1. Remove the machine catalog. For example,

    Remove-ProvScheme -ProvisioningScheneName decouplingCatalog
    <!--NeedCopy-->
    
  2. Remove the shared prepared image version spec. For example,

    Remove-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <uid> -HostingUnitName AzureWest
    <!--NeedCopy-->
    
  3. 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-->
    
  4. Remove master image version specification. For example,

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

    Note:

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

  5. Remove an image version. For example,

    Remove-ProvImageVersion -ImageDefinitionName image1 -ImageVersionNumber 1
    <!--NeedCopy-->
    
  6. Remove the configuration for image definition in the specified hosting connection. For example,

    Remove-ProvImageDefinitionConnection -ImageDefinitionName xx -HypervisorConnectionName xxx
    <!--NeedCopy-->
    
  7. Remove an image definition. For example,

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

Example of the complete set of PowerShell commands when prepared image is not shared across host unit:

Remove-ProvScheme -ProvisioningSchemeName decouplingCatalog

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"

Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously

$MasterImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'None'"

Remove-ProvImageVersionSpec -ImageVersionSpecUid $MasterImageVersionSpec.ImageVersionSpecUid -RunAsynchronously

Remove-ProvImageVersion -ImageDefinitionName image1 -ImageVersionNumber 1

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

Example of the complete set of PowerShell commands when prepared image is shared across host unit:

Remove-ProvScheme -ProvisioningSchemeName decouplingCatalog

Remove-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <uid> 
-HostingUnitName AzureWest

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"

Remove-ProvImageVersionSpec -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -RunAsynchronously

$MasterImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'None'"

Remove-ProvImageVersionSpec -ImageVersionSpecUid $MasterImageVersionSpec.ImageVersionSpecUid -RunAsynchronously

Remove-ProvImageVersion -ImageDefinitionName image1 -ImageVersionNumber 1

Remove-ProvImageDefinitionConnection -ImageDefinitionName xx -HypervisorConnectionName xxx

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

More information