Ответ 1
Сначала вы должны позвонить Select-AzureSubscription "subscription name"
.
Вероятно, он не соответствует подписке, в которой нет виртуальных машин.
Для просмотра вызовов текущей подписки:
Get-AzureSubscription | select SubscriptionName
Я пытаюсь запустить команду Get-AzureVM
PowerShell, она работает нормально, но не возвращает никакого вывода.
И попробовал в следующем вкусе, но все же пустой результат какой-нибудь идеи?
Get-AzureVM -Name "vmname" |Select-Object name,instancesize,location
Сначала вы должны позвонить Select-AzureSubscription "subscription name"
.
Вероятно, он не соответствует подписке, в которой нет виртуальных машин.
Для просмотра вызовов текущей подписки:
Get-AzureSubscription | select SubscriptionName
Собственно, ответ выше только полуправильный.
Это заставило меня вытащить мои вирулентные волосы, пытаясь сделать автоматизацию (что потребовало 7 часов ручной подтасовки, чтобы работать!).
Просто у вас есть два типа виртуальной машины в Azure; Classic и Resource Manager.
Если вы Switch-AzureMode -name AzureServiceManagement
, затем используйте Get-AzureVM
, вы перечислите все классические виртуальные машины, которые вы создали.
Если вы Switch-AzureMode -name AzureResourceManager
, затем используйте Get-AzureVM
, вы перечислите всю созданную вами диспетчер ресурсов (или новую).
И помните, что если вы пытаетесь сделать автоматизацию, вам нужна виртуальная машина в новом режиме, доступном через портал, ваша старая виртуальная машина (классика), которую вы создали с помощью управления, не отображается в этом режиме, и вам придется воссоздайте их.
Azure имеет два типа системы управления: AzureServiceManagement (ASM) и AzureResourceManager (ARM)
Чтобы контролировать эти два разных типа систем управления, вы должны переключаться между ними, как описано на главной странице страницы проекта Azure Powershell Github, но это справедливо для версий azure powershell ниже 1.0.0, вы можете найти больше объяснений в здесь
Для тех, кто заинтересован в управлении ARM (AzureResourceManager) с версией powershell версии более чем 1.0.0, они должны использовать все командлеты со следующим форматом: [Verb]-AzureRm[Noun]
, например New-AzureVm
становится New-AzureRmVm
, в нашем case Get-AzureVM
стал Get-AzureRmVm
Вкратце:
Get-AzureVM
, что очень сбивает с толку в моем и многом другом мнениеGet-AzureVM
для ASM и Get-AzureRmVm
для ARM.Я знаю, что на этот вопрос был дан ответ, но я попробовал ответ, и это не сработало для меня. Я нашел, мне нужно было переключить свой AzureMode.
Чтобы решить проблему, я выполнил следующую команду powershell script.
Switch-AzureMode -Name AzureResourceManager
Переключение режима Azure Powershell между AzureServiceManagement и AzureResourceManger является возможным решением, если ваш script использует устаревшие функции, а также новые командлеты Azure Resource Manager. Коммутатор необходим только для Microsoft Azure Powershell версии 0.9.8 или старше.