如何使用PowerShell获取外接USB硬盘的驱动器盘符?
获取外接USB硬盘的驱动器盘符(排除U盘)
可以通过CIM实例的关联关系,将Win32_DiskDrive(识别外接硬盘)、Win32_DiskPartition(磁盘分区)和Win32_LogicalDisk(逻辑盘符)串联起来,精准筛选出外接USB硬盘的盘符。
完整脚本
# 筛选出外接USB硬盘(通过MediaType区分,排除U盘) $externalHardDrives = Get-CimInstance Win32_DiskDrive -Filter "MediaType='External hard disk media'" # 遍历硬盘,关联分区与逻辑盘符 foreach ($diskDrive in $externalHardDrives) { # 获取当前硬盘对应的分区 $partitions = Get-CimAssociatedInstance -InputObject $diskDrive -ResultClassName Win32_DiskPartition foreach ($partition in $partitions) { # 获取分区对应的逻辑盘符 $logicalDisks = Get-CimAssociatedInstance -InputObject $partition -ResultClassName Win32_LogicalDisk foreach ($logicalDisk in $logicalDisks) { # 输出结构化信息 [PSCustomObject]@{ 硬盘型号 = $diskDrive.Model 序列号 = $diskDrive.SerialNumber 驱动器盘符 = $logicalDisk.DeviceID 容量(GB) = [math]::Round($logicalDisk.Size / 1GB, 2) } } } }
关键说明
- 筛选外接硬盘:
Win32_DiskDrive的MediaType属性中,外接硬盘通常标记为External hard disk media,而U盘一般是Removable media或USB Flash Drive,通过这个Filter直接排除U盘。 - 关联实例获取盘符:
Win32_DiskDrive本身不存储盘符信息,需要通过CIM的关联类:Win32_DiskDriveToDiskPartition:链接磁盘驱动器与分区Win32_LogicalDiskToPartition:链接分区与逻辑盘符
使用Get-CimAssociatedInstance命令可以快速获取这些关联对象。
- 兼容性优化:如果部分系统的
MediaType描述不一致,可以改用以下Filter增强兼容性:
同时检查接口类型为USB,且媒体类型包含"hard disk",确保不会误判。$externalHardDrives = Get-CimInstance Win32_DiskDrive -Filter "InterfaceType='USB' AND MediaType LIKE '%hard disk%'"
内容的提问来源于stack exchange,提问作者JGH
相关产品推荐
相关产品推荐

