通过powershell获取磁盘数量

时间:2016-04-21 07:57:41

标签: powershell scripting sccm

当我尝试计算连接到工作站的驱动程序数时,我有一种奇怪的行为。

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

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

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

到目前为止,这么好。现在,我要过滤它以选择我最小的驱动器

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

我的点数在哪里?它不应该返回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

现在脑子里有很多混乱!

任何人都知道那里会出现什么问题?

1 个答案:

答案 0 :(得分:1)

这对我有用:

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

这:

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

CimInstance类型,显然它不支持Count