首页 > 解决方案 > 获取 azure powershell 上其标签以(或包含)特定字符串开头的所有资源 - Azure Powershell

问题描述

我有近 20 个 azure 资源,其中 4 个已获得标签 @

{"Office1work"="work"}
{"Office2practice"="Practice"}
{"Office3practice"="Practice"}
{"Office4practice"="Practice"}

现在我想获取标签名称以关键字“Office”开头的资源。我知道通过 TagName 获取资源,例如“hello”,我只需使用以下命令,

获取 azureRmResource -TagName“你好”

如何使用 get-azurermresource 的 -Tagname 属性为我提供其标签以关键字 "Office" 开头的所有资源?

或者有没有其他好的方法来获取标签以特定字符串开头的所有资源?

谢谢 :)

标签: azurepowershellazure-powershell

解决方案


您可以使用此代码段:

$resources = Get-AzureRmResources
$resources.foreach{ if ($PSItem.tags.keys -match '^Office') { $PSItem } }

首先获取订阅中的所有资源,然后过滤掉所有标签与“Office”“表达式”不匹配的资源。

正如@LotPings 指出的那样,在不保存到临时变量的情况下进行过滤可能更有意义:

$resources = Get-AzureRmResources|Where-Object {$_.tags.keys -match "^Office"}

另外,我没有注意到您要求starts with过滤器,因此您应该使用^Office更严格的过滤器(如果需要)。


推荐阅读