Azure Powershell - 无法找到经典虚拟机

时间:2017-04-23 22:52:24

标签: powershell azure

我正在尝试通过PowerShell检索完整的虚拟机列表,但是我在使用经典虚拟机时遇到问题,而且我无法理解RM和常规cmdlet之间的区别,特别是在订阅方面。 / p>

Get-AzureRMSubscription正确返回我的Azure帐户有权访问的订阅的完整列表。 Get-AzureSubscription什么都不返回。这意味着我可以使用Get-AzureRMVM正确地从任何一个订阅中提取所有新样式的VM,但由于我找不到“经典”样式订阅,我无法将任何现有的经典VM拉出来我无法定义要查看的订阅。

我可以通过门户网站成功查看所有订阅中的所有虚拟机,但无论出于何种原因,都无法通过Powershell查看。我完全没有想法,有什么我想念的吗?

2 个答案:

答案 0 :(得分:3)

Get-AzureRMSubscription Get-AzureSubscription Get-AzureRMVM是资源模式cmdlet,您的VM是经典模式VM,您应该使用经典cmdlet。只需使用以下cmdlet。

#login your classic account
Add-AzureAccount
# Enumerates all configured subscriptions on your local machine.
Get-AzureSubscription  
# Select the subscription to use
Select-AzureSubscription -SubscriptionName "mysubscription" 
#get classic VM
Get-AzureVM

答案 1 :(得分:1)

使用Azure时,使用manage.windowsazure.com时,经典虚拟机是常态,默认情况下,每个虚拟机都附加了一个云服务,虚拟网络和防火墙(ACL)等资源是静态的每个资源。

基于Azure资源管理器(ARM)的部署使您能够拥有灵活的部署模型(例如,x个VM的一个防火墙/ NSG)。详细研究可在以下链接中找到:

Azure Resource Manager based deployments explained

对于您的问题,您可以使用以下Cmdlet来获取所有经典虚拟机。

#login your classic (work AD / Personal) account using the pop-up
Add-AzureAccount
# Get All subscriptions under the non-rm account. DO NOT USE Get-AzureRMSubscription for any classic resources

Get-AzureSubscription  
# Select the subscription to use using the Subscription name or ID (if all your subscription names say pay-as-you-go for e.g. you may want to use your subscription ID)

Select-AzureSubscription -SubscriptionName "enter-your-subscription-name" OR -SubscriptionId "alternatively-use-subscription-id"

#List all the VM's in a variable for further use (if needed, else direct display)

$vmList = Get-AzureVM

#Output the Virtual Machines on the subscription

Write-Output ($vmList)

完成!