user1218240
user1218240

Reputation: 195

Replace one Tag from different resources in Azure resource group

I want to replace one tag value at all resources in one resource group. The value what should be changed comes from the resource group.

$rgname = "cldazcs...." 
$rg = Get-AzResourceGroup -Name $rgName
$rgTagsAll = $rg.Tags
$rgTagDedicated = $rg.tags.Responsible
$rgTagDedicated

$rgTags
$rgTags.Remove("RG_Description")
$resources = Get-AzResource -ResourceGroupName $rgName

$resources
Write-Output ""
Write-Output "=== The following Tags will be applied ==="
Write-Output $rgTagsAll
Write-Output "Dedicated:"$rgTagDedicated

foreach ( $resource in $ressources ) {
    Write-Output "=== Update the following Ressource"
    Write-Output $resource.Name
    Set-AzResource -ResourceId $resource.Id -Tag @{Responsible="$rgTagsDedicated"} -Force
}

After the script is running, the value from Tag Responsible in all resources is empty.

Upvotes: 0

Views: 1000

Answers (1)

Jim Xu
Jim Xu

Reputation: 23111

According to my test, we can use the following script to update resouce's tag

Connect-AzAccount
$rgname = "jimgroup" 
$rg = Get-AzResourceGroup -Name $rgName
$rgTagsAll = $rg.Tags
$rgTagDedicated = $rg.Tags.created_by
$rgTagDedicated


$resources = Get-AzResource -ResourceGroupName $rgName
foreach($resource in $resources){
   #check if the resouce has the tag
  if($resource.tags.ContainsKey("created_by")){
    #change the tag value
    $resource.tags.created_by=$rgTagDedicated
    Set-AzResource -ResourceId $resource.Id -Tag $resource.tags -Force
  }else{
    #add the tag
    $resource.tags.add("created_by",$rgTagDedicated)

    Set-AzResource -ResourceId $resource.Id -Tag $resource.tags -Force
  }


}

$resources = Get-AzResource -ResourceGroupName $rgName
$resources[0].Tags

enter image description here

Upvotes: 1

Related Questions