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

如何用Python在Windows系统中识别SATA、NVME等磁盘类型

如何在Windows上识别磁盘类型(SATA/NVME/M.2/PCI)

仅靠Win32_DiskDrive的InterfaceType字段无法区分SATA、NVME这类具体类型——很多NVME或SATA磁盘会被归类为SCSI。要精准识别,需要结合磁盘的PNPDeviceID、Model以及专用WMI类判断,以下是具体实现方案:

方法一:通过PNPDeviceID与Model综合判断

PNPDeviceID包含硬件总线类型信息,是识别磁盘接口的核心依据,结合Model字段可判断物理形态(比如M.2)。示例代码:

import wmi

c = wmi.WMI()

for disk in c.Win32_DiskDrive():
    print(f"磁盘名称: {disk.Caption}")
    device_id = disk.PNPDeviceID.upper()
    
    # 识别NVME类型(含M.2 NVME)
    if "NVME" in device_id:
        print("类型: NVME(通常为M.2或PCIe插卡形态)")
    # 识别SATA类型
    elif "SATA" in device_id or "IDE" in device_id:
        # 检查是否为M.2物理形态
        if "M.2" in disk.Model.upper():
            print("类型: M.2(SATA通道)")
        else:
            print("类型: SATA")
    # 识别PCIe磁盘(非NVME)
    elif "PCI" in device_id:
        print("类型: PCIe磁盘")
    # 兜底判断
    else:
        if disk.InterfaceType == "SCSI" and "M.2" in disk.Model.upper():
            print("类型: M.2(SATA通道)")
        else:
            print(f"类型: {disk.InterfaceType}(需进一步确认)")
    print("---")

方法二:通过Win32_NVMeController精准识别NVME设备

Windows提供Win32_NVMeController类专门管理NVME控制器,可直接关联对应的NVME磁盘:

import wmi

c = wmi.WMI()
# 缓存所有NVME控制器的设备ID前缀
nvme_ctrl_prefixes = {ctrl.PNPDeviceID.split("\\")[0] for ctrl in c.Win32_NVMeController()}

for disk in c.Win32_DiskDrive():
    print(f"磁盘名称: {disk.Caption}")
    disk_ctrl_prefix = disk.PNPDeviceID.split("\\")[0]
    
    if disk_ctrl_prefix in nvme_ctrl_prefixes:
        print("类型: NVME(含M.2 NVME)")
    else:
        # 复用方法一的逻辑处理SATA/PCI等类型
        device_id = disk.PNPDeviceID.upper()
        if "SATA" in device_id or "IDE" in device_id:
            print("类型: SATA" + ("(M.2形态)" if "M.2" in disk.Model.upper() else ""))
        elif "PCI" in device_id:
            print("类型: PCIe磁盘")
        else:
            print(f"类型: {disk.InterfaceType}")
    print("---")

关键说明

  • M.2是物理形态而非接口类型:M.2磁盘可能走SATA或NVME通道,前者属于SATA类型,后者属于NVME类型,需通过接口信息+Model标识综合判断。
  • 部分老设备的PNPDeviceID可能不规范,需结合多个字段交叉验证,提升识别准确率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:15:31