6.2

Table Of Contents
if($VMExists -eq $lvm.Name )
{
$Exists = $true
}
}
return $Exists
}
function Disable_VM_Console()
{
Param($VMToDisableConsole)
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$extra = New-Object VMware.Vim.optionvalue
$extra.Key="RemoteDisplay.maxConnections"
$extra.Value="0"
$vmConfigSpec.extraconfig += $extra
$vm = Get-VM $VMToDisableConsole | Get-View
$vm.ReconfigVM($vmConfigSpec)
}
function Delete_VM()
{
Param($VMToDelete)
Write-Host "Deleting VM $VMToDelete"
Get-VM $VMToDelete | where { $_.PowerState –eq "PoweredOn" } | Stop-VM –confirm:$false
Get-VM $VMToDelete | Remove-VM –DeleteFromDisk –confirm:$false
}
#------------------------- Main Script -------------------------
$vcAddress = Read-Host 'Your vCenter address'
$vcAdmin = Read-Host 'Your vCenter admin user name'
$vcPassword = Read-Host 'Your vCenter admin user password' -AsSecureString
$vcPassword =
[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStrin
gToBSTR($vcPassword))
$cloneType = Read-Host 'Clone Type ("linked" or "full") '
$disableVMConsole = Read-Host 'Disable vSphere VM Console ("yes" or "no", recommend "yes") '
$csvFile = '.\CloneVMs.csv'
# Check that user passed only linked or full clone
if (($CloneType.length >0) -and ($CloneType -ne "linked" -or $CloneType -ne "full"))
{
write-host -ForeGroundColor Red "Clone type supports only 'linked' or 'full' (case
sensitive)"
exit
}
if (($disableVMConsole.length >0) -and ($disableVMConsole -ne "yes" -or $disableVMConsole -ne
"no"))
{
write-host -ForeGroundColor Red "Disable vSphere VM Console supports only 'yes' or 'no'
(case sensitive)"
exit
}
#check if file exists
if (!(Test-Path $csvFile))
Chapter 3 Bulk Deployment of Horizon 6 for Linux Desktops
VMware, Inc. 37