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 vc.mydom.int.

Get-ViewVC -serverName vc.mydom.int | 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 vc.mydom.int | Get-ComposerDomain -domain VCDOM |
Update-AutomaticLinkedClonePool -pool_id lcdpool_1 -datastoreSpecs
[Conservative,os,data]/host/datastore_1/lun04;/host/datastore_2/lun16;/host/datastore_2/lun22
-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

Task

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