You can use the Get-ViewVC and Get-DesktopVM cmdlets to create and update linked-clone desktop pools.

In the following example, the Get-ViewVC cmdlet adds a linked-cloned desktop pool named lcdpool_1. The pool is managed by View Composer on a vCenter Server instanced named

Get-ViewVC -serverName | Get-ComposerDomain -domain VCDOM |
Add-AutomaticLinkedClonePool -pool_id lcdpool_1 -displayName "LCD Pool 1"
-namePrefix "lcp1-{n}-dt" -parentVMPath /AutoPoolVMs/parent
-parentSnapshotPath /AutoPoolSnapshots/parent1_snapshot -vmFolderPath /AutoConfig/VM_folder
-resourcePoolPath /AutoConfig/host/Resources
-datastoreSpecs [Aggressive,os,data]/host/datastore_1/lun04;/host/datastore_2/lun16
-dataDiskLetter "D" -dataDiskSize 100 -minimumCount 4 -maximumCount 10

You can provision all the desktops in advance by setting the -minimumCount and -maximumCount parameters to the same value. If you specify a persistent data disk, use an uppercase letter for the drive. Do not use a letter that already exists on the parent virtual machine for a drive such as A, B, or C, or a letter that conflicts with a network-mounted drive.

In the following example, the Get-ViewVC cmdlet updates the configuration of a linked-clone desktop pool named lcdpool_1.

Get-ViewVC -serverName | Get-ComposerDomain -domain VCDOM |
Update-AutomaticLinkedClonePool -pool_id lcdpool_1 -datastoreSpecs
-minimumCount 4 -maximumCount 20 -headroomCount 2 -powerPolicy Suspend -defaultProtocol PCOIP
-isUserResetAllowed $true

Because the datastores specified in the -datastoreSpecs parameter override the previous setting, you must specify any existing datastores in the parameter for the pool to continue to use those datastores.

You can use the Get-DesktopVM cmdlet to perform rebalance, refresh, and recompose operations.

Table 1. Examples of Rebalance, Refresh and Recompose Operations


Example View PowerCLI cmdlet Syntax

Rebalance desktops among the available datastores in a linked-clone desktop pool

Get-DesktopVM -pool_id lcdpool_2 | Send-LinkedCloneRebalance -schedule 2011-05-10:01:00:00 -forceLogoff $false -stopOnError $true

Refresh the operating system disk in each linked-clone desktop by restoring its original state and size

Get-DesktopVM -pool_id lcdpool_2 | Send-LinkedCloneRefresh -schedule "May 12 2011 01:15" -forceLogoff $true -stopOnError $true

Recompose all linked-clone desktops from a snapshot of the parent virtual machine

Get-DesktopVM -pool_id lcdpool_2 | Send-LinkedCloneRecompose -schedule ((Get-Date).AddHours(8)) -parentVMPath /AutoPoolVMs/parent2 -parentSnapshotPath /AutoPoolSnapshots/parent2_snapshot -forceLogoff $true -stopOnError $true