我在特定资源组中拥有 Azure 资源,但我确实需要确保所有资源都具有以下标签。
环境
成本_中心
部门
楼主
类型
到目前为止,检查每个资源都是手动过程,但我认为工作现已完成,但想知道是否有办法编写 powershell 脚本或 Azure 图形查询来检查特定资源组中的所有资源具有以下标签,如果没有突出显示缺少上面突出显示的任何标签的资源。
让我感到困惑的是,每个资源组都混合了多种资源类型,即应用程序服务、SQL、存储帐户等。如何捕获所有资源类型以检查标签是否到位并仅突出显示缺少的资源以上任何标签。
提前致谢。
查询资源组中缺少标签的资源
您可以使用下面的 PowerShell 脚本,我遵循了 Document1 和 Document2:
在我的例子中,给定两个资源组,您还可以使用
$rgs = Get-AzResourceGroup
获取所有资源组,并仅采用一个标签(hello),例如:
$rgs = @("rithpyser", "rithtest_group")
$ith_needed_tags = @("hello")
foreach ($r in $rgs) {
$all_res = Get-AzResource -ResourceGroupName $r
foreach ($rith_res in $all_res) {
$rgt = $rith_res.Tags.Keys
$mt = $ith_needed_tags | Where-Object { $_ -notin $rgt }
if ($mt.Count -gt 0) {
Write-Output "Hello Rithwik, Resource: $($rith_res.Name) in Resourec group : $r is missing tags: $($mt -join ', ')"
}
}
}
输出: