Select-AzureRMSubscription无法识别

时间:2017-02-26 11:46:19

标签: powershell azure azure-devops

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

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

  

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

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

6 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

  

有问题的操作系统是server 2012

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

enter image description here

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

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

然后我们可以使用Windows Server 2012 PowerShell登录azure。

答案 3 :(得分:0)

对我来说,更新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提供程序   Install-PackagePovider-名称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

答案 4 :(得分:0)

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

所以我不得不跑步:

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

使该命令适用于我。

答案 5 :(得分:0)

您需要使用 Set-AzContext,

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