我正在尝试运行Get-AzureVM
PowerShell命令,它运行正常但不返回任何输出。
还尝试了以下风味,但仍然空白结果有任何想法吗?
Get-AzureVM -Name "vmname" |Select-Object name,instancesize,location
答案 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
总结:
Get-AzureRmVm
,which is very confusing in my and lots of others opinion 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或更早版本的交换机。