Quick post of something I ran into this week. When creating new VMs it makes sense to create disks that have a certain size in GB. But sometimes when migrating workload from one platform to another you might see some funky hard disk sizes like this.
{@{Name=Hard disk 1; CapacityGB=49,875}, @{Name=Hard disk 2; CapacityGB=49,875}}
Fixing this for a large number of VMs can be a tedious task. So let’s automate this using a Powershell function.
function RoundUp-CapacityGB {
[CmdletBinding(SupportsShouldProcess)]
Param(
[parameter(Mandatory=$true, ValueFromPipeline=$true)]$VMDisks
)
process {
foreach($VMDisk in $VMDisks){
write-host "Current size in GB`t: " -NoNewline;
write-host $VMDisk.CapacityGB -ForegroundColor Yellow
$Capacity = ([math]::round($VMDisk.CapacityGB,0))
write-host "New size in GB`t`t: " -NoNewline;
write-host $Capacity -ForegroundColor Green
Set-HardDisk -HardDisk $_ -CapacityGB $Capacity
}
}
}
This function even supports the use of a WhatIf parameter so you can safely test it before actually changing the disk size.
1 Comment
Mike Anderson · July 11, 2026 at 3:28 pm
Thanks for sharing this practical tip. Small details like rounding up virtual hard disk sizes can prevent unexpected issues during storage expansion, and articles like this are a great reminder that simple fixes can save administrators a lot of troubleshooting time.