2016-08-01 39 views
0

我創建了一個使用PowerShell作爲編程語言的定時器觸發Azure函數。如何獲取在Azure函數中運行的Azure PowerShell模塊版本列表?

我想知道什麼是Azure PowerShell環境中提供的Azure PowerShell模塊及其各自的版本。我嘗試使用下面的PowerShell代碼來獲得我想要的。

Get-Module -ListAvailable -Name *Azure* 

返回的結果如下,沒有版本。 enter image description here

所以問題是我應該/可以在Azure函數中做什麼以獲取Azure PowerShell模塊和版本?

注意:在本地Windows PowerShell上運行的相同PowerShell代碼能夠列出Azure PowerShell模塊的名稱,版本和其他詳細信息。

回答

2

因爲你只是這個代碼,並依靠輸出寫入日誌;它將使用默認輸出視圖作爲爲主機定義的類型;並在這裏導致名稱上的ToString()。

當您在客戶機上運行cmdlet(從powershell或ISE)時,它將使用在主機上爲該類型定義的任何輸出視圖;導致輸出處理不同(類型和格式)。

你可以例如選擇格式化您自己的自定義輸出以列出您想要的信息。

實施例:

Get-Module -ListAvailable -Name *Azure*|ForEach-Object { "Name={0};Version={1};" -f $_.Name , $_.Version} 

它將輸出的名稱和在輸出日誌中,以分離出的版本。如果您想要額外的信息,可以將其添加到字符串格式函數中,或者在Foreach中添加更復雜的輸出。

如果你有興趣輸出和默認格式是如何工作的,我建議這個MSDN article

相關問題