我想使用任意参数调用Set-AzureRmAppServicePlan,参数列表是在运行时定义的,并且不是静态设置的。
在其他语言(如Perl)中,我会为此使用Hash,但是即使我知道Powershell支持HashTables,我也会在Powershell中陷入困境。
以下示例不起作用
$params = @{}
$params.add('-WorkerSize', 'Small');
$params.add('-NumberofWorkers', '2');
Set-AzureRmAppServicePlan -ResourceGroupName 'RG1' -Name 'AppServicePlna1' $params
我从Azure收到Set-AzureRmAppServicePlan : Long running operation failed with status 'BadRequest'.
错误。
答案 0 :(得分:1)
PowerShell确实支持您尝试做的事情。它被称为splatting。
在您的情况下,您有轻微的错字。您所需要做的就是在此行中将$
更改为@
:
Set-AzureRmAppServicePlan -ResourceGroupName 'RG1' -Name 'AppServicePlna1' $params
工作版本如下:
Set-AzureRmAppServicePlan -ResourceGroupName 'RG1' -Name 'AppServicePlna1' @params
答案 1 :(得分:0)
每个问题都不与PowerShell有关。
上次我检查过您无法为Azure模块命令传递“参数键”。