У меня есть скрипт, который изменяет информацию о сети определенных виртуальных машин, однако он работает последовательно.Поскольку существует сотни виртуальных машин, я хочу, чтобы все виртуальные машины выполняли команду одновременно, чтобы сэкономить время.Также, как мне добавить invoke-vmscript в блок скриптов с внешними переменными.Я пробовал несколько вещей, но, похоже, не работает хорошо.Скрипт запускается в системе, использующей powercli 10 в Linux, и никакие дополнительные модули не могут быть установлены
Ниже приведен код, любая помощь будет высоко ценится
$test=get-vm -name testvm* |sort-object
$fip='192.168.10.41'
$f=$fip.Split(".")|select -first 3
$s=[system.String]::join(".",$f)
$l=$fip.Split(".")|select -last 1
foreach ($vm in $test) {
Write-Host "$vm $s.$l"
do {start-sleep -s 2; write-host " $vm not ready yet" ; $tstatus=(get-vm
$vm).extensiondata.Guest.ToolsStatus;}while($tstatus -ne "toolsOk");
invoke-vmscript -ScriptText "sed -i '14,20 d' /etc/network/interfaces" -
ScriptType bash -VM $vm -GuestUser admin -GuestPassword Welcome!}
$ipscript = "sed -i -e 's/address *.*.*.*/address $s.$l/g'
/etc/network/interfaces"
write-host " Adding IP "
invoke-vmscript -ScriptText $ipscript -ScriptType bash -VM $vm -GuestUser
$GuestUserName admin -GuestPassword Welcome!
Start-Sleep -s 2
Restart-VM -VM $vm -RunAsync -Confirm:$false
$l=[int]$l+1
}