Get-AzureRMVmImage cmdlet 未列出所有可用的虚拟机映像

Get-AzureRMVmImage cmdlet doesn't list all the available vm images

我正在尝试使用 Get-AzureRMVMImage 获取 AzureRM 的所有可用 VM 映像,但它没有像命令 Get-AzureVMImage

那样列出任何映像

如果我按照 Get-AzureRMVmImage 的帮助中给出的示例进行操作,那么它不会列出 Ubuntu VM。下面是我试图获取 Windows 2012 R2 数据中心图像。

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 虚拟机映像的正确 cmdlet 是什么?

您遇到的问题是您要找的图片不存在。您的报价和发布商名称都不正确。

要查找图像,您需要按特定顺序执行一组 cmdlet。

因此,首先您可以通过

获得正确的发布者
Get-AzureRmVMImagePublisher -Location westeurope  

可能很难从该特定列表中知道您需要 select 哪个 Microsoft 发布者。但是,如果将结果代入

Get-AzureRmVMImageOffer -Location westeurope `
                        -PublisherName microsoft  

这使用 'microsoft' 发布者名称并给出此列表

Offer

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

这给出了

Offer

WindowsServer

然后您需要找到

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

Skus

2008-R2-SP1
2012-Datacenter
2012-R2-Datacenter
2016-Nano-Docker-Test
2016-Nano-Server-Technical-Preview
2016-Technical-Preview-with-Containers Windows-Server-Technical-Preview

所以在那个 who 的结尾,你正在寻找的命令是

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

对于这个特定的图像,还有一些版本需要考虑,所以一旦你 运行 你可以 select 使用一个版本,所以要获得最新版本你会使用

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