Azure Powershell - через НЕСКОЛЬКО подписок в советнике - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть «читатель биллинга» доступ к нескольким сотням подписок в советнике.

Я пытаюсь получить список виртуальных машин и их размеры по всем подпискам.

Так что в настоящее времякогда я запускаю «Get-AzureRMSubscription», он показывает мне все подписки (их сотни), но я не уверен, как на самом деле запустить скрипт для всех подписок?

Было бы здорово получить«Get-AzureRMVM» для всех них

Есть предложения?Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Вы не просили, но для классических ресурсов у нас следующий скрипт выполняется регулярно и его выходные данные хранятся в базе данных SQL.

$subscriptions = Get-AzureSubscription
foreach ($sub in $subscriptions)
{
    $sub | Select-AzureSubscription
    Get-AzureService | % {
           Get-AzureDeployment -ServiceName $_.ServiceName 
        } | % { 
          New-Object -TypeName 'PSObject' -Property @{ 'ServiceName' = $_.ServiceName; 'Addresses' = $_.VirtualIPs.Address; } 
        } | sort Addresses | ft
}

% равно ForEach-Object, ft is Format-Table хотя некоторые добрые души могут прийти и попытаться отредактировать это и усложнить повторное использование.Вы можете добавлять / удалять свойства в операторе select, чтобы при необходимости адаптировать вывод.Попробуйте это в одной подписке, чтобы уточнить ваши потребности, а затем создайте сценарий, чтобы облегчить его повторное использование.

0 голосов
/ 04 декабря 2018

Недавно мы выпустили Azure Resource Graph для поддержки этих типов поиска по нескольким подпискам.Смотри документацию здесь https://docs.microsoft.com/en-us/azure/governance/resource-graph/overview

0 голосов
/ 04 декабря 2018

Вы можете сделать что-то вроде этого:

$azureSubs = Get-AzureRMSubscription
$azureSubs | ForEach-Object {Select-AzureRMSubscription $_ | Out-Null; Get-AzureRMVM -WarningAction SilentlyContinue}

По сути, вы устанавливаете переменную массива для хранения всей вашей подписки Azure и передаете ее в командлет ForEach-Object для итерации всех объектов вмассив.Затем вы передаете его командлету Get-AzureRMVM для получения списка всех виртуальных машин в каждой подписке.

Это определенно не оптимизировано для повышения производительности, и могут быть более эффективные решения, но, по крайней мере, вы можете запустить его и забыть о нем..

Причиной действия Out-Null и -WarningAction является подавление ненужных выходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...