Командлет Get-AzureRMVmImage не отображает все доступные образы VM

Я пытаюсь получить все доступные образы виртуальных машин для AzureRM, используя Get-AzureRMVMImage и он не перечисляет какие-либо изображения, такие как команда Get-AzureVMImage

Если я последую примеру, приведенному в справке для Get-AzureRMVmImage тогда это не перечисляет ту Ubuntu VM. Ниже я пытаюсь получить образ Windows 2012 R2 Datacenter.

PS C:\> Get-AzureRMVMImage -location "Central us" -publisherName "Microsoft" -offer "Windows Server 2012 R2 DataCenter"
Get-AzureRmVMImage : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Get-AzureRMVMImage -location "Central us" -publisherName "Microsoft"  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-AzureRmVMImage], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.Azure.Commands.Compute.GetAzureVMImageCommand

Что такое правильный командлет с параметрами для отображения доступных изображений RM vm?

2 ответа

Решение

Проблема в том, что искомого изображения не существует. Ваше предложение и имя издателя у вас неверны.

Чтобы найти изображение, вам нужно пройти набор командлетов в определенном порядке.

Итак, во-первых, вы получите правильный издатель с

Get-AzureRmVMImagePublisher -Location westeurope  

Может быть трудно узнать, какого издателя Microsoft вам нужно выбрать из этого списка. Однако, если вы включите результат в

Get-AzureRmVMImageOffer -Location westeurope `
                        -PublisherName microsoft  

Это использует имя издателя "Microsoft" и дает этот список

Предлагает

IBM
JDK
Oracle_Database_11g_R2
Oracle_Database_11g_R2_and_WebLogic_Server_11g Oracle_Database_12c
Oracle_Database_12c_and_WebLogic_Server_12c
Oracle_WebLogic_Server_11g
Oracle_WebLogic_Server_12c

Очевидно, не то, что вы ищете! если вы посмотрите через список издателей снова, то это однако

Get-AzureRmVMImageOffer -Location westeurope `
                        -PublisherName MicrosoftWindowsServer

который дает

Предлагает

WindowsServer

Затем вам нужно найти sku с

Get-AzureRmVMImagesku -Location westeurope `
                      -PublisherName MicrosoftWindowsServer `
                      -Offer windowsserver

SKUs

2008-R2-SP1
2012-Datacenter
2012-R2-центров обработки данных
2016-Нано-Docker-Test
2016-Nano-Server-техническо-Preview
2016-Technical-Preview-with-Containers Windows-Server-Technical-Preview

Итак, в конце того, кто, команда, которую вы ищете,

Get-AzureRMVMImage -location "Central us" `
                   -publisherName "MicrosoftWindowsServer" `
                   -sku "2012-R2-Datacenter" `
                   -Offer windowsserver

Для этого конкретного изображения также существуют версии, которые необходимо учитывать, поэтому после запуска вы можете выбрать версию для использования, чтобы получить последнюю версию, которую вы будете использовать.

Get-AzureRMVMImage -location "Central us" `
                   -publisherName "MicrosoftWindowsServer" `
                   -sku "2012-R2-Datacenter" `
                   -Offer windowsserver `
                   -Version 4.0.20160229

Это не будет перечислять все изображения, как Mitul спросил. Это будет перечислять только одно изображение. Откуда вы знаете, что ни у какого другого издателя нет чего-то в Windows 2012 R2?

Это будет больше похоже на оригинальный функционал. Вы указываете местоположение, а затем передаете выходные данные следующей команде. Хотя это намного медленнее, чем в старой версии Azure PowerShell.

Get-AzureRmVMImagePublisher -Location 'East US' | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku | Get-AzureRMVMImage | Get-AzureRmVMImage
Другие вопросы по тегам