Как я могу получить список Vm в группе ресурсов? - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь получить все Vms в группе ресурсов, а затем отправить каждый элемент в функцию

$a = Get-AzureRmVM -ResourceGroupName Test2 | ft Name
foreach($output in $a) {Stop-AzRmVM -ResourceGroupName "Test2" -Name $output}

Я получаю это сообщение об ошибке

Start-AzureRmVM: Не удается преобразовать 'System.Object[] 'к типу' System.String ', требуемому параметром' Name '.Указанный метод не поддерживается.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Anish K правильно о параметре Name, ожидающем строку, а не массив объектов.

Однако вы также должны удалить | ft Name, потому что это только длявывод данных на консоль.

Я бы использовал ForEach-Object вот так (непроверено):

Get-AzureRmVM -ResourceGroupName 'Test2' | ForEach-Object {
    $_ | Stop-AzRmVM
}
0 голосов
/ 20 сентября 2019

В соответствии с ошибкой, вы передаете объект [] вместо строки.Ваша функция Stop-AzRmVm ожидает строку для Имя параметра.

Изменяет ваш скрипт, как показано ниже:

$a = Get-AzureRmVM -ResourceGroupName Test2 | ft Name
foreach($output in $a) {Stop-AzRmVM -ResourceGroupName "Test2" -Name $output.Name}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...