如何在 Azure Web 应用程序设置中使用 PowerShell 转义错误命名的 属性
How to escape a badly-named property using PowerShell in Azure Web App app settings
我有一组由
收集的 Azure Web App 属性
$properties = (Invoke-AzureRMResourceAction -ResourceGroupName $ResourceGroup
-ResourceType Microsoft.Web/sites/Config -Name $Site/appsettings
-Action list -ApiVersion 2015-08-01 -Force).Properties
此外,我创建了一个散列 table 来存储这些属性
$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
。
是否有机会逃脱可怜的 属性 以执行脚本,或者我接下来应该在选择正确的应用程序设置时小心 name\variable?
您可以像这样将属性括在双引号内 -
$hashtable."AzureAd:ClientId" = "YYYYYY-1621-42ff-85cd-YYYYYYYY"
您也可以使用单引号(''
),因为在您的 属性 -
中没有要替换的变量
$hashtable.'AzureAd:ClientId' = "YYYYYY-1621-42ff-85cd-YYYYYYYY"
我有一组由
收集的 Azure Web App 属性$properties = (Invoke-AzureRMResourceAction -ResourceGroupName $ResourceGroup
-ResourceType Microsoft.Web/sites/Config -Name $Site/appsettings
-Action list -ApiVersion 2015-08-01 -Force).Properties
此外,我创建了一个散列 table 来存储这些属性
$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
。
是否有机会逃脱可怜的 属性 以执行脚本,或者我接下来应该在选择正确的应用程序设置时小心 name\variable?
您可以像这样将属性括在双引号内 -
$hashtable."AzureAd:ClientId" = "YYYYYY-1621-42ff-85cd-YYYYYYYY"
您也可以使用单引号(''
),因为在您的 属性 -
$hashtable.'AzureAd:ClientId' = "YYYYYY-1621-42ff-85cd-YYYYYYYY"