Citrix Virtual Apps and Desktops SDK

Set-ProvResourceTags

Introduced in: Citrix Virtual Apps and Desktop 7 2209

Set provisioning resources tags.

Syntax

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

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

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

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 {}
<!--NeedCopy-->

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

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.

Set-ProvResourceTags