Если вы хотите запустить powershell в powershell runbook
, вы можете просто передать имена vm в виде строки и отделить их запятой, например, «vm1, vm2, vm3». Затем в коде Runbook разделите строку на массив, затем в цикле foreach работает с каждым vm.
Простой тест в runbook powershell:
param([string]$ResourceName,[string]$StorageAccount)
#parse the string to an array
$vms = $ResourceName.split(',')
#implement your logic here
foreach($r in $vms)
{
#output the vm name
$r
}
#output the storage account
$StorageAccount
Передайте параметры и запустите:
Для своего кода вы можете выполнить описанные выше шаги, ваш код в runbook должен выглядеть следующим образом:
param([string]$ResourceName,[string]$StorageAccount)
$vms = $ResourceName.split(',')
foreach ($resource in $vms) {
try {
#.....
$resources = Get-AzureRmResource -ResourceGroupName "samplerg" -ResourceName $resource
$restorejob = Restore-AzureRmRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName $StorageAccount -StorageAccountResourceGroupName "samplerg"
#....
}
catch {}
}