我已经使用新的资源管理器创建了一些 Azure VM,我想每天都停止它们。
为此,我发布了一个运行手册来停止经典和 ARM 虚拟机,并且我创建了一个调度程序,它每天晚上运行运行手册:
workflow Stop-AzureVMs
{
$cred = Get-AutomationPSCredential -Name 'Cred'
Add-AzureAccount -Credential $cred
Select-AzureSubscription -Current 'SubscriptionName'
Get-AzureVM | Stop-AzureVM –Force
Get-AzureRmVM | Stop-AzureRmVM -Force
}
我已将 AzureResourceManager 模块导入我的 Azure 自动化帐户:
但我收到此错误:
Exception
At line:34 char:2
+ Get-AzureRMVM | Stop-AzureRMVM -Force
+ ~~~~~~~~~~~~~ Cannot find the 'Get-AzureRMVM' command. If this command is defined as a workflow, ensure it is defined before the workflow that calls it. If it is a command intended to run directly within Windows PowerShell (or is not available on this system), place it in an InlineScript: 'InlineScript { Get-AzureRMVM }'
这怎么可能?
编辑:以下是解决方案
$cred = Get-AutomationPSCredential -Name 'Cred'
Add-AzureRmAccount -Credential $cred
Select-AzureRmSubscription -Name 'SubscriptionName' -SubscipritionId 'SubscriptionId'
Get-AzureRmVM | Stop-AzureRmVM -Force
我发现的所有工作流都没有提到使用 Add-AzureRmAccount 和 Select-AzureRmSubcription 而不是标准的 Add-AzureAccount 和 Select-AzureSubscription。我认为我们的 Azure 帐户的身份验证过程是相同的。
更新:现在可以将 ASM 和 ARM cmdlet 组合在同一个运行手册中,有关 Azure 自动化默认支持的 ARM的更多信息,请参阅这篇文章