【问题标题】:Get-AzureRmAppServicePlan and Get-AzureRmWebApp return exceptions in RunbookGet-AzureRmAppServicePlan 和 Get-AzureRmWebApp 在 Runbook 中返回异常
【发布时间】:2017-05-04 05:53:27
【问题描述】:

我想在 Automation Runbook 中使用Get-AzureRm* 命令获取所有属性,但以下返回异常。如何编写代码才能正确使用这些命令?

  • 返回异常
    • 获取 AzureRmAppServicePlan
    • 获取-AzureRmWebApp
  • 返回预期结果
    • 获取 AzureRmStorageAccount

输入 - Powershell Runbook(不是工作流)

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

输出

通过管理门户中的[测试]

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

[资产] - [模块]列表

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 

【问题讨论】:

    标签: powershell azure azure-powershell azure-automation


    【解决方案1】:

    因此,您需要将适当的模块导入您的 Azure 自动化帐户。对于这些 cmdlet - AzureRM.Websites

    使用 Azure 门户从自动化模块库导入模块

    1. 在 Azure 门户中,打开您的自动化帐户。
    2. 单击“资产”图块以打开资产列表。
    3. 单击“模块”图块以打开模块列表。
    4. 单击“浏览图库”按钮,将启动“浏览图库”刀片。
    5. 找到您感兴趣的模块并选择它以查看其详细信息。 深入了解特定模块时,您可以查看有关该模块的更多信息,包括返回 PowerShell 库的链接、任何所需的依赖项以及该模块包含的所有 cmdlet 和/或 DSC 资源。
    6. 要将模块直接安装到 Azure 自动化中,请单击“导入”按钮。
      单击“导入”按钮时,您将看到要导入的模块名称。如果安装了所有依赖项,则 OK 按钮将处于活动状态。如果您缺少依赖项,则需要先导入这些依赖项,然后才能导入此模块。
    7. 单击“确定”导入模块,模块刀片将启动。当 Azure 自动化将模块导入您的帐户时,它会提取有关该模块和 cmdlet 的元数据。

    这可能需要几分钟,因为需要提取每个活动。

    您将收到模块正在部署的通知以及完成后的通知。 导入模块后,您将看到可用的活动,并且可以在 Runbook 和 Desired State Configuration 中使用其资源。

    更多详情请点击链接:https://docs.microsoft.com/en-us/azure/automation/automation-runbook-gallery#modules-in-powershell-gallery

    【讨论】:

    • 谢谢,工作。我的 [Asset]-[Modules] 列表添加到原始问题的底部。我的步骤:-尝试导入 i) 表明需要导入 ii)(用于依赖项)-首先导入 ii)-等待 ii) 在列表中可用-导入 i) 正确-运行手册有效 i) AzureRM.Websites ii) AzureRM .profile (= 2.4.0)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多