<#
    .NOTES
    ===========================================================================
	 Created by:   	Alan Renouf
     Date:          March 27, 2018
	 Organization: 	VMware
     Blog:          virtu-al.net
     Twitter:       @alanrenouf
    ===========================================================================
    
	.DESCRIPTION
    This will allow you to create multiple workloads in the correct locations on VMware Cloud on AWS.

    .Example
    $vCenter = "vcenter.sddc-52-53-75-20.vmc.vmware.com"
    $vCenterUser = "cloudadmin@vmc.local"
    $vCenterPassword = 'VMware1!'
    $ResourcePool = "Compute-ResourcePool"
    $Datastore = "WorkloadDatastore"
    $DestinationFolder = "Workloads"
    $Template = "Gold_Linux_Template"
    $VMNamePrefix = "NEWVM"
    $NumofVMs = 100
    $RunASync = $true #Set this to $True to create the VMs and not wait for the result before starting the next one
#>

# ------------- VARIABLES SECTION - EDIT THE VARIABLES BELOW ------------- 
$vCenter = "vcenter.sddc-123456789.vmc.vmware.com"
$vCenterUser = "cloudadmin@vmc.local"
$vCenterPassword = '123456789'
$ResourcePool = "Compute-ResourcePool"
$Datastore = "WorkloadDatastore"
$DestinationFolder = "Workloads"
$Template = "Gold_Linux_Template"
$VMNamePrefix = "NEWVM"
$NumofVMs = 100
$RunASync = $true
# ------------- END VARIABLES - DO NOT EDIT BELOW THIS LINE ------------- 

# Connect to VMC vCenter Server
$VCConn = Connect-VIServer -Server $vCenter -User $vCenterUser -Password $vCenterPassword

1..$NumofVMs | Foreach-Object {
    Write-Host "Creating $VMNamePrefix$($_)"
    if ($RunASync){
        New-VM -Name "$VMNamePrefix$($_)" -Template $Template -ResourcePool $ResourcePool -Datastore $datastore -Location $DestinationFolder -RunAsync
    } Else {
        New-VM -Name "$VMNamePrefix$($_)" -Template $Template -ResourcePool $ResourcePool -Datastore $datastore -Location $DestinationFolder
    }
}
