Get-AzureRMVmImage cmdlet未列出所有可用的vm映像

时间:2016-04-23 20:56:23

标签: azure azure-virtual-machine azure-powershell azure-resource-manager

我正在尝试使用Get-AzureRMVMImage获取AzureRM的所有可用VM映像,但它不会列出任何图像,例如命令Get-AzureVMImage

如果我按照Get-AzureRMVmImage帮助中给出的示例,那么它不会列出该Ubuntu VM。下面是我试图获取Windows 2012 R2 Datacenter Image。

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图像的正确cmdlet是什么?

2 个答案:

答案 0 :(得分:9)

您遇到的问题是您要查找的图像不存在。您的要约和出版商名称都不正确。

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

首先,您使用

获得正确的发布者
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年数据中心
  2012-R 2数据中心
  2016纳米多克 - 测试
  2016纳米服务器技术 - 预览
  2016技术 - 预览 - 用的容器   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

答案 1 :(得分:4)

这不会列出像Mitul所说的所有图像。这将只列出一个图像。你怎么知道没有其他发行商在Windows 2012 R2上有什么东西?

这与原始功能更相似。您指定位置,然后管道输出到下一个命令。虽然这比旧的Azure PowerShell慢。

Get-AzureRmVMImagePublisher -Location 'East US' | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku | Get-AzureRMVMImage | Get-AzureRmVMImage