我有一组
收集的Azure Web App属性 $properties = (Invoke-AzureRMResourceAction -ResourceGroupName $ResourceGroup
-ResourceType Microsoft.Web/sites/Config -Name $Site/appsettings
-Action list -ApiVersion 2015-08-01 -Force).Properties
此外,我制作了一个哈希表来存储这些属性
$hashtable = @{}
$properties | Get-Member -MemberType NoteProperty | % { $hashtable[$_.Name] = $properties.($_.Name) }
我遇到的问题是将格式错误的属性更改为新值:
PS C:\> $hashtable
Name Value
---- -----
AzureAd:ClientId XXXXXX-1621-42ff-85cd-XXXXXXXXX
PS C:\> $hashtable.AzureAd:ClientId = "YYYYYY-1621-42ff-85cd-YYYYYYYY"
At line:1 char:14
+ $hashtable.AzureAd:ClientId = "YYYYYY-1621-42ff-85cd-YYYYYYY ...
+ ~~~~
Unexpected token ':ClientId' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
因此不需要命令Set-AzureRMWebApp -Name $Site -AppSettings $hashtable
。
是否有机会逃脱不良属性以执行脚本,还是在接下来选择正确的应用设置名称\变量时要小心?
答案 0 :(得分:0)
您可以将属性用双引号引起来-
$hashtable."AzureAd:ClientId" = "YYYYYY-1621-42ff-85cd-YYYYYYYY"
您也可以使用单引号(''
),因为属性中没有可替换的变量-
$hashtable.'AzureAd:ClientId' = "YYYYYY-1621-42ff-85cd-YYYYYYYY"