Number of VMs in Datastore:

Get-Datastore | Select Name, @{N="NumVM";E={@($_ | Get-VM).Count}} | Sort Name

The following script was used to add the datastore’s from a csv file :

$CSVFile = "C:\Temp\Test.csv" ## Where Test.csv is the csv file from where you want to copy from 
$MYESXHost = "Esxi.local" 
$VMHBA = "vmhba2:0:"

Connect-VIServer VCENTERSERVER ##vCenter Server 
$CSV = Import-CSV $CSVFile ## Importing CSV 
$ESXHost = Get-VMHost $MYESXHost 
$ESXHost |Get-VMHostStorage -RescanAllHBA 
Foreach ($Item in $CSV){ 
 $HostID = $Item.HostId 
 $LunID = $Item.LunID 
 Write "Creating SAN_HOST$($HostID)_LUN$($LunID)…" 
 $ESXHost |New-Datastore -Vmfs -Name "SAN_HOST$($HostID)_LUN$($LunID)" -Path "$($VMHBA)$($HostID)" 
}

List all the VMDK files for VMs stored on your local storage:

Get-Datastore |where {$_.Name -match “local“} |Get-VM |Get-HardDisk |select Filename |Export-Csv c:\Test.csv

You can also add multiple names for your local storage by added them with a | .

Get-Datastore |where {$_.Name -match “store|local|storage“} |Get-VM |Get-HardDisk |select Filename |Export-Csv c:\Test.csv