Citrix Virtual Apps and Desktops SDK

Set-ProvScheme

Changes the parameter values for a provisioning scheme.

Syntax


Set-ProvScheme [-ProvisioningSchemeName] <String> [-VMCpuCount <Int32>] [-VMMemoryMB <Int32>] [-CustomProperties <String>] [-ServiceOffering <String>] [-PassThru] [-MachineProfile <String>] [-NetworkMapping <Hashtable>] [-SecurityGroup <String[]>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Set-ProvScheme [-ProvisioningSchemeName] <String> -IdentityPoolName <String> [-VMCpuCount <Int32>] [-VMMemoryMB <Int32>] [-CustomProperties <String>] [-ServiceOffering <String>] [-PassThru] [-MachineProfile <String>] [-NetworkMapping <Hashtable>] [-SecurityGroup <String[]>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Set-ProvScheme [-ProvisioningSchemeName] <String> -IdentityPoolUid <Guid> [-VMCpuCount <Int32>] [-VMMemoryMB <Int32>] [-CustomProperties <String>] [-ServiceOffering <String>] [-PassThru] [-MachineProfile <String>] [-NetworkMapping <Hashtable>] [-SecurityGroup <String[]>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Set-ProvScheme -ProvisioningSchemeUid <Guid> [-VMCpuCount <Int32>] [-VMMemoryMB <Int32>] [-CustomProperties <String>] [-ServiceOffering <String>] [-PassThru] [-MachineProfile <String>] [-NetworkMapping <Hashtable>] [-SecurityGroup <String[]>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Set-ProvScheme -ProvisioningSchemeUid <Guid> -IdentityPoolName <String> [-VMCpuCount <Int32>] [-VMMemoryMB <Int32>] [-CustomProperties <String>] [-ServiceOffering <String>] [-PassThru] [-MachineProfile <String>] [-NetworkMapping <Hashtable>] [-SecurityGroup <String[]>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

Set-ProvScheme -ProvisioningSchemeUid <Guid> -IdentityPoolUid <Guid> [-VMCpuCount <Int32>] [-VMMemoryMB <Int32>] [-CustomProperties <String>] [-ServiceOffering <String>] [-PassThru] [-MachineProfile <String>] [-NetworkMapping <Hashtable>] [-SecurityGroup <String[]>] [-LoggingId <Guid>] [-BearerToken <String>] [-AdminClientIP <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

<!--NeedCopy-->

Detailed Description

Provides the ability to update the parameters of an existing provisioning scheme. It increments the provisioning scheme’s ProvisioningSchemeVersion by 1 each time it is called.

The following parameters are allowed to be updated:

  • Number of CPUs that will be used for VMs created from the provisioning scheme. o Maximum amount of memory that will be used for VMs created from the provisioning scheme. o Identity pool that will be used for VMs created from the provisioning scheme. o Machine profile that will be used for VMs created from the provisioning scheme. o Cloud service offering that will be used for VMs created from the provisioning scheme. o Custom properties of the provisioning scheme that are specific to the target hosting infrastructure.

To change the provisioning scheme name, see Rename-ProvScheme.

Parameters

Name Description Required? Pipeline Input Default Value
ProvisioningSchemeName The name of the provisioning scheme to be updated. true false  
IdentityPoolName The name of the identity pool to be used for the provisioning scheme, replacing the present one. true false  
IdentityPoolUid The unique identifier of the identity pool to be used for the provisioning scheme, replacing the present one. true false  
ProvisioningSchemeUid The identifier of the provisioning scheme to be updated. true false  
VMCpuCount The number of processors that will be used to create VMs from the provisioning scheme, replacing the present one. false false  
VMMemoryMB The maximum amount of memory that will be used to created VMs from the provisioning scheme in MB, replacing the present one. false false  
CustomProperties The properties of the provisioning scheme that are specific to the target hosting infrastructure. See about_ProvCustomProperties for more information. If a property name already exists its value is updated; otherwise it is added. false false  
ServiceOffering The Service Offering to use when creating VMs in Cloud Hypervisors, replacing the present one. false false  
PassThru Returns the affected record. By default, this cmdlet does not generate any output. false false False
MachineProfile Currently supported with GCP, VMware, Azure and AWS. Defines the inventory path to the source VM used by the provisioning scheme as a template. This profile identifies the properties for the VMs created from the scheme. The VM must be in the hosting unit that HostingUnitName or HostingUnitUid refers to. If any properties are present in the MachineProfile but not the CustomProperties, values from the template will be written back to the CustomProperties.      
Valid paths are of the format: XDHyp:\HostingUnits\<HostingUnitName>\<path>\<VMName>.vm false false    
NetworkMapping Specifies how the attached NICs are mapped to networks. If this parameter is omitted, the current NICs setting of the provisioning scheme is not updated; otherwise the NICs setting is updated, and new machines will be created with the number of NICs specified in the map, with each NIC attached to the specified network. Cannot set to an empty value. false false  
SecurityGroup The Security Groups to use when creating VMs in Cloud Hypervisors, replacing the present one. false 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. 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

Return Values

Citrix.Machinecreation.Sdk.Provisioningscheme

This object provides details of the provisioning scheme and contains the following information:

  • CleanOnBoot <bool> Indicates whether the VMs created will be reset to a clean state on each start.

  • ControllerAddress <string[]> The DNS names of the controllers associated with this provisioning scheme.

  • CpuCount <int> The number of processors that will be used to create VMs.

  • DiskSize <int> The disk size (in GB) that will be used to create VMs.

  • HostingUnitName <string> The name of the hosting unit being used by this provisioning scheme.

  • HostingUnitUid <Guid> The unique identifier of the hosting unit being used by this provisioning scheme.

  • IdentityPoolName <string> The name of the identity pool being used by this provisioning scheme.

  • IdentityPoolUid <Guid> The unique identifier of the identity pool being used by this provisioning scheme.

  • MachineCount <int> The count of machines created with this provisioning scheme.

  • MachineProfile <string> The inventory path to the source VM used by the provisioning scheme as a template.

  • MasterImageVM <string> The inventory path to the VM snapshot copy used by this provisioning scheme.

  • MasterImageVMDate <DateTime> The date and time when the VM snapshot copy used by this provisioning scheme was made.

  • MemoryMB <int> The maximum amount of memory that will be used to created VMs in MB.

  • Metadata <Citrix.MachineCreation.Sdk.Metadata[]> The metadata associated with this provisioning scheme.

  • MetadataMap <IDictionary[string, string];> The metadata associated with this provisioning scheme arranged in key value pairs.

  • ProvisioningSchemeName <string> The name of this provisioning scheme.

  • ProvisioningSchemeUid <Guid> The unique identifier for this provisioning scheme.

  • ProvisioningSchemeVersion <int> The version of the provisioning scheme.

  • TaskId <Guid> The identifier of any current task that is running for the provisioning scheme.

  • VMMetadata <char[]> The metadata that will be used to created VMs in a plain text format.

  • PersonalVDiskDriveLetter <char> The drive letter for the personal vDisk.

  • PersonalVDiskDriveSize <int> The size of the personal vDisk in GB.

  • UsePersonalVDiskStorage <bool> Indicates whether this provisioning scheme uses personal vDisk storage.

  • NetworkMaps <Citrix.MachineCreation.Sdk.NetworkMap[]> The NIC/network mappings that will be used to create VMs.

  • Scope <Citrix.MachineCreation.Sdk.ScopeReference[]> The administration scopes associated with this provisioning scheme.

  • DedicatedTenancy <bool> Indicates whether dedicated tenancy is used when creating VMs in Cloud Hypervisors.

  • GpuTypeId <string> The id of the GPU (Graphics Processor Unit) Type used by this scheme. It is null if there is no GPU.

  • ResetAdministratorPasswords <bool> Indicates whether the passwords for administrator accounts are reset on created machines.

  • ServiceOffering <string> The service offering that the scheme uses when creating VMs in Cloud Hypervisors.

  • SecurityGroups <string[]> The security groups that will be applied to machines created in Cloud Hypervisors.

  • TenancyType <string> Tenancy type to be used when creating VMs in Cloud Hypervisors. (See New-ProvScheme.)

  • AzureAdJoinType <string> Deprecated.

  • CurrentMasterImageUid <Guid> The unique identifier of the current master image used by the provisioning scheme. (See Get-ProvSchemeMasterVMImageHistory.)

  • CustomProperties <string> Properties of the provisioning scheme which that are specific to the target hosting infrastructure. (See about_ProvCustomProperties)

  • IdentityType <string> Identity type used to join created machines to a directory service. (See New-ProvScheme.)

  • UseFullDiskCloneProvisioning <bool> Indicates whether VMs will be created using the dedicated full disk clone feature.

  • UseWriteBackCache <bool> Indicates whether this provisioning scheme will use the write-back cache feature.

  • WriteBackCacheDiskSize <int> The size of the write-back cache disk to be used in GB. Specify only when UseWriteBackCache is true.

  • WriteBackCacheMemorySize <int> The size of the write-back memory cache in MB. Specify only when UseWriteBackCache is true.

  • Warnings <Citrix.MachineCreation.Sdk.ProvSchemeWarning[]> Warning states that have occurred with this provisioning scheme.

  • WriteBackCacheDiskIndex <int> The disk index for the write-back cache disk. Specify only when UseWriteBackCache is true.

Notes

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

ProvisioningSchemeNotFound The specified provisioning scheme could not be located.
DatabaseError An error occurred in the service while attempting a database operation.
DatabaseNotConfigured The operation could not be completed because the database for the service is not configured.
ServiceStatusInvalidDb An error occurred in the service while attempting a database operation - communication with the database failed for for various reasons.
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.
HostingUnitNotFound The hosting unit referenced by the provisioning scheme could not be resolved.
NetworkPathResolutionFailed The specified network mapping contains invalid or empty network path value.
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.
Running Set-ProvScheme to update provisioning scheme properties will only affect future provisioned machines. To have existing VMs in a catalog be brought up to date, use Set-ProvVMUpdateTimeWindow to set a time window for certain or all VMs created from the provisioning scheme associated with the catalog to be updated on next power on within the given time window.

Examples

Example 1


C:\PS> Set-ProvScheme -ProvisioningSchemeName MyScheme -VMCpuCount 2

CleanOnBoot                  : True

ControllerAddress            : {ddcA.citrix.com,ddcB.citrix.com,ddcC.citrix2.com}

CpuCount                     : 2

DiskSize                     : 20

HostingUnitName              : XenHU

HostingUnitUid               : 01a4a008-8ce8-4165-ba9c-cdf15a6b0501

IdentityPoolName             : idPool1

IdentityPoolUid              : 03743136-e43b-4a87-af74-ab71686b3c16

MachineCount                 : 0

MachineProfile               :

MasterImageVM                : Base.vm

MasterImageVMDate            : 17/05/2020 09:53:40

MemoryMB                     : 1024

Metadata                     : {Department = Sales}

MetadataMap                  : {[Department = Sales]}

ProvisioningSchemeName       : MyScheme

ProvisioningSchemeUid        : 7585f0de-192e-4847-a6d8-22713c3a2f42

ProvisioningSchemeVersion    : 1

TaskId                       : 00000000-0000-0000-0000-000000000000

VMMetadata                   : {0, 1, 0, 0...}

PersonalVDiskDriveLetter     :

PersonalVDiskDriveSize       : 0

UsePersonalVDiskStorage      : False

NetworkMaps                  : {0}

Scopes                       :

DedicatedTenancy             : False

GpuTypeId                    :

ResetAdministratorPasswords  : False

SecurityGroups               : {}

ServiceOffering              :

TenancyType                  : Shared

AzureAdJoinType              :

CurrentMasterImageUid        : c0571690-4f57-4476-901b-fe64d6aecb79

CustomProperties             :

IdentityType:                : ActiveDirectory

UseFullDiskCloneProvisioning : False

UseWriteBackCache            : True

WriteBackCacheDiskSize       : 24

WriteBackCacheMemorySize     : 256

Warnings                     : {}

WriteBackCacheDiskIndex      : 0

<!--NeedCopy-->

Description

Updates a provisioning scheme called “MyScheme” to use two processors on the VMs that are created from the provisioning scheme.

Example 2


C:\PS> Set-ProvScheme -ProvisioningSchemeName MyScheme -MachineProfile XDHyp:\HostingUnits\AzureHostingUnit\machineprofile.folder\RG.resourcegroup\TS.templatespec\1.0.templatespecversion

CleanOnBoot                  : True

ControllerAddress            : {ddcA.citrix.com,ddcB.citrix.com,ddcC.citrix2.com}

CpuCount                     :

DiskSize                     : 20

HostingUnitName              : AzureHostingUnit

HostingUnitUid               : 01a4a008-8ce8-4165-ba9c-cdf15a6b0501

IdentityPoolName             : idPool1

IdentityPoolUid              : 03743136-e43b-4a87-af74-ab71686b3c16

MachineCount                 : 0

MachineProfile               : XDHyp:\HostingUnits\AzureHostingUnit\machineprofile.folder\RG.resourcegroup\TS.templatespec\1.0.templatespecversion

MasterImageVM                : Base.vm

MasterImageVMDate            : 17/05/2020 09:53:40

MemoryMB                     : 1024

Metadata                     : {Department = Sales}

MetadataMap                  : {[Department = Sales]}

ProvisioningSchemeName       : MyScheme

ProvisioningSchemeUid        : 7585f0de-192e-4847-a6d8-22713c3a2f42

ProvisioningSchemeVersion    : 1

TaskId                       : 00000000-0000-0000-0000-000000000000

VMMetadata                   : {0, 1, 0, 0...}

PersonalVDiskDriveLetter     :

PersonalVDiskDriveSize       : 0

UsePersonalVDiskStorage      : False

NetworkMaps                  : {0}

Scopes                       :

DedicatedTenancy             : False

GpuTypeId                    :

ResetAdministratorPasswords  : False

SecurityGroups               : {}

ServiceOffering              :

TenancyType                  : Shared

AzureAdJoinType              :

CurrentMasterImageUid        : c0571690-4f57-4476-901b-fe64d6aecb79

CustomProperties             :

IdentityType:                : ActiveDirectory

UseFullDiskCloneProvisioning : False

UseWriteBackCache            : True

WriteBackCacheDiskSize       : 24

WriteBackCacheMemorySize     : 256

Warnings:                    : {}

WriteBackCacheDiskIndex      : 0

<!--NeedCopy-->

Description

Updates a provisioning scheme called “MyScheme” to use the machine profile called 1.0.

Example 3


C:\PS> Set-ProvScheme -ProvisioningSchemeName MyScheme -NetworkMapping @{"0" = "XDHyp:\HostingUnits\XenHU\Network 2.network"}

<!--NeedCopy-->

Description

Updates a provisioning scheme called “MyScheme” to explicitly attach NICs to the network named “Network 2” for new VMs that are created from the provisioning scheme.

Example 4


C:\PS> Set-ProvScheme -ProvisioningSchemeName MyScheme -MachineProfile "XDHyp:\HostingUnits\AwsHostingUnit\us-east-1a.availabilityzone\machine-profile-vm (i-00c55f1107b662c04).vm"

<!--NeedCopy-->

Description

Updates a provisioning scheme called “MyScheme” to use the machine profile from the aws ec2 instance - “machine-profile-vm (i-00c55f1107b662c04)”.

Example 5


C:\PS> Set-ProvScheme -ProvisioningSchemeName MyScheme -MachineProfile "XDHyp:\HostingUnits\AwsHostingUnit\machine-profile-lt (lt-06927522c36bg5698).launchtemplate\lt-06927522c36bg5698 (1).launchtemplateversion"

<!--NeedCopy-->

Description

Updates a provisioning scheme called “MyScheme” to use the machine profile from the version “1” of the aws launch template with name “machine-profile-lt” and id “lt-06927522c36bg5698”.

Set-ProvScheme