Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新多个资源的Azure资源标记_Azure_Powershell - Fatal编程技术网

更新多个资源的Azure资源标记

更新多个资源的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

我正在尝试更新/更改Azure环境中多个资源的某些标记。以“Environment”标记及其值拼写错误为“Non-Prodd”为例,如果有多个资源需要此更新,脚本将无法工作。我需要它来用不正确的标记值“Non-Prodd”更新每个资源这是我的脚本:

$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。这正是我所需要的。欢迎光临,祝你度过愉快的一天!