术语 'Set-AzureRmVMPlan' 未被识别为 cmdlet 的名称

The term 'Set-AzureRmVMPlan' is not recognized as the name of a cmdlet

我正在尝试使用 Azure 自动化中的 powershell 脚本在 Azure 上创建 VM。此 VM 将从市场创建。所以我需要在脚本中使用 cmdlet 'Set-AzureRmVMPlan'。

$vm = New-AzureRmVMConfig -VMName $inVMName -VMSize $vmSize

Set-AzureRmVMPlan -VM $vm -Publisher "kali-linux" -Product "kali-linux" -Name "kali"

当我从 Powershell ISE 运行 时,此脚本工作正常,但是当我将此命令放入 Azure Automation Runbook 时,Azure 无法识别此命令。我遇到以下错误,

Set-AzureRmVMPlan : The term 'Set-AzureRmVMPlan' is not recognized as the name of a cmdlet, function, script file, or

operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try

again.

At restore-vhd-backups:8 char:8

    • CategoryInfo : ObjectNotFound: (Set-AzureRmVMPlan:String) [], CommandNotFoundException

    • FullyQualifiedErrorId : CommandNotFoundException

所以我进一步调查,发现此命令在第 "Edit PowerShell Runbook" 页的 cmdlet 列表中不可用(见下图)

我还了解到这个 cmdlet 是去年从下面 link

添加到 Azure Powershell 中的

有人可以帮我解决这个问题吗?

那么这里发生了什么,Azure Automation 使用旧版本的模块,您必须转到 Azure Automation Blade > Assets > Modules > Browse Gallery 并重新导入 AzureRM.Profile 和 AzureRM.Compute。