2017-07-26 30 views
0

時,請幫忙格式化命令的輸出: 獲取-AzureRmVMUsage -Location「美國西部」Powershell的過濾/格式化查詢天青

現在它顯示:

Name        Current Value Limit Unit 

Availability Sets       77 322000 Count 
Total Regional Cores      4159 323000 Count 
Virtual Machines       999 32220000 Count 

我怎樣才能管/過濾出來,它只顯示了總區域核心價值?

以下選擇名稱顯示:

Get-AzureRmVMUsage -Location "East US" -Verbose | Select Name 

Name            
----            
Microsoft.Azure.Management.Compute.Models.UsageName 
Microsoft.Azure.Management.Compute.Models.UsageName 

感謝, 梅德

+0

出現添加當量,它顯示錯誤 'GET-AzureRmVMUsage -Location「東美」 -Verbose |選擇名稱-eq'Total Regional Cores'' 'Select-Object:找不到與參數名'eq'.'匹配的參數 '在線:1個字符:64' – Dmitry

+0

您應該使用| Where-Object而不是Select-Object,並將其包裝在過濾器語句中。請使用這些術語進行一些研究,看看他們是否有所幫助。至於第二個問題,在選擇名稱時您看到的是Types,您可能需要將Pipe傳遞給For Each語句,然後從正在返回的UsageName對象中提取一些屬性。 –

+0

什麼也沒有顯示,試了一下。研究是一件好事,但我需要一個例子如何工作。 'Get-AzureRmVMUsage -Location「East US」-Verbose | Where-Object $ _。Name -eq'Total Regional Cores'}' – Dmitry

回答

1

你可以使用下面的命令。

(Get-AzureRmVMUsage -Location "East US"|select -ExpandProperty Name).LocalizedValue 

這裏就是結果。

enter image description here

的根本原因是Name包含兩個子值:ValueLocalizedValue。如果您直接選擇它們,您將獲得Microsoft.Azure.Management.Compute.Models.UsageName

更新:

那麼,如何獲得對應於總Regonal 核心

的精確值只需要使用下面的命令。

$names= Get-AzureRmVMUsage -Location "East US" 
foreach($name in $names) {$results = [pscustomobject]@{'name'=$name.name.LocalizedValue;'value'=$name.CurrentValue};$results} 

enter image description here

UPDATE2:

一共是區域核心變量,持有 你的榜樣值爲5。我想格式化成只顯示該值,而不 顯示別的

foreach($name in $names) {$results = [pscustomobject]@{'name'=$name.name.LocalizedValue;'value'=$name.CurrentValue};$results | ?{$_.name -eq 'Total Regional Cores'}} 

enter image description here

+0

那麼如何獲得與Total Regonal Cores – Dmitry

+0

相對應的確切數值,謝謝您的幫助,而不是它不是我需要的100% 。我希望命令只顯示總區域核心的數量,這可以做到嗎? – Dmitry

+0

@Dmitry'Total Regional Cores'您的意思是可以在一個地區使用的核心或者核心已經使用了嗎? –