使用WMI查询本地硬盘总容量时如何排除外接设备?
WMI查询过滤本地硬盘的解决方案
你使用的SELECT Size FROM Win32_DiskDrive会枚举所有接入系统的物理磁盘设备,包含U盘、移动硬盘、SD卡等可移动存储介质,所以统计结果会大于本地硬盘实际总容量。
过滤本地物理磁盘的查询语句
直接在WHERE子句添加可移除属性和媒体类型的过滤条件即可:SELECT Size FROM Win32_DiskDrive WHERE Removable = False AND MediaType = 'Fixed hard disk media'
过滤条件说明
Removable = False:排除所有标记为可移除的存储设备,直接筛掉U盘、移动硬盘等外接存储MediaType = 'Fixed hard disk media':仅匹配固定硬盘的媒体类型,避免虚拟磁盘、光驱等非硬盘设备被计入统计
统计本地逻辑分区总容量的优化方案
如果你的需求是统计系统中已挂载的本地分区(即C盘、D盘等可见分区)的总容量,使用Win32_LogicalDisk类查询更准确:SELECT Size FROM Win32_LogicalDisk WHERE DriveType = 3
其中DriveType = 3是WMI定义的固定本地磁盘枚举值,不会统计外接移动存储的分区。
内容的提问来源于stack exchange,提问作者Amine Messaoudi
相关产品推荐
相关产品推荐

