I do have PowerCLI6.5R1 running on Windows10. I've been testing commands using a cmd prompt, so I don't need to wait for the scheduler.
At this point I only run the powerCLI script manually during maintenance period from the VMwarePowerCLI interface.
Write-Host "The csv file includes the following headers Name, startDS, Newstore1, Newstore2";
Write-Host "You have selected to move all drives based on a csv file. I will proceed shortly.";
Write-Host "To stop at any time select Ctrl C.";
Sleep -s 2
Write-Host "";
Write-Host "I will not move if the destination dive is over 75% full, or if the drive belongs to a production VM.";
Write-Host "";
Sleep -s 2
$csv = Import-csv c:\tmp\VMfromDatastore.csv
foreach ($line in $csv)
{#Write-Host "$line.Name"; #debug line
IF ($line.Name -like '*prod*')
{Write-Host "Skipped as this is a production VM";
continue}
#StArT of datastore capacity check
Write-Host "Checking DS1";
$destinationDSfs = [math]::Round(((Get-Datastore | where {$_.Name -eq $line.Newstore1}| Get-View).Summary.FreeSpace)/1073741824)
$destinationDScap = [math]::floor(((Get-Datastore | where {$_.Name -eq $line.Newstore1}| Get-View).Summary.Capacity)/1073741824)
$sizeOFmovingHD = (Get-HardDisk -vm $line.Name | where {$_.filename -match $line.startDS}).CapacityGB
$sizeOFmovingHD = ($sizeOFmovingHD|Measure-Object -sum).sum
$precentFS = [math]::floor(100*(($destinationDSfs-$sizeOFmovingHD)/$destinationDScap));
IF ($precentFS -ge 25) { #if >25% free space move to Newstore1
Get-HardDisk -vm $line.Name | where {$_.filename -match $line.startDS} |Move-HardDisk -Datastore $line.Newstore1 -Confirm:$false -whatif} #heavylifting line
Else { #checking 2nd Datastore
Write-Host "Checking DS2";
$destinationDSfs = [math]::Round(((Get-Datastore | where {$_.Name -eq $line.Newstore2}| Get-View).Summary.FreeSpace)/1073741824)
$destinationDScap = [math]::floor(((Get-Datastore | where {$_.Name -eq $line.Newstore2}| Get-View).Summary.Capacity)/1073741824)
$sizeOFmovingHD = (Get-HardDisk -vm $line.Name | where {$_.filename -match $line.startDS}).CapacityGB
$sizeOFmovingHD = ($sizeOFmovingHD|Measure-Object -sum).sum
$precentFS = [math]::floor(100*(($destinationDSfs-$sizeOFmovingHD)/$destinationDScap));
IF ($precentFS -ge 25) { #if >25% free space move to Newstore2
Get-HardDisk -vm $line.Name | where {$_.filename -match $line.startDS} |Move-HardDisk -Datastore $line.Newstore2 -Confirm:$false -whatif} #heavylifting line
Else { Write-Host "Skipped due to space limitation."
continue} #If datastore will be more than 75% full after move, skiped VM move
} #end of Else checking 3rd Datastore
} #end of Else checking 2nd Datastore
#End of datastore capacity check
Sleep -s 5} #end of foreach loop
Write-Host "";
Write-Host "All servers in c:\tmp\VMfromDatastore.csv either moved or skiped due to VM type or space restrictions on new server."
Write-Host "Thank you, and have a nice day";
Write-Host "End of line";