I needed to make an automated script for configuring the VM’s hard disk 1 to a size of 100 GB, specifically targeting the C partition on a Windows server. Please refer to the usage instructions below for the script, which includes relevant parameters.
Usage:
.\increase-partition.ps1 -vcenter vcsa.local -username * -password * -server “server_fqdn”
Script
#requires -modules VMware.VimAutomation.Core
param (
[CmdletBinding()]
[Parameter(Mandatory = $true)]
[string]$VCenter,
[Parameter(Mandatory = $true)]
[string]$Username,
[Parameter(Mandatory = $true)]
[string]$Password,
[Parameter(Mandatory = $true)]
[string]$server
)
Import-Module -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue
Set-PowerCLIConfiguration -ProxyPolicy NoProxy -DefaultVIServerMode multiple -Scope User -InvalidCertificateAction ignore -Confirm:$false | Out-Null
# Connection to vCenter
try {
Connect-VIServer -Server $VCenter -User $Username -Password $Password -ErrorAction Stop | Out-Null
}
catch [VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin] {
Write-Host "Cannot connect to $VCenter with provided credentials" -ForegroundColor Red
Continue
}
catch [VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViServerConnectionException] {
Write-Host "Cannot connect to $VCenter - check IP/FQDN" -ForegroundColor Red
Continue
}
catch {
Write-Host "Cannot connect to $VCenter - Unknown error" -ForegroundColor Red
Continue
}
Get-HardDisk -server $vcenter -VM $computer | Where-Object {$_.Name -eq "Hard Disk 1"} | Set-HardDisk -CapacityGB "100" -confirm:$false
Disconnect-VIserver -Server $vcu -Confirm:$false