如何显示 WMI 输出的大小(以 GB 为单位)?

How can I show size in GB for WMI output?

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

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

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

谢谢!

您可以使用表达式来格式化输出 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))}}

I select 使用数学方法 Round (Math.Round Method) 的属性和格式。输出如下:

PS C:\Users\vmsilvamolina> $DiskInfo

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

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

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)}}