Citrix Daas SDK


Set provisioning resources tags.


Set-ProvResourceTags [-ProvisioningSchemeName] <String> [-InputObject <ProvisionedVirtualMachine[]>] [-VMName <String>] [-VMBatchSize <Int32>] [-ResourceType <ResourceType>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Set-ProvResourceTags -ProvisioningSchemeUid <Guid> [-InputObject <ProvisionedVirtualMachine[]>] [-VMName <String>] [-VMBatchSize <Int32>] [-ResourceType <ResourceType>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Detailed Description

Provides the ability to update the tags of the resources created by Citrix during provisioning. The two types of resources created by Citrix are machine catalog level, and virtual machine level. They can be tagged separately or at the same time. Resources are tagged with ‘CitrixProvisioningSchemeId’, ‘CitrixVirtualSiteId’ and ‘CitrixCustomerId’.


Name Description Required? Pipeline Input Default Value
ProvisioningSchemeName The name of the provisioning scheme to be tagged. true true (ByPropertyName)  
ProvisioningSchemeUid The unique identifier of the provisioning scheme to be tagged. true false  
InputObject The VM name list to be tagged. false true (ByValue, ByPropertyName)  
VMName The VM name to be tagged. false false  
VMBatchSize The maximum number of VMs to be tagged in a batch. Range 1-60 with default of 10. false false 10
ResourceType Specifies the type of resource. Supported resource types are: MachineCatalog VirtualMachine All false false All
LoggingId Specifies the identifier of the high-level operation this cmdlet call forms a part of. Citrix Studio and Director typically create high-level operations. PowerShell scripts can also wrap a series of cmdlet calls in a high-level operation by way of the Start-LogHighLevelOperation and Stop-LogHighLevelOperation cmdlets. false false  
BearerToken Specifies the bearer token assigned to the calling user false false  
AdminClientIP Specifies the Client IP of the calling user false false  
TraceParent Specifies the trace parent assigned for internal diagnostic tracing use false false  
TraceState Specifies the trace state assigned for internal diagnostic tracing user false false  
VirtualSiteId Specifies the virtual site the PowerShell snap-in will connect to. false false  
AdminAddress The address of a Citrix Virtual Apps and Desktops controller the PowerShell snap-in will connect to. You can provide this as a host name or an IP address. false false Localhost. Once a value is provided by any cmdlet, this value becomes the default.

Input Type


You can pipe an object containing a parameter called ‘ProvisioningSchemeName’ or ‘ProvisioningSchemeUid’ to Set-ProvResourceTags.

Return Values


The Set-ProvResourceTags that contains the following parameters: SuccessfulVirtualMachineCount <int> The number of virtual machines to which their machine level resources were tagged successfully. FailedVirtualMachineCount <int> The number of virtual machines to which their machine level resources were not tagged. TagOperationErrors <Citrix.MachineCreation.Sdk.TagOperationError[]> The list of resources that failed to be tagged. Each one has the following parameters: ResourceType <string> Type of the resource. ResourceName <string> Name of the resource. TagFailureReason <string> Reason for the tag operation failure. This can be one of the following: OperationNotAllowed The operation is not allowed because the resources are not in the right state to tag. TooManyRequests The request is being throttled because too many requestes arrive. UnexpectedTagFailure Failed to tag with unexpected exception.


In the case of failure, the following errors can result.

Error Codes

SetProvSchemeTagsFailed An unexpected error occurred while setting machine catalog level resources tags.
SetProvVMTagsFailed An unexpected error occurred while setting virtual machine level resources tags.
CommunicationError An error occurred while communicating with the service.
PermissionDenied The user does not have administrative rights to perform this operation.
ConfigurationLoggingError The operation could not be performed because of a configuration logging error.
ExceptionThrown An unexpected error occurred.  For more details, see the Windows event logs on the controller being used or Citrix Virtual Apps and Desktops logs.


Example 1

c:\PS>Set-ProvResourceTags -ProvisioningSchemeName MyProvisioningSchemeName -ResourceType MachineCatalog -OutVariable result

          SuccessfulVirtualMachineCount FailedVirtualMachineCount TagOperationErrors

      ----------------------------- ------------------------- ------------------

                                      0                         0 {image.snapshot}


          ResourceName   ResourceType   TagFailureReason

      ------------   ------------   ----------------

          image.snapshot MachineCatalog OperationNotAllowed


Tag MachineCatalog resources in provisioning scheme called “MyProvisioningSchemeName”.

Example 2

c:\PS>,(Get-ProvVM -ProvisioningSchemeName myProvisioningSchemeName) | Set-ProvResourceTags -ProvisioningSchemeName MyProvisioningSchemeName -OutVariable result

              SuccessfulVirtualMachineCount FailedVirtualMachineCount TagOperationErrors

      ----------------------------- ------------------------- ------------------

                                      5                         2 {myVirtualMachine0, myVirtualMachine1}


          ResourceName      ResourceType   TagFailureReason

      ------------  ------------   ----------------

          myVirtualMachine0 VirtualMachine OperationNotAllowed

          myVirtualMachine1 VirtualMachine OperationNotAllowed


Tag both MachineCatalog and all VirtualMachine resources in provisioning scheme called “MyProvisioningSchemeName”.

Example 3

c:\PS>Set-ProvResourceTags -ProvisioningSchemeName MyProvisioningSchemeName -VMName MyVirtualMachine0 -ResourceType VirtualMachine -OutVariable result

          SuccessfulVirtualMachineCount FailedVirtualMachineCount TagOperationErrors

      ----------------------------- ------------------------- ------------------

                                      1                         0 {}


Tag VirtualMachine MyVirtualMachine0’s resources in provisioning scheme called “MyProvisioningSchemeName”.