Will these powercli commands wait to happen or will they execute at the same time?

I have a simple script to move (Svmotion) some VMs - eg;

Get-VM “MyVM1“ |Move-VM -datastore (Get-datastore “MyDatastore1“)
Get-VM “MyVM2“ |Move-VM -datastore (Get-datastore “MyDatastore2“)
Get-VM “MyVM3“ |Move-VM -datastore (Get-datastore “MyDatastore3“)
Get-VM “MyVM4“ |Move-VM -datastore (Get-datastore “MyDatastore4“)

Open in new window


Will these powercli commands wait to happen or will they execute at the same time? What would I do to get them to execute at the same time?
LVL 1
ThaidogAsked:
Who is Participating?
 
Meir RivkinConnect With a Mentor Full stack Software EngineerCommented:
use background jobs:
$vm_list = "vm1","vm2","vm3"
$ds_list = "ds1","ds2","ds3"

for($i=0;$i<$vm.list.Length;$i++)
  # Define what each job does
  $ScriptBlock = {
Get-VM $vm_list[$i] |Move-VM -datastore (Get-datastore $ds_list[$i])
Start-Sleep 60
  }

  # Execute the jobs in parallel
  Start-Job $ScriptBlock
}

Get-Job

# Wait for it all to complete
While (Get-Job -State "Running")
{
  Start-Sleep 10
}

# Getting the information back from the jobs
Get-Job | Receive-Job

Open in new window

0
 
coraxalCommented:
@sedgwick - when you work with jobs, are those jobs processed by the local machine, or the remote machines? If by remote machines, do they have to have powershell? same version of powershell?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.