Set-ProvResourceTags

Last published : Oct 31, 2026
Set provisioning resources tags.

Syntax

Set-ProvResourceTags
   [-ProvisioningSchemeName] <String>
   [-InputObject <ProvisionedVirtualMachine[]>]
   [-VMName <String>]
   [-VMBatchSize <Int32>]
   [-ResourceType <ResourceType>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]
Set-ProvResourceTags
   -ProvisioningSchemeUid <Guid>
   [-InputObject <ProvisionedVirtualMachine[]>]
   [-VMName <String>]
   [-VMBatchSize <Int32>]
   [-ResourceType <ResourceType>]
   [-LoggingId <Guid>]
   [<CitrixCommonParameters>]
   [<CommonParameters>]

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

Examples

EXAMPLE 1

Tag MachineCatalog resources in provisioning scheme called "MyProvisioningSchemeName".
Set-ProvResourceTags -ProvisioningSchemeName MyProvisioningSchemeName -ResourceType MachineCatalog -OutVariable result

          SuccessfulVirtualMachineCount FailedVirtualMachineCount TagOperationErrors
          ----------------------------- ------------------------- ------------------
                                      0                         0 {image.snapshot}


          $result.TagOperationErrors

          ResourceName   ResourceType   TagFailureReason
          ------------   ------------   ----------------
          image.snapshot MachineCatalog OperationNotAllowed

EXAMPLE 2

Tag both MachineCatalog and all VirtualMachine resources in provisioning scheme called "MyProvisioningSchemeName".
,(Get-ProvVM -ProvisioningSchemeName myProvisioningSchemeName) | Set-ProvResourceTags -ProvisioningSchemeName MyProvisioningSchemeName -OutVariable result
    
          SuccessfulVirtualMachineCount FailedVirtualMachineCount TagOperationErrors
          ----------------------------- ------------------------- ------------------
                                      5                         2 {myVirtualMachine0, myVirtualMachine1}
    
          $result.TagOperationErrors

          ResourceName      ResourceType   TagFailureReason
          ------------      ------------   ----------------
          myVirtualMachine0 VirtualMachine OperationNotAllowed
          myVirtualMachine1 VirtualMachine OperationNotAllowed

EXAMPLE 3

Tag VirtualMachine MyVirtualMachine0's resources in provisioning scheme called "MyProvisioningSchemeName".
Set-ProvResourceTags -ProvisioningSchemeName MyProvisioningSchemeName -VMName MyVirtualMachine0 -ResourceType VirtualMachine -OutVariable result

SuccessfulVirtualMachineCount FailedVirtualMachineCount TagOperationErrors
----------------------------- ------------------------- ------------------
                            1                         0 {}

Parameters

-ProvisioningSchemeUid

The unique identifier of the provisioning scheme to be tagged.
Type: Guid
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-ProvisioningSchemeName

The name of the provisioning scheme to be tagged.
Type: String
Position: 2
Default value: None
Required: True
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
Length range: 1 to 64

-InputObject

The VM name list to be tagged.
Type: ProvisionedVirtualMachine[]
Position: Named
Default value: None
Required: False
Accept pipeline input: True (ByPropertyName, ByValue)
Accept wildcard characters: False

-VMName

The VM name to be tagged.
Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-VMBatchSize

The maximum number of VMs to be tagged in a batch. Range 1-60 with default of 10.
Type: Int32
Position: Named
Default value: 10
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-ResourceType

Specifies the type of resource. Supported resource types are:
MachineCatalog
VirtualMachine
All
Type: ResourceType
Accepted values: All, MachineCatalog, VirtualMachine
Position: Named
Default value: All
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-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.
Type: Guid
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

CitrixCommonParameters

This cmdlet supports the common Citrix parameters: -AdminAddress, -AdminClientIP, -BearerToken, -TraceParent, -TraceState and -VirtualSiteId. For more information, see about_CitrixCommonParameters.

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

Citrix.MachineCreation.Sdk.ProvisioningScheme

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

Outputs

Citrix.MachineCreation.Sdk.TagOperationDetailedSummary

The Set-ProvResourceTags that contains the following parameters:
SuccessfulVirtualMachineCount \&lt;int\>
The number of virtual machines to which their machine level resources were tagged successfully.
FailedVirtualMachineCount \&lt;int\>
The number of virtual machines to which their machine level resources were not tagged.
TagOperationErrors \&lt;Citrix.MachineCreation.Sdk.TagOperationError\[\]\>
The list of resources that failed to be tagged. Each one has the following parameters:
ResourceType \&lt;string\>
Type of the resource.
ResourceName \&lt;string\>
Name of the resource.
TagFailureReason \&lt;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.

Notes

In the case of failure, the following errors can result.
Error Codes
ProvisioningSchemeNotFound
The specified provisioning scheme could not be located.
ProvisioningSchemeNotReady
The specified provisioning scheme is not in Ready state.
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.