Citrix Virtual Apps and Desktops

Manage a Google Cloud Platform catalog

Manage machine catalogs describes the wizards that manage a machine catalog. The following information covers details specific to Google cloud environments.


Before managing a Google Cloud Platform catalog, you need to finish creating a Google Cloud Platform catalog. See Create a Google Cloud Platform catalog.

Manage machine catalog

To add machines to a catalog, update machines, and roll back an update, see Manage machine catalogs.

Power management

Citrix DaaS lets your power management of Google Cloud machines. Use the Search node in the left pane to locate the machine you want to power manage. The following power actions are available:

  • Delete
  • Start
  • Restart
  • Force Restart
  • Shut Down
  • Force Shutdown
  • Add to Delivery Group
  • Manage Tags
  • Turn On Maintenance Mode

You can also power manage Google Cloud machines by using Autoscale. To do so, add the Google Cloud machines to a Delivery Group and then enable Autoscale for that Delivery Group. For more information about Autoscale, see Autoscale.

Update provisioned machines using PowerShell

The Set-ProvScheme command changes the provisioning scheme. However, it does not affect existing machines. Using the PowerShell command Set-ProvVMUpdateTimeWindow, you can now apply the current provisioning scheme to an existing persistent or non-persistent machine or set of machines. Currently, in GCP, the property update supported by this feature is machine profile.

You can update:

  • A single VM
  • A list of specific VMs or all existing VMs associated with a provisioning scheme ID
  • A list of specific VMs or all existing VMs associated with a provisioning scheme name

To update the existing VMs:

  1. Check the configuration of the existing machines. For example,

    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
  2. Update the provisioning scheme. For example,

    `Set-ProvScheme –ProvisioningSchemeName "my-catalog" –MachineProfile "XDHyp:\HostingUnits\<hosting-unit>\machineprofileinstance.vm"
  3. Check if the current property of the VM matches the current provisioning scheme, and if there is any pending update action on the VM. For example,

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion

    You can also find machines with a particular version. For example,

    Get-ProvVM -Filter "ProvisioningSchemeVersion -eq 1" | select VMName, ProvisioningSchemeVersion
  4. Update existing machines.
    • To update all the existing machines:

       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
    • To update a list of specific machines:

       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
    • To update machines based on the output of Get-ProvVM:

       Get-ProvVM -ProvisioningSchemeName "my-catalog" | Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
  5. Find machines with an update scheduled. For example,

    Get-ProvVM -Filter "ProvisioningSchemeUpdateAfter" | select VMName, ProvisioningSchemeUpdateAfter
  6. Restart the machines. At the next power-up, property changes are applied to the existing machines. You can check the updated status using the following command:

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion

You can change the following disk related custom properties of an existing catalog and existing VMs of the catalog:

  • PersistOSDisk
  • PersistWBC
  • StorageType
  • IdentityDiskStorageType
  • WbcDiskStorageType


  • StorageType property is for OS disk
  • PersistOsDisk property can be set only for non-persistent catalog with write-back cache enabled

This implementation helps you to select different storage types for different disks even after you create a catalog and thus, balance pricing associated with different storage types.

To do this, use PowerShell commands Set-ProvScheme and Set-ProvVMUpdateTimeWindow:

  1. Open a PowerShell window.
  2. Run asnp citrix*.
  3. Run Get-ProvVM -VMName <VM name> to get the custom properties.
  4. Change the custom properties string:
    1. Copy the custom properties to a Notepad and change the custom properties.
    2. In the PowerShell window, paste the modified custom properties from Notepad and assign a variable to the modified custom properties. For example:

      $cp =  '<CustomProperties xmlns= xmlns:xsi="">
      <Property xsi:type="StringProperty" Name="CatalogZones" Value="" />
      <Property xsi:type="StringProperty" Name="PersistWBC" Value="true" />
      <Property xsi:type="StringProperty" Name="PersistOSDisk" Value="true" />
      <Property xsi:type="StringProperty" Name="WBCDiskStorageType" Value="pd-standard" />
      <Property xsi:type="StringProperty" Name="StorageType" Value="pd-standard" />
  5. Update the existing catalog. For example:

    Set-ProvScheme -ProvisioningSchemeName <yourCatalogName> -CustomProperties $cp
  6. Update the existing VMs. For example:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
  7. Restart the VMs. At the next power up, custom property changes are applied to the existing VMs.

Protect accidental machine deletion

Citrix DaaS lets you protect MCS resources on the Google Cloud to prevent accidental deletion. Configure the provisioned VM by setting the deletionProtection flag to TRUE.

By default, VMs provisioned through MCS or Google Cloud plug-in are created with InstanceProtection enabled. The implementation is applicable to both persistent and non-persistent catalogs. The non-persistent catalogs are updated when the instances get re-created from the template. For existing persistent machines, you can set the flag in the Google Cloud console. For more information about setting the flag, see the Google Documentation site. New machines added to persistent catalogs are created with deletionProtection enabled.

If you attempt to delete a VM instance for which you have set the deletionProtection flag, the request fails. However, if you are granted the permission compute.instances.setDeletionProtection or assigned the IAM Compute Admin role, you can reset the flag to allow the resource to be deleted.

Identify resources created by MCS

Following are the tags that MCS adds to the resources. The tags in the table are represented as “key”:”value”.

Resource name Tag
ID disk “CitrixResource”: “internal”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Image “CitrixResource”: “internal”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
OS disk “CitrixResource”: “internal”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
PrepVM “CitrixResource”: “internal”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Published snapshot “CitrixResource”: “internal”
Storage bucket “Citrixresource”: “internal”
Template “CitrixResource”: “internal”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
VM in catalog “CitrixResource”: “internal”
  “CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”. The plug-in also adds this label for MCS provisioned VMs: “citrix-provisioning-scheme-id”: “provSchemeId”. You can use this label to filter by catalog in the GCP console.
WBC disk “CitrixResource”: “internal”
  CitrixProvisioningSchemeId”: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”


A VM is not visible in the Citrix inventory if a CitrixResource tag is added to identify it as a resource created by MCS. You can remove or rename the tag to make it visible.

More information

Manage a Google Cloud Platform catalog