我正在寻找一个 PowerShell 脚本,用于获取 Azure 中不具有特定标记名/值的资源列表,我拥有用于此目的的 cmdlet,如下文所述,但不知道如何使用函数、参数等创建完整的脚本。
请帮忙。
非常感谢,
$Tags = @{"environment"="Terraform Demo"}
Get-AzResource | Where-Object $Tags -eq $null | Select-Object -Property Name, ResourceType
如果不需要,请帮我纠正这个逻辑。提前致谢。
最佳答案
如果您想接收根本没有配置任何标签的资源,您可以使用以下查询:
Get-AzResource | Where-Object {$_.Tags -eq $null}
如果您想接收环境标签设置为 $nulll 的资源,您可以使用以下查询:
Get-AzResource | Where-Object {$_.Tags.environment -eq ''}
相反,如果您想查找没有标签组合"environment"= "Terraform Demo"
的资源,您可以使用:
Get-AzResource | Where-Object {$_.Tags.environment -ne 'Terraform Demo'}
您可能还想检查是否切换到资源图查询,因为在跨多个订阅进行搜索时不必更改上下文。 检查未配置环境标签的资源的工作方式如下:
Search-AzGraph -Query "Resources | where tags.environment=~'' | project name"
后者需要 Az.ResourceGraph
模块。详情请参阅此处:https://learn.microsoft.com/en-us/azure/governance/resource-graph/samples/starter?tabs=azure-powershell#list-tag
关于azure - 如何使用 azure powershell 识别标记名称和值的未标记资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73203532/