繁体   English   中英

通过PowerShell获取Azure VM详细信息

[英]Get Azure VM Detail by PowerShell

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

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

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

您应该首先调用Select-AzureSubscription "subscription name"

它可能默认为没有任何虚拟机的订阅。

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

Get-AzureSubscription | select SubscriptionName

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

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

简而言之,Azure中有两种类型的虚拟机; 经典和资源管理器。

如果您使用Switch-AzureMode -name AzureServiceManagement则使用Get-AzureVM您将列出您创建的所有经典VM。

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

请记住,如果您正在尝试自动化,那么您需要通过门户网站提供的新模式下的VM,您通过管理创建的旧VM(经典)在此模式下无法访问,您必须重新创建它们。

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

为了控制这两种不同类型的管理系统,您应该按照Azure Powershell Github项目页面主页中的描述进行切换,但对于低于1.0.0azure powershell版本 ,这是正确的,您可以找到更多解释在这里

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

综上所述:

  1. Powershell版本低于1.0.0你应该在模式之间切换并使用Get-AzureVM这在我和很多其他人看来都很混乱
  2. 如果Powershell版本等于或大于1.0.0,则应使用Get-AzureVM for ASM和Get-AzureRmVm for ARM。

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

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

Switch-AzureMode -Name AzureResourceManager

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM