尝试设置我的VSTS窗口构建代理以适应VSTS中的powershell步骤,但遇到一些问题。最初它报告说AzurePS系统功能不存在,所以我确保通过powershell库安装最新的Azure模块。现在,AzurePS功能已经存在,但某些powershell命令似乎不起作用。
这可能与VSTS根本无关,而只是与我的特定PowerShell安装/配置的配置问题有关。完整错误如下:
术语“Select-AzureRMSubscription”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
在我尝试执行的特定定义的VSTS版本日志中,以及尝试直接在框本身上运行Select-AzureRMSubscription命令时,都可以看到此错误。
答案 0 :(得分:0)
您必须确保安装某些Azure Powershell模块才能使某些cmdlet正常工作。您可以通过运行Get-Module -ListAvailable来检查哪些模块可用。 Select-AzureRMSubscription需要AzureRM模块。 您可以使用webPI安装Azure Powershell及其模块 - 我从未遇到过使用它的问题,我听说使用库安装PS模块可能会导致问题(请参阅here)。
答案 1 :(得分:0)
您可以使用Azure PowerShell step/task运行azure PowerShell。
答案 2 :(得分:0)
有问题的操作系统是server 2012
要在Windows Server 2012上安装PowerShell,我们应添加 .NET Framework 3.5功能并添加 Windows PowerShell 2.0引擎功能。
关于如何添加功能,请参阅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