使用任意参数调用Set-AzureRmAppServicePlan cmdlet

时间:2018-11-27 15:31:18

标签: azure powershell

我想使用任意参数调用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'.错误。

2 个答案:

答案 0 :(得分:1)

PowerShell确实支持您尝试做的事情。它被称为splatting

在您的情况下,您有轻微的错字。您所需要做的就是在此行中将$更改为@

Set-AzureRmAppServicePlan -ResourceGroupName 'RG1' -Name 'AppServicePlna1' $params

工作版本如下:

Set-AzureRmAppServicePlan -ResourceGroupName 'RG1' -Name 'AppServicePlna1' @params

答案 1 :(得分:0)

每个问题都不与PowerShell有关。

上次我检查过您无法为Azure模块命令传递“参数键”。