You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell检测超容量MBR磁盘上的未分配空间

检测超标称容量MBR磁盘的未分配空间(PowerShell方案)

针对MBR磁盘超出标称2TB容量后常规工具无法识别未分配空间的问题,以下两个PowerShell方案可直接读取磁盘物理容量与已分区容量的差值,准确计算未分配空间:

方案1:指定单磁盘检测

替换脚本中的$diskNumber为目标磁盘编号(可通过Get-Disk命令查看),运行时需管理员权限:

$diskNumber = 1  # 替换为你的目标磁盘编号
$physicalDisk = Get-PhysicalDisk -DeviceNumber $diskNumber
$totalPartitionedSize = (Get-Partition -DiskNumber $diskNumber | Where-Object { $_.Type -ne 'Reserved' } | Measure-Object -Property Size -Sum).Sum

$unallocatedSize = $physicalDisk.Size - $totalPartitionedSize

[PSCustomObject]@{
    磁盘编号 = $diskNumber
    物理总容量_GB = [math]::Round($physicalDisk.Size / 1GB, 2)
    已分区总容量_GB = [math]::Round($totalPartitionedSize / 1GB, 2)
    未分配空间_GB = [math]::Round($unallocatedSize / 1GB, 2)
}

原理

Get-PhysicalDisk直接读取磁盘的真实物理容量(不受MBR 2TB分区表限制),再减去所有已分区的容量总和,得到真实的未分配空间大小。

方案2:批量检测所有磁盘

自动遍历系统中所有磁盘,输出每块磁盘的未分配空间:

Get-WmiObject Win32_DiskDrive | ForEach-Object {
    $totalSize = $_.Size
    $partitionedSize = ($_.GetRelated('Win32_DiskPartition') | Measure-Object -Property Size -Sum).Sum
    $unallocated = $totalSize - $partitionedSize

    [PSCustomObject]@{
        磁盘名称 = $_.Caption
        物理总容量_GB = [math]::Round($totalSize / 1GB, 2)
        已分区容量_GB = [math]::Round($partitionedSize / 1GB, 2)
        未分配空间_GB = [math]::Round($unallocated / 1GB, 2)
    }
}

注意事项

  • 必须以管理员身份运行PowerShell,否则可能无法获取完整的磁盘硬件信息
  • 若磁盘包含EFI、恢复等隐藏分区,可根据需求调整脚本中的分区过滤条件,确保统计所有已占用的分区容量

内容的提问来源于stack exchange,提问作者Fajela Tajkiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:15:27