Tagging in Azure is a massively useful feature. I have customers who are interested in identifying resources for billing but they are also a very useful tool for control. Resources can be grouped by tag and then a script can be used to apply a function to all machines or services with the same tag.
In the example below I call a variable that looks for Azure resources where the type is identified as a Microsoft virtual machine. Calling this function enables me to extract a range of information. (I fact this script then goes on and uses the ResourceId too)
As referenced in Using tags to organize your Azure resources tags are updated as a whole so if you want to add additional tags you first have to call the existing tags. In the example below I am adding the new tag to my existing tags.
Finally we are looping this for each vm and applying via a set command.
Hope this is of use to you, happy tagging :-)!
$FindVMs = Find-AzureRmResource | where {$_.ResourceType -like "Microsoft.Compute/virtualMachines"} $Tags = (Get-AzureRmResource -ResourceId $ResourceId).Tags $Tags += @{ Owner = "wade" } Foreach ($vm in $Findvms) { $ResourceId = $VM.ResourceId Set-AzureRmResource -Tag $Tags -ResourceId $ResourceId -Force }
Disclaimer: Please note although I work for Microsoft the information provided here does not represent an official Microsoft position and is provided as is.