Get-VM | ForEach-Object {
$name = $_.Name
$_.VMId | Get-VHD | Select-Object @{Name = 'Name'; Expression = {$name}}, *
} | Format-Table -AutoSize
Get-VM | Select-Object -PipelineVariable vm | ForEach-Object {
$vm.VMId | Get-VHD | Select-Object @{Name = 'Name'; Expression = {$vm.Name}}, *
} | Format-Table -AutoSize
both are great.