I wasn't aware of this but you can expand VHDs easily with Hyper-V. Of course, they can't be in use at the time, but afterwards a simple "diskpart" command with the VHD in question not mounted as the boot drive (i.e. You can't expand Drive C: if you booted Windows on that VHD as Drive C:).
Open the Edit Virtual Hard Disk Wizard by selecting Edit Disk... from the Hyper-V manager and select the virtual hard disk you want to expand.
Read more about it
here.
Sad but true, I used to use a little Ghost VM that ran off a CD and would do a sector-by-sector copy to a new larger VHD not too long ago. No need for that anymore!