2016-01-11 2 views
1

Я хочу экспортировать XML-файл, содержащий все облачные сервисы и Vms в каждой облачной службе.Как перечислить все облачные сервисы в Azure PowerShell, а затем зациклировать каждую облачную службу, чтобы узнать, сколько vm в ней

+0

$ = Get список каналов-AzureService Еогеасп ($ служба в $ список каналов) { $ vmList = Get-AzureVM -ServiceName $ service.ServiceName Еогеасп ($ vm in $ vmList) {........} } Я пробовал этот скрипт, а затем создавал файл Xml, я думаю, что нашел свой путь: есть ли другой способ для краткости? –

ответ

1

Я бы назвал только Get-AzureVM один раз, чтобы оптимизировать обработку. Впоследствии я собирал и выводил команды PowerShell, которые быстрее, чем фильтрация с помощью команд Azure PowerShell.

И с группировкой вы также получите ответ на свой вопрос в своем названии: сколько виртуальных машин находятся в облачной службе? Это просто получить из свойства Count.

$allVMs = Get-AzureVM 

$allVMs | Group-Object -Property ServiceName 

<# Output 
Count Name      Group                                 
----- ----      -----                                 
    2 pksttest1     {Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVMRoleListContext, Microsoft.WindowsAzure.Commands.ServiceManage... 
    1 pksttest2     {Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVMRoleListContext}             
#> 

$services = Get-AzureVM | Group-Object -Property ServiceName 

foreach ($service in $services) { 
    # Output cloud service name 
    "Cloud Service '$($service.Name)'" 

    # Output VMs in that cloud service 
    foreach ($vm in $service.Group) { 
     "VM '$($vm.HostName)'" 
    } 
} 

<# Output 
Cloud Service 'pksttest1' 
VM 'host1' 
VM 'host3' 
Cloud Service 'pksttest2' 
VM 'host2' 
#> 

В вашей выборке вы вызываете API Azure Management Service один раз, чтобы получить все облачные сервисы, а затем снова для каждой службы облака, чтобы получить виртуальные машины. С Get-AzureVM вы получаете уже все необходимые данные.

я опубликовал образец фрагмент кода на GitHub Gist: https://gist.github.com/pkirch/1ec6f3c1ca057b8beefb

+0

Большое спасибо, это действительно большая помощь для меня, я из Китая в Пекине, а Microsoft Azure не так популярен, поэтому я вряд ли смогу найти помощь у людей рядом со мной или с веб-сайтом. И теперь я хочу найти vm по подсети в лазурной силе, можете ли вы показать мне путь! –