更新多个资源的Azure资源标记
我正在尝试更新/更改Azure环境中多个资源的某些标记。以“Environment”标记及其值拼写错误为“Non-Prodd”为例,如果有多个资源需要此更新,脚本将无法工作。我需要它来用不正确的标记值“Non-Prodd”更新每个资源这是我的脚本:更新多个资源的Azure资源标记,azure,powershell,Azure,Powershell,我正在尝试更新/更改Azure环境中多个资源的某些标记。以“Environment”标记及其值拼写错误为“Non-Prodd”为例,如果有多个资源需要此更新,脚本将无法工作。我需要它来用不正确的标记值“Non-Prodd”更新每个资源这是我的脚本: $r = (Get-AzResource -Tag @{Environment="Non-Prodd"}).Name $tags = (Get-AzResource -Name $r).Tags $tags.environment = "Non-P
$r = (Get-AzResource -Tag @{Environment="Non-Prodd"}).Name
$tags = (Get-AzResource -Name $r).Tags
$tags.environment = "Non-Prod"
Get-AzResource -resourcename $r | Set-AzResource -Tag $tags -Force
对于这个PowerShell新手,任何意见都将不胜感激 如果您只是将环境的标签值从“非产品”修改为“非产品”,请尝试以下操作:
$rs = get-azresource -TagName Environment
foreach($r in $rs){
if($r.Tags.Environment -eq 'Non-Prodd'){
$r.Tags.Environment = "Non-Prod"
Set-AzResource -ResourceId $r.ResourceId -Tag $r.Tags -Force
}
}
您可能是指标记名,而不是值?或者哪个部分不能正常工作?标签是环境,值是非Prodd。如果我想为多个资源将该值更改为Non-Prod,则上面的脚本不起作用。只有当一个资源的标记值不正确时,它才会起作用。标记名将保持不变。好吧,您没有更改标记名,为什么要更改?至于另一部分,我还是不明白。我认为您正在使用第一个get azresource根据标记值进行筛选,因此这是预期的情况是,我有大约50个资源的环境标记的标记值不正确。我正在尝试使用脚本更新所有资源,同时保留它们的当前标记及其值。您是正确的,我正在尝试根据不正确的标记值筛选资源。然后将其当前标记放入变量中,省略旧的环境标记,然后重新应用所有标记,包括新的环境标记。我在门户网站上做这件事,但它变得很烦人,需要一个方便的脚本在任何情况下都能做到。好吧,如果你能根据一些标准找到你感兴趣的资源,这应该很容易谢谢你,Stanley。这正是我所需要的。欢迎光临,祝你度过愉快的一天!