I'd like to get all properties with Get-AzureRm*
commands in Automation Runbook, but the followings return exception. How to code so as to work these commands properly?
- Returns exception
- Get-AzureRmAppServicePlan
- Get-AzureRmWebApp
- Returns expected result
- Get-AzureRmStorageAccount
input - Powershell Runbook (not Workflow)
Write-Output $PSVersionTable
$resourceGroupName = "(snipped)"
$appServicePlans = Get-AzureRmAppServicePlan -ResourceGroupName $resourceGroupName
$Cred = Get-AutomationPSCredential -Name "pscred" # works as expected
Add-AzureRmAccount -Credential $Cred
Add-AzureAccount -Credential $Cred
$appServicePlans = `
Get-AzureRmAppServicePlan -ResourceGroupName $resourceGroupName
$appServices = `
Get-AzureRmWebApp -ResourceGroupName $resourceGroupName
$storageAccounts = `
Get-AzureRmStorageAccount -ResourceGroupName $resourceGroupName
output
By [Test] in Management Portal
Name Value
---- -----
PSVersion 5.0.10514.2
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.19455
BuildVersion 10.0.10514.2
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
Get-AzureRmAppServicePlan : The term 'Get-AzureRmAppServicePlan' 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 (position in the source)
+ $appServicePlans = Get-AzureRmAppServicePlan -ResourceGroupName $reso ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-AzureRmAppServicePlan:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Get-AzureRmWebApp : The term 'Get-AzureRmWebApp' 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 (position in the source)
+ $appServices = Get-AzureRmWebApp -ResourceGroupName $resourceGroupNam ...
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-AzureRmWebApp:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
# $storageAccounts has got as expected
[Asset] - [Module] list
Azure
Azure.Storage
AzureRM.Automation
AzureRM.Compute
AzureRM.Profile
AzureRM.Resources
AzureRM.Sql
AzureRM.Storage
Microsoft.PowerShell.Core
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.WSMan.Management
Orchestrator.AssetManagement.Cmdlets
So what you need to do is import the appropriate module(s) into you Azure Automation Account. For these cmdlets - AzureRM.Websites.
To import a module from the Automation Module Gallery with the Azure portal
When you click the Import button, you will see the module name that you are about to import. If all the dependencies are installed, the OK button will be active. If you are missing dependencies, you need to import those before you can import this module.
This may take a couple of minutes since each activity needs to be extracted.
You will receive a notification that the module is being deployed and a notification when it has completed. After the module is imported, you will see the available activities, and you can use its resources in your runbooks and Desired State Configuration.
Here's a link for more details: https://learn.microsoft.com/en-us/azure/automation/automation-runbook-gallery#modules-in-powershell-gallery