Powershell的过滤/格式化查询天青
问题描述:
时,请帮忙格式化命令的输出: 获取-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
感谢, 梅德
答
你可以使用下面的命令。
(Get-AzureRmVMUsage -Location "East US"|select -ExpandProperty Name).LocalizedValue
这里就是结果。
的根本原因是Name
包含两个子值:Value
和LocalizedValue
。如果您直接选择它们,您将获得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}
UPDATE2:
一共是区域核心变量,持有 你的榜样值为5。我想格式化成只显示该值,而不 显示别的
foreach($name in $names) {$results = [pscustomobject]@{'name'=$name.name.LocalizedValue;'value'=$name.CurrentValue};$results | ?{$_.name -eq 'Total Regional Cores'}}
出现添加当量,它显示错误 'GET-AzureRmVMUsage -Location“东美” -Verbose |选择名称-eq'Total Regional Cores'' 'Select-Object:找不到与参数名'eq'.'匹配的参数 '在线:1个字符:64' – Dmitry
您应该使用| Where-Object而不是Select-Object,并将其包装在过滤器语句中。请使用这些术语进行一些研究,看看他们是否有所帮助。至于第二个问题,在选择名称时您看到的是Types,您可能需要将Pipe传递给For Each语句,然后从正在返回的UsageName对象中提取一些属性。 –
什么也没有显示,试了一下。研究是一件好事,但我需要一个例子如何工作。 'Get-AzureRmVMUsage -Location“East US”-Verbose | Where-Object $ _。Name -eq'Total Regional Cores'}' – Dmitry