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

如何通过Python获取NVMe驱动器的安装日期

获取NVMe驱动器安装日期的Python实现方法

在Windows系统中,你可以通过两种常用方式用Python获取NVMe驱动器的安装/首次安装日期:调用WMI接口,或通过子进程执行PowerShell命令。以下是具体实现:

方法一:使用pywin32调用WMI接口

WMI(Windows Management Instrumentation)是Windows系统的原生管理接口,可直接查询硬件属性。

步骤1:安装依赖

先安装pywin32库:

pip install pywin32

步骤2:实现代码

import win32com.client
from datetime import datetime

def get_nvme_install_dates():
    wmi = win32com.client.GetObject("winmgmts:")
    nvme_disks = wmi.InstancesOf("Win32_DiskDrive")
    results = []
    
    for disk in nvme_disks:
        # 筛选NVMe接口的磁盘设备
        if disk.InterfaceType == "NVMe":
            # 转换WMI日期格式(原始格式为YYYYMMDDHHMMSS.FFFFFF+UUU)
            install_date = None
            if disk.InstallDate:
                install_date = datetime.strptime(disk.InstallDate.split('.')[0], "%Y%m%d%H%M%S")
            
            first_install_date = None
            if disk.FirstInstallDate:
                first_install_date = datetime.strptime(disk.FirstInstallDate.split('.')[0], "%Y%m%d%H%M%S")
            
            results.append({
                "设备ID": disk.DeviceID,
                "型号": disk.Model,
                "安装日期": install_date,
                "首次安装日期": first_install_date
            })
    return results

# 调用并打印结果
for disk_info in get_nvme_install_dates():
    print(f"设备ID: {disk_info['设备ID']}")
    print(f"型号: {disk_info['型号']}")
    print(f"安装日期: {disk_info['安装日期']}")
    print(f"首次安装日期: {disk_info['首次安装日期']}\n")

方法二:通过subprocess调用PowerShell命令

如果不想额外安装第三方库,可以直接调用PowerShell命令获取WMI数据,再解析结果。

实现代码

import subprocess
import json
from datetime import datetime

def get_nvme_install_dates_via_powershell():
    # PowerShell命令:筛选NVMe磁盘,返回JSON格式的属性数据
    ps_cmd = """
    Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq 'NVMe' } |
    Select-Object DeviceID, Model, InstallDate, FirstInstallDate | ConvertTo-Json
    """
    
    # 执行命令并捕获输出
    result = subprocess.run(
        ["powershell", "-Command", ps_cmd],
        capture_output=True,
        text=True,
        encoding='utf-8'
    )
    
    if result.returncode != 0:
        print(f"执行错误: {result.stderr}")
        return []
    
    # 解析JSON并转换日期格式
    nvme_disks = json.loads(result.stdout)
    for disk in nvme_disks:
        if disk.get("InstallDate"):
            disk["InstallDate"] = datetime.strptime(disk["InstallDate"].split('.')[0], "%Y%m%d%H%M%S")
        if disk.get("FirstInstallDate"):
            disk["FirstInstallDate"] = datetime.strptime(disk["FirstInstallDate"].split('.')[0], "%Y%m%d%H%M%S")
    
    return nvme_disks

# 调用并打印结果
for disk_info in get_nvme_install_dates_via_powershell():
    print(f"设备ID: {disk_info['DeviceID']}")
    print(f"型号: {disk_info['Model']}")
    print(f"安装日期: {disk_info['InstallDate']}")
    print(f"首次安装日期: {disk_info['FirstInstallDate']}\n")

注意事项

  • 两种方法仅适用于Windows系统,依赖系统自带的WMI服务。
  • 若遇到权限问题,尝试以管理员身份运行Python脚本或终端。
  • 部分旧版Windows系统可能不支持FirstInstallDate属性,此时仅能获取InstallDate。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:06:26