我正在尝试通过PowerShell检索完整的虚拟机列表,但是我在使用经典虚拟机时遇到问题,而且我无法理解RM和常规cmdlet之间的区别,特别是在订阅方面。 / p>
Get-AzureRMSubscription
正确返回我的Azure帐户有权访问的订阅的完整列表。 Get-AzureSubscription
什么都不返回。这意味着我可以使用Get-AzureRMVM
正确地从任何一个订阅中提取所有新样式的VM,但由于我找不到“经典”样式订阅,我无法将任何现有的经典VM拉出来我无法定义要查看的订阅。
我可以通过门户网站成功查看所有订阅中的所有虚拟机,但无论出于何种原因,都无法通过Powershell查看。我完全没有想法,有什么我想念的吗?
答案 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资源管理器(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)
完成!