【问题标题】:Select-AzureRMSubscription not recognizedSelect-AzureRMSubscription 无法识别
【发布时间】:2017-02-26 11:46:19
【问题描述】:

尝试设置我的 VSTS Windows 构建代理以适应 VSTS 中的 powershell 步骤,但遇到了一些问题。最初它报告说 AzurePS 系统功能不存在,所以我确保通过 powershell 库安装最新的 Azure 模块。现在,AzurePS 功能存在,但某些 powershell 命令似乎不起作用。

这可能根本与 VSTS 无关,而只是我的特定 powershell 安装/配置的配置问题。完整的错误如下:

“Select-AzureRMSubscription”一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,如果包含路径,请验证路径是否正确,然后重试。

此错误可以在我尝试执行的特定定义的 VSTS 发布日志中看到,也可以在尝试直接在框本身上运行 Select-AzureRMSubscription 命令时看到。

【问题讨论】:

  • 使用 azure powershell 步骤/任务,您无需手动调用 Select-AzureRMSubscription。符合您的要求吗?

标签: powershell azure azure-devops


【解决方案1】:

根据This MS Docs for Get-AzSubscription,它位于模块 Az.Accounts 中。

所以我不得不跑:

Install-module Az -AllowClobber -Force
Import-module Az

使命令对我可用。

【讨论】:

  • 这对我有帮助...花了大约 5 分钟但成功了
【解决方案2】:

对我来说,更新 AzureRM 模块可以解决问题:

Update-Module -Name AzureRM

根据您的系统,安装时可能会收到一些消息

Powershell 需要 NuGet 提供程序版本“2.8.5.201”或更新版本 与基于 NuGet 的存储库进行交互。 NuGet 提供程序必须是 在“C:\Program Files\PackageManagement\ProviderAssemblies”中可用 或者 'C:\Users\<...>\AppData\Local\PackageManagement\ProviderAssemblies'。 您还可以通过运行安装 NuGet 提供程序 安装-PackagePovider -Name NuGet -MinimumVersion 2.8.5.201 -Force'。 是否希望 PowerShellGet 安装和导入 NuGet 提供程序 现在?

[是] {否] [暂停]

选择“是”

您正在从不受信任的存储库中安装模块。如果你 信任此存储库,通过运行更改其 installationPolicy 值 Set-PSRepository cmdlet。您确定要安装 来自“PSGallery”的模块?

[是] [对所有人都同意] [否] [对所有人都没有] [暂停]

选择“全部同意” 最多将安装/更新三个模块,之后,Select-AzureRmSubscription 应该立即工作。

Select-AzureRmSubscription b0cabaca-1234-1337-abcd-bebedada1337

# note: this subscription GUID is completely fictional.
# To get the correct one, query your subscriptions with
# Get-AzureRmSubscription

【讨论】:

    【解决方案3】:

    您必须确保已安装某些 Azure Powershell 模块才能使某些 cmdlet 正常工作。您可以通过运行 Get-Module -ListAvailable 检查哪些模块可用。 Select-AzureRMSubscription 需要 AzureRM 模块。 您可以使用 webPI 安装带有模块的 Azure Powershell - 我从来没有遇到过使用它的问题,而且我听说使用图库安装 PS 模块可能会导致问题(请参阅 here)。

    【讨论】:

    • 谢谢。 AzureRM 模块肯定已安装,尽管我听到您所说的使用库安装是一个问题。不幸的是,虽然我似乎无法使用 webpi,因为它感觉到 Powershell 3.6.0 已经安装并且安装框是灰色的。有什么办法吗?
    • 安装模块 azurerm -MinimumVersion 3.6.0
    • 我不能 - 有问题的操作系统是 server 2012,它是预先安装的,似乎无法删除它
    【解决方案4】:

    您可以使用 Azure PowerShell step/task 运行 azure PowerShell。

    1. 编辑您的构建定义
    2. 点击添加构建步骤
    3. 选择部署目录 > 添加 Azure PowerShell 步骤/任务

    【讨论】:

      【解决方案5】:

      有问题的操作系统是 server 2012

      要在 windows server 2012 上安装 PowerShell,我们应该添加 .NET Framework 3.5 功能 并添加 windows PowerShell 2.0 引擎 功能。

      关于如何添加功能,请参考link

      然后我们可以下载PowerShell installation package,并安装它。

      然后我们就可以使用windows server 2012 PowerShell来登录azure了。

      【讨论】:

      • 只是检查提供的信息是否有用。如果您需要进一步的帮助,请告诉我。
      【解决方案6】:

      您需要使用Set-AzContext,

      Select-AzSubscription -SubscriptionName 'SubName' | Set-AzContext
      

      【讨论】:

        猜你喜欢
        • 2017-04-24
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 2021-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多