Private/Set-TagOnVM.ps1
function Global:Set-TagOnVM { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string] $VMName, [Parameter(Mandatory = $true)] [string] $TagName, [Parameter(Mandatory = $true)] [string] $TagValue ) process { $resource = Get-AzResource -ResourceGroupName $ResourceGroupName -Name $VMName $existingTags = $resource.Tags if ($existingTags.Count -ne 0) { $existingTags.Add($TagName, $TagValue) Set-AzResource -ResourceId $resource.Id -Tag $existingTags -Force | Out-Null } else { Set-AzResource -ResourceId $resource.Id -Tag @{$TagName = $TagValue } -Force | Out-Null } } } |