Powershell:获取物理驱动器数量和大小

Powershell: Get physical drive count and size

我正在尝试获取多台计算机上物理驱动器的大小。有些计算机有 1 个物理驱动器,有些有超过 1 个。 我试过这个脚本,如果我 运行 它在一台机器上本地运行,它工作正常。

$s = "machine name"
$counts = GET-WMIOBJECT –query "SELECT * FROM Win32_DiskDrive" -ComputerName $s
$total_disk =  $counts.count
$i = 0
$total_disk = $total_disk -1
$infoObjecta = New-Object PSObject
for(; $i -le $total_disk; $i++){

$a = $i
$a  = GET-WMIOBJECT –query "SELECT * FROM Win32_DiskDrive WHERE DeviceID='\\.\PHYSICALDRIVE$i'" -ComputerName $s
$b = $i
$b = [math]::round($a.size /1GB)


Add-Member -inputObject $infoObjecta -memberType NoteProperty -name "Physical_Disk $i" -value $b

}

OS 版本为 Win Server 2003、2008 和 2012。

我不确定我做错了什么。 如果我 运行 该脚本在该机器上本地运行或给机器名称是 $s 变量,那么它工作正常。 但是,如果我将远程机器名称放在 $s 中,那么它不会给我输出。

我调试后发现 $counts.count 没有 return 任何值。

请告诉我如何解决这个问题或其他获取硬盘驱动器数量和大小详细信息的方法。

在某些版本的 Powershell 中,如果变量是 1 或 0,它不会 return 任何东西。检查@($counts).count return 是否是值。