У меня есть скрипт, который предполагает преобразование неуправляемых дисков 400 vms в управляемые диски. Наша инфраструктура Azure построена таким образом, что соглашения об именах почти совпадают с именами виртуальной машины или схоже с тем, что, вероятно, совпадают, например, если у меня есть vm с именем E1PrGrp19VFe01, он находится в группе ресурсов E1PrGrp19Rg, поэтому я использую оператор ниже для сохранить имя RG внутри переменной, как показано ниже:
$VmCode = Read-Host "Partner/VM Code" (Will give a name of the VM)
$Rg = Get-AzureRmResourceGroup | Where-Object {$_.ResourceGroupName -like "*$VmCode*"} (this will store the name of the resource group)
Проблема в том, что когда я пытаюсь выполнить $ Rg, я ничего не получил, после этого, когда я запускаю цикл for для остановки всех vms в RG, я получаю следующую ошибку:
Stop-AzVM : Cannot validate argument on parameter 'ResourceGroupName'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At line:1 char:35
+ Stop-AzureRmVM -ResourceGroupName $Rg.ResourceGroupName -Name $Vm.Nam ...
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Stop-AzVM], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Azure.Commands.Compute.StopAzureVMCommand
Я не уверен, что я делаю неправильно, может кто-нибудь помочь мне с этим?