2017-02-08 10 views
1

Я пытаюсь получить все ВМ, где имя группы ресурсов виртуальной машины в массиве $ RGSAzure Powershell: Получить объекты, где свойство существует в массиве

$rgs = (Get-AzureRMResourceGroup | Where-Object { $_.Tags.Keys -eq 'FindMe' }).ResourceGroupName 
$vms = (Get-AzureRmVm | Where-Object {$_.ResourceGroupName (Enter logic here) }) 
foreach ($vm in $vms) 
{ 
    Write-Host $vm 
} 

Возможно ли это? Или лучший способ сделать это без создания вложенных циклов?

+3

'$ VMS = (Get-AzureRmVm | Where-Object {. $ _ ResourceGroupName -в $ RGS}) ' – Matt

ответ

0

Как сказал Мэтт, мы можем использовать этот PS скрипт, чтобы получить виртуальную машину в массиве:

PS C:\> $b 
GROUP 
GROUP1 
PS C:\> (Get-AzureRmVm | Where-Object {$b -contains $_.ResourceGroupName}) 


ResourceGroupName Name Location  VmSize OsType NIC ProvisioningState 
----------------- ---- --------  ------ ------ --- ----------------- 
GROUP    vm1 eastus Standard_A1 Linux vm1619   Succeeded 
GROUP    vm2 eastus Standard_A1 Linux vm2346   Succeeded 
GROUP1    vm3 eastus Standard_A1 Linux vm3554   Succeeded 
PS C:\> $vms = (Get-AzureRmVm | Where-Object {$b -contains $_.ResourceGroupName}) 

PS C:\> $vms 

ResourceGroupName Name Location  VmSize OsType NIC ProvisioningState 
----------------- ---- --------  ------ ------ --- ----------------- 
GROUP    vm1 eastus Standard_A1 Linux vm1619   Succeeded 
GROUP    vm2 eastus Standard_A1 Linux vm2346   Succeeded 
GROUP1    vm3 eastus Standard_A1 Linux vm3554   Succeeded 
+0

Просто проверьте, была ли предоставлена ​​предоставленная информация. Пожалуйста, дайте мне знать, если вы хотите получить дополнительную помощь. –