Azure PowerShell设置标记失败

时间:2015-12-01 20:25:32

标签: powershell azure virtual-machine azure-powershell

使用1.0.1,运行以下脚本不会产生错误。但是,在预览门户GUI中查看VM标签后,标签不会显示。我错过了什么?

$tags = (Get-AzureRmResource -ResourceGroupName "myresourcegroup" -ResourceType "Microsoft.Compute/virtualMachines"   -Name "myserver").Tags
$tags += @{Name1="name1";Value1="value1"}
$tags += @{Name2="name2";Value2="value2"}
$tags += @{Name3="name3";Value3="value3"}
$tags += @{Name4="name4";Value4="value4"}
Set-AzureRmResource  -ResourceGroupName "myresourcegroup" -Name "myserver" -Tag $tags -ResourceType "Microsoft.Compute/virtualMachines"

确认:

Are you sure you want to update the following resource:
/subscriptions/{guid}/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myserver
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

输出:

Name              : b5bd3server044
ResourceId        : /subscriptions/{guid}/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myserver
ResourceName      : myserver
ResourceType      : Microsoft.Compute/virtualMachines
ResourceGroupName : myresourcegroup
Location          : eastus2
SubscriptionId    : {guid}
Tags              : {}
Properties        : @{VmId={guid}; HardwareProfile=; StorageProfile=; OsProfile=; NetworkProfile=;
                    DiagnosticsProfile=; ProvisioningState=Succeeded}

1 个答案:

答案 0 :(得分:1)

我已经测试了您的代码并找出了问题的根本原因。

这是因为你的新标签对象属性是错误的,即Name1,Value1 ......

您应该仅使用名称作为标记属性。

$tags += @{Name="name1";Value="value1"}
$tags += @{Name="name2";Value="value2"}
$tags += @{Name="name3";Value="value3"}
$tags += @{Name="name4";Value="value4"}

只需修复此代码,您的代码就可以正常运行。

以下是Microsoft在使用Azure资源标记时提供的一个很好的资源。

Using tags to organize your Azure resources

希望它有所帮助。