3

我試圖用Get-AzureRMVMImage讓所有可用的虛擬機鏡像的AzureRM,如果我跟着它不會列出像命令Get-AzureVMImage獲取-AzureRMVmImage cmdlet不會列出所有可用的虛擬機鏡像

任何圖像示例在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 

什麼是正確的cmdlet與參數列出可用的RM vm圖像?

回答

7

您遇到的問題是您正在查找的圖像不存在。您提供的優惠和發佈商名稱都不正確。

要查找圖像,您需要按特定順序通過一組cmdlet。

所以,首先你會得到正確的出版商與

Get-AzureRmVMImagePublisher -Location westeurope 

它可以是很難知道你需要從特定的列表中選擇微軟的出版商。但是,如果你在結果中插入

Get-AzureRmVMImageOffer -Location westeurope ` 
         -PublisherName 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 

的SKU

2008 R2的SP1
2012年數據中心
2012-R2數據中心的
2016納米多克 - 測試
2016納米服務器技術 - 預覽
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 
+1

此cmdlet的設計不合適。我認爲這應該列出所有圖像,並且當您提供一個參數時,它應該只過濾這些圖像。感謝你的回答。 – Mitul

+0

@Mitul我同意,它使用起來感覺笨拙,但我想它是建立在支持大量圖像的基礎上的,它在單次下載中是不可行的。 –

3

這將不會列出像米特爾問的所有圖像。那將只列出一張圖片。您如何知道其他發行商在Windows 2012 R2上沒有任何內容?

這將更類似於原始功能。您指定位置,然後將輸出管道輸送到下一個命令。雖然這比在舊的Azure PowerShell中要慢一些。

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

這不提供對題。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/12406408) –

+1

不確定你的意思。該命令將列出所有可用的RM VM映像,就像它被問到的一樣。 – Igor