我正在尝试以这种方式将应用程序服务标记保存到存储表:
$srcapp = Get-AzWebApp -ResourceGroupName "myrg" -Name "myapp"
$srcapp.Tags
$srcapp.Tags是这样的类型:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Dictionary`2 System.Object
我正在尝试将其转换为JSON以将其保存到表中。以这种方式工作:
$jsonTag = ConvertTo-Json -InputObject $srcapp.Tags
当我尝试从表中获取它时:
$Setting = Get-AzTableRow -Table $cloudTable -PartitionKey $PartKey -RowKey mykey
我正确地得到了字符串形式的值。当我转换它时:
ConvertFrom-Json -InputObject $Setting.Tags
我得到了一个PSCustomObject,但是当我把它传递给new-aztag时,我得到了错误:
New-AzTag: Cannot bind parameter 'Tag'. Cannot convert value "@{xxx=xxx}" value of type "System.Management.Automation.PSCustomObject" to type "System.Collections.Hashtable"."
有办法把它转换成哈希表吗?我用的是powershell5.1
谢谢
1条答案
按热度按时间e37o9pze1#
要将其从
system.Management.Automation.PsCustomObject
转换为***system.Collections.hashtable
***,您可以使用下面给出的PowerShell命令。***注意:***请确保您已经安装了哈希表模块。如果没有安装,请使用以下命令安装并导入。
我修改了您的脚本如下:
我得到了一个
PSCustomObject
,当我最初尝试New-Aztag
命令时,收到了与这里所示相同的错误。因此,我使用
convertTo-Hashtable
命令将其转换为哈希表,现在它是system.collections.Hashtable
。现在我运行
New-AzTag
命令,它提示我输入ResourceID
。添加要添加标签的
resourceId
,它将成功添加,没有任何错误。在门户给定资源下添加标签: