通过 powershell 获取磁盘数

Get disks count via powershell

当我试图计算有多少驱动程序连接到工作站时,我有一个奇怪的行为。

PS C:\WINDOWS> get-disk | select number, size

number          size
------          ----
 0  512110190592
 1 1000204886016

PS C:\WINDOWS> (get-disk | select number, size).count
2

到目前为止,还不错。现在,我要把它过滤到 select 我最小的驱动器

PS C:\WINDOWS> get-disk | Where-Object { $_.Size -lt 600GB } | select number, size

number         size
------         ----
 0 512110190592

PS C:\WINDOWS> (get-disk | Where-Object { $_.Size -lt 600GB } | select number, size).count

我的计数在哪里?不应该是 return 1 吗?它与一个的其他集合一起工作正常:

PS C:\WINDOWS> (get-process).count
196

PS C:\WINDOWS> (get-process powershell_ise ).count
1

我的磁盘对象类型有问题吗?

PS C:\WINDOWS> Get-Disk |gm

TypeName: Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_Disk

脑子里一片混乱!

有谁知道那里会出什么问题吗?

这对我有用:

(get-disk | Where-Object { $_.Size -lt 600GB }).Number.Count

这个:

(get-disk | Where-Object { $_.Size -lt 600GB })

属于CimInstance类型,显然不支持Count