Как получить значение TAG для подписки Azure с помощью PowerShell - PullRequest
2 голосов
/ 11 февраля 2020

Я могу назначить и просмотреть значение «тега» для моих различных Azure подписок на портале Azure.
Однако, когда я запрашиваю эти подписки с помощью PowerShell, я не могу найти свойство, относящееся к «тегам». " Это выглядит довольно странно, поскольку «Теги» перечислены как свойство всех объектов PowerShell ResourceGroup, а сами ресурсы имеют свойство «Теги».
Почему я не могу запрашивать «Теги» на уровне подписки, если могу назначить и просматривать их через портал Azure? Должен быть способ.

1 Ответ

1 голос
/ 13 февраля 2020

Согласно моему тесту, мы можем использовать следующие остальные API, чтобы получить теги Azure подписки. Для получения более подробной информации, пожалуйста, обратитесь к https://docs.microsoft.com/en-us/rest/api/resources/tags/getatscope#get -tags-on-a-subscription .

GET https://management.azure.com/subscriptions/<subscription id>/providers/Microsoft.Resources/tags/default?api-version=2019-10-01

Например

$tenantId="<tenant id>"
Connect-AzAccount -Tenant $tenantId


$resource="https://management.core.windows.net/"

$context=Get-AzContext

$token=$context.TokenCache.ReadItems() |Where-Object { ($_.TenantId -eq $tenantId) -and ($_.Resource -eq $resource)  }
$accesstoken=$token.AccessToken

# get the subscription in the tenant
$subs = Get-AzSubscription -TenantId $tenantId

foreach($sub in $subs){
  $url = "https://management.azure.com/subscriptions/$sub/providers/Microsoft.Resources/tags/default?api-version=2019-10-01"
  $result = Invoke-RestMethod -Uri $url  -Method Get -Headers @{"Authorization" = "Bearer $accesstoken"}

$result.properties 
Write-Host "--------------------------------------------"

}

enter image description here

...