获取其标签以(或包括)特定字符串开头的azure powershell上的所有资源-Azure Powershell

时间:2018-11-11 04:27:39

标签: azure powershell azure-powershell

我几乎有20种资源处于天蓝色状态,其中4种已获得标签@

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

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

  

get-azureRmResource -TagName“ Hello”

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

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

谢谢:)

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码段:

$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作为更严格的过滤器(如果需要)。