Simple PowerCLI script to increase virtual disk size of a list of VMs


Simple PowerCLI script to increase virtual disk size of a list of VMs

I will have to increase the virtual disk size of some Horizon Full Clone VMs (*) so I asked a friend ;-) to write a script that asks the list and increase the size of the first virtual disk of 15 GBytes. I tested it in my lab and it works fine (never use AI generated programs without testing them! Use at your own risk anyway).

It can be easily enhanced i.e. asking the name of the vcenter or the size of the increment instead of cabling these vaules in the code. But for now it’s enough for me ;-)

# Assicurati di avere PowerCLI installato ed esegui: Connect-VIServer <vcenter_address>
# Richiede i nomi delle VM in input e aumenta il primo hard disk di 15GB

Connect-VIServer vcenter1.lan

# Chiede i nomi delle VM separati da virgola
$vmNames = Read-Host "Inserisci i nomi delle VM separati da una virgola"

# Converte l'input in un array
$vmList = $vmNames -split "," | ForEach-Object { $_.Trim() }

# Loop su ogni VM
foreach ($vmName in $vmList) {
# Ottiene la VM
$vm = Get-VM -Name $vmName -ErrorAction SilentlyContinue
if (-not $vm) {
Write-Host "⚠ La VM '$vmName' non è stata trovata!" -ForegroundColor Red
continue
}

# Ottiene il primo hard disk della VM
$disk = Get-HardDisk -VM $vm | Select-Object -First 1
if (-not $disk) {
Write-Host "⚠️ Nessun hard disk trovato per la VM '$vmName'!" -ForegroundColor Red
continue
}

# Calcola la nuova dimensione
$newSizeGB = $disk.CapacityGB + 15

# Espande il disco
Write-Host "➡️ Espansione del disco '$($disk.Name)' della VM '$vmName' da $($disk.CapacityGB) GB a $newSizeGB GB..."
Set-HardDisk -HardDisk $disk -CapacityGB $newSizeGB -Confirm:$false

Write-Host "✅ Espansione completata per VM '$vmName'!" -ForegroundColor Green
}

Write-Host "🎯 Operazione completata!"

Write-Host "🔌 Disconnessione da vCenter..."
Disconnect-VIServer -Confirm:$false
Write-Host "✅ Disconnesso con successo!"

(*) running Horizon with Full Clones is like driving a sports bike/car in a park :-\