如何在Azure资源组中获取没有标记的所有Azure资源

时间:2017-09-14 16:17:24

标签: azure azure-resource-group azure-devtest-labs

在我的Azure开发/测试实验室(DTL)中,有许多资源未被标记。如何获取DTL /资源组下所有未标记资源的列表?

5 个答案:

答案 0 :(得分:2)

这是一个简单的PowerShell循环来获取未标记的资源。

$resources = Get-AzureRmResource
foreach($resource in $resources)
{
    if ($resource.Tags -eq $null)
    {
        echo $resource.Name, $resource.ResourceType
    }
}

here描述了查询此信息以及以编程方式或作为资源部署的一部分设置标记的其他方法。

如果您想避免以未标记资源结束的情况,可以强制执行customized policy所有资源都应具有特定标记的值。

答案 1 :(得分:1)

link有此问题的解决方案。它精美地解释了使用PowerShell分配和查询标签。

$ resourceGroupName ='InternalReportingRGDev'

$ azureRGInfo = Get-AzureRmResourceGroup -Name $ resourceGroupName foreach($ azureRGInfo中的$ item)

{

Find-AzureRmResource -ResourceGroupNameEquals $ item.ResourceGroupName | ForEach-Object {Set-AzureRmResource -ResourceId $ PSItem.ResourceId -Tag $ item.Tags -Force}

}

答案 2 :(得分:0)

< #Bellow是用于查找未标记资源的PowerShell脚本 - 您可以根据您的要求更改脚本。 希望必须有所帮助。 !谢谢#>

Write-Host "List all resource where Tag value is not Set"
Write-Host "********************************************"
#Fetch all resource details
$resources=get-AzureRmResource
foreach ($resource in $resources) {
    $tagcount=(get-AzureRmResource | where-object {$_.Name -match $resource.Name}).Tags.count
    if($tagcount -eq 0) {
        Write-Host "Resource Name - "$resource.Name
        Write-Host "Resource Type and RG Name : " $resource.resourcetype " & " $resource.resourcegroupname "`n"
    }
 }

答案 3 :(得分:0)

以下是惯用的PowerShell,以补充@huysmania的答案,该答案以过程语言思维方式表示(并已针对新的PowerShell Az cmdlet更新):

Get-AzResource | Where-Object Tags -eq $null | Select-Object -Property Name, ResourceType

和简洁(别名)形式:

Get-AzResource | ? Tags -eq $null | select Name, ResourceType

答案 4 :(得分:0)

我通常只运行此命令以使用Get-AzResource输出未标记资源的表。它使用Where-Object使用标签$null 为空的Azure资源进行筛选。

Get-AzResource `
    | Where-Object {$null -eq $_.Tags -or $_.Tags.Count -eq 0} `
    | Format-Table -AutoSize

如果要列出特定资源组的未标记资源,则只需将-ResourceGroupName开关添加到Get-AzResource

$resourceGroupName = "My Resource Group"

Get-AzResource -ResourceGroupName $resourceGroupName `
    | Where-Object {$null -eq $_.Tags -or $_.Tags.Count -eq 0} `
    | Format-Table -AutoSize

注意::上面使用的是更新的Azure PowerShell Az module,它是AzureRM的替代。