我有一个脚本,它将资源组中的所有标签应用于组中的子资源。该脚本使用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使此行再次运行?
$resources = Get-AzureRmResource -ResourceGroupName $rgname
这将从特定组中获取所有资源。