如何获取服务器管理器中标注的Total disk space总磁盘空间数值
问题描述
我需要获取服务器管理器中显示的*"Total disk space"*数值,相关参考截图如下:
我此前进行了相关检索但未找到有效解决方案,目前已尝试使用的代码如下:
$total=0;Get-WmiObject Win32_Volume | ForEach-Object {$total += [Math]::Round((($_.Capacity - $_.FreeSpace) / 1GB),2)};Write-Output "TotalUsedSpace_GB : $total"
恳请告知获取该数值的正确方法,谢谢。
解决方案
你当前使用的代码计算的是所有卷的已用空间总和,和你需要的总磁盘空间统计逻辑不符,且你使用的Get-WmiObject已被微软官方弃用,推荐使用Get-CimInstance替代,同时需要过滤服务器管理器统计时不会纳入的非本地固定磁盘卷,才能得到和界面显示一致的结果。
正确代码如下:
$totalCapacity = 0 # DriveType=3 仅统计本地固定磁盘,排除光驱、移动存储、网络映射盘等 Get-CimInstance Win32_Volume | Where-Object {$_.DriveType -eq 3 -and $_.Capacity -ne $null} | ForEach-Object { $totalCapacity += [Math]::Round($_.Capacity / 1GB, 2) } Write-Output "TotalDiskSpace_GB : $totalCapacity"
如果需要统计已使用的总磁盘空间,调整代码中的累加逻辑即可:
$totalUsed = 0 Get-CimInstance Win32_Volume | Where-Object {$_.DriveType -eq 3 -and $_.Capacity -ne $null} | ForEach-Object { $totalUsed += [Math]::Round(($_.Capacity - $_.FreeSpace) / 1GB, 2) } Write-Output "TotalUsedSpace_GB : $totalUsed"
内容的提问来源于stack exchange,提问作者Empty Coder
相关产品推荐
相关产品推荐

