如何以GB显示WMI输出的大小?

时间:2018-01-12 12:51:28

标签: powershell format wmi

我使用WMI编写了一个用于格式化磁盘信息的脚本,其命令和语法如下:

Get-WMIObject -ComputerName $Computer -Class Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3}

但我需要格式化输出以表示GB的大小。如何处理输出?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用表达式使用Select-Object格式化输出:

例如,您可以写下:

$Computer = 'localhost'
$DiskInfo = Get-WMIObject -ComputerName $Computer -Class Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3}  `
| Select-Object @{Name="Device";Expression={($_.Name)}},
                @{Name="Size";Expression={([math]::Round($_.size/1gb))}},
                @{Name="Free";Expression={([math]::Round($_.freespace/1gb))}}

我使用数学方法 Round Math.Round Method)选择属性和格式。使用以下输出:

PS C:\Users\vmsilvamolina> $DiskInfo

Device Size Free
------ ---- ----
C:      223   23

答案 1 :(得分:0)

您可以像这样自定义输出:

Get-WMIObject -Class Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3} | 
    Select DeviceID,DriveType,VolumeName,@{N="Size";E={"{0:N2}" -f ($_.Size / 1GB)}},@{N="FreeSpace";E={"{0:N2}" -f ($_.FreeSpace / 1GB)}}