簡體   English   中英

用 Python 確定 Windows 上的磁盤類型

[英]Determine type of disk on Windows with Python

我想列出我所有的磁盤並且能夠知道它的類型:Windows 計算機上的“SATA”“NVME”“M.2”或“PCI”。

我用 wmi 做了一些研究,我得到了接口(SCSI 或 IDE):

c = wmi.WMI()
for disk in c.Win32_DiskDrive():
    print(disk.InterfaceType)

但是我不知道磁盤的類型。 也許通過界面我可以獲得我的磁盤類型?

你有什么主意嗎?

謝謝

如果您堅持使用wmi ,請查詢MSFT_PhysicalDisk class

import wmi
ws = wmi.WMI(namespace='root/Microsoft/Windows/Storage')
for d in ws.MSFT_PhysicalDisk():
    print(d.BusType, d.MediaType, d.Model)

示例輸出

 7 3 Elements 1078 11 4 KINGSTON model 11 3 WDC another model

MediaType枚舉:

Value   Meaning
0       Unspecified
3       HDD
4       SSD
5       SCM

最新BusType枚舉(來自WMI Explorer 2.0.0.2 ):

Value Text                Meaning
----- ----                -------
0     Unknown             The bus type is unknown.
1     SCSI                SCSI
2     ATAPI               ATAPI
3     ATA                 ATA
4     1394                IEEE 1394
5     SSA                 SSA
6     Fibre Channel       Fibre Channel
7     USB                 USB
8     RAID                RAID
9     ISCSI               iSCSI
10    SAS                 Serial Attached SCSI (SAS)
11    SATA                Serial ATA (SATA)
12    SD                  Secure Digital (SD)
13    MMC                 Multimedia Card (MMC)
14    MAX                 This value is reserved for system use.
15    File Backed Virtual File-Backed Virtual
16    Storage Spaces      Storage Spaces
17    NVMe                NVME
18    SCM                 SCM
19    UFS                 UFS
20    reserved            Microsoft reserved

這應該讓你得到你正在尋找的東西

import subprocess

result = subprocess.run(['powershell.exe', 'Get-PhysicalDisk | ft -AutoSize DeviceId,Model,MediaType,BusType,Size'], 
    stdout=subprocess.PIPE, stderr=subprocess.PIPE, 
    universal_newlines=True)

print(result.stdout)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM