Hyper-V PowerShell One-Line-Challenge
While digging through my notes I came across an exchange between a colleague and I - where we were challenging each other to come up with the most impressive (and functional) "Hyper-V PowerShell One Liner". Here is an example of a good one:
Get-Volume | ?{$_.DriveLetter -ne $null} | select @{N='Drive Letter';E={$_.DriveLetter}},@{N='Free Space (GB)';E={"{0:N2}" -f ($_.SizeRemaining / 1GB)}},@{N='Space Used By VHDs (GB)';E={$driveletter = $_.DriveLetter; "{0:N2}" -f ((Get-VMHardDiskDrive * | ? {$_.Path -match "^$driveletter" } | Get-VHD | Measure -sum FileSize | Select -exp sum)/1GB)}}
What does this one liner do? Well - let's run it and see:
If you pull it apart you can see that what it does is:
- Get all disks in the physical computer
- List the drive letters of each disk
- Report the free space on each disk (formatted to gigabytes)
- Finds all virtual hard disks that Hyper-V knows about on each disk and displays how much space they are using (formatted to gigabytes)
Very nice!
Cheers,
Ben
Comments
Anonymous
April 07, 2015
Hi Ben, as tweeted earlier, this little PoSH 1-liner was very useful documenting a all VM's paused host, however a word of warning - it doesn't work quite so well on a cluster node, lists the volumes, but no vhdx/vhd sizing. nice 1-liner all the same! thx!Anonymous
April 10, 2015
Hi Ben, is it possible to include CSVs in this? Best Regards, Jens