通过PowerShell获取Azure VM详细信息

时间:2013-12-11 13:21:54

标签: powershell azure powershell-v3.0

我正在尝试运行Get-AzureVM PowerShell命令,它运行正常但不返回任何输出。

还尝试了以下风味,但仍然空白结果有任何想法吗?

Get-AzureVM -Name "vmname" |Select-Object name,instancesize,location

5 个答案:

答案 0 :(得分:10)

您应首先致电Select-AzureSubscription "subscription name"

可能默认订阅中没有任何虚拟机。

要查看您当前的订阅名称,请致电:

Get-AzureSubscription | select SubscriptionName

答案 1 :(得分:4)

实际上上面的答案只是半正确的。

这让我把我的虚拟头发拉出去试图进行自动化(需要7个小时的手动捏合才能开始工作!)。

简单地说,Azure中有两种类型的虚拟机;经典和资源管理器。

如果您Switch-AzureMode -name AzureServiceManagement然后使用Get-AzureVM,您将列出您创建的所有经典虚拟机。

如果您Switch-AzureMode -name AzureResourceManager然后使用Get-AzureVM,您将列出您创建的所有资源管理器(或新的)VM。

请记住,如果您尝试自动化,那么您需要通过门户网站提供的新模式的VM,您通过管理创建的旧VM(经典)不可见在这种模式下,您将不得不重新创建它们。

答案 2 :(得分:2)

Azure有两种类型的管理系统:AzureServiceManagement(ASM)和AzureResourceManager(ARM)

为了控制这两种不同类型的管理系统,您应该按照in the main page of the Azure Powershell Github project page所述切换它们,但azure powershell versions lower than 1.0.0也是如此,您可以在here中找到更多解释

对于那些有兴趣使用powershell版本greter而不是1.0.0来控制ARM(AzureResourceManager)的人,他们应该使用具有以下格式的所有Cmdlet:[Verb]-AzureRm[Noun],例如New-AzureVm变为{{} 1}},在我们的案例中,New-AzureRmVm成了Get-AzureVM

总结:

  1. Powershell版本低于1.0.0,您应该在模式之间切换并使用Get-AzureRmVmwhich is very confusing in my and lots of others opinion
  2. Powershell版本等于或大于1.0.0,您应该为ASM使用Get-AzureVM,为ARM使用Get-AzureVM

答案 3 :(得分:0)

我知道这个问题已得到解答,但我尝试了答案,但这对我没有用。我发现,我需要切换我的AzureMode。

要解决这个问题,我运行了以下powershell脚本。

Switch-AzureMode -Name AzureResourceManager

答案 4 :(得分:0)

如果您的脚本使用较旧的功能以及新的Azure Resource Manager cmdlet,则在AzureServiceManagement和AzureResourceManger之间切换Azure Powershell模式是一种可能的解决方案。仅适用于Microsoft Azure Powershell 0.9.8或更早版本的交换机。