首页 > 解决方案 > 在 AzureRM 中将 Find-AzureRmResource 替换为 Get-AzureRmResource 以标记资源

问题描述

我有一个脚本,它将资源组中的所有标签应用于组中的子资源。该脚本使用已从最新模块中删除和删除的 Find-AzureRmResource。它说它已被 Get-AzureRmResource 替换,但是我无法通过替换它来使其正常工作。我得到错误:

“Get-AzureRmResource:输入对象不能绑定到命令的任何参数,因为命令不接受管道输入,或者输入及其属性与接受管道输入的任何参数都不匹配。”

这是曾经工作的原始脚本:

$rgname = "rg123"

$group = Get-AzureRmResourceGroup $rgname
if ($group.Tags -ne $null) {
$resources = $group | Find-AzureRmResource
foreach ($r in $resources)
{
    $resourcetags = (Get-AzureRmResource -ResourceId $r.ResourceId).Tags
    foreach ($key in $group.Tags.Keys)
    {
        if (($resourcetags) -AND ($resourcetags.ContainsKey($key))) { $resourcetags.Remove($key) }
    }
    $resourcetags += $group.Tags
    Set-AzureRmResource -Tag $resourcetags -ResourceId $r.ResourceId -Force
}
}

这是我要替换的 find-azurermresource:

$resources = $group | Get-AzureRmResource -ResourceGroupName $rgname

我也尝试过使用 -ResourceType 的变体,但仍然遇到无法接受管道输入的相同错误。是否可以使用替换的 cmdlet Get-AzureRmResource 让这条线路再次运行?

标签: azurepowershell

解决方案


您可以立即使用以下内容,无需使用Get-AzureRmResourceGroup

$resources = Get-AzureRmResource -ResourceGroupName $rgname

这将从该特定组获取所有资源。


推荐阅读