When performing large storage migrations, it may be useful to get a list of VMs and the datastore and/or folder they are located in. PowerCLI can provide this very quickly:
Get-VM | Select Name,@{N="Datastore";E={[string]::Join(',',(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}},@{N="Folder";E={$_.Folder.Name}}
You can further pipe this to other cmdlets (such as Where-Object to filter even more), or export it to a CSV.
You can also go into more detail and determine the location of each virtual disk (VMDK) of each VM:
Get-VM | Get-View | % { $name = $_.Name $_.Layout.Disk | % { New-Object PSObject -Property @{ Name = $name Disk = $_.DiskFile[0] } } }
As always you can adjust the snippet above further.