I have created some Azure VMs using the new Resource Manager and i'd like to stop them everyday.
To do so, i've published a runbook to stop aboth classic and ARM VMs, and i created a scheduler which runs the runbook every night :
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 } I have imported the AzureResourceManager module to my Azure Automation account :
But i am getting this error :
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 }' How is that possible ?
Edit : Below is the solution
$cred = Get-AutomationPSCredential -Name 'Cred' Add-AzureRmAccount -Credential $cred Select-AzureRmSubscription -Name 'SubscriptionName' -SubscipritionId 'SubscriptionId' Get-AzureRmVM | Stop-AzureRmVM -Force All workflows i found didn't mention the use of Add-AzureRmAccount and Select-AzureRmSubcription instead of the standard Add-AzureAccount and Select-AzureSubscription. I thought that the authentication process to our Azure account was the same.
Update : It is now possible to combine both ASM and ARM cmdlets within the same runbooks, see this post for more informations about ARM supported by default on Azure Automation

