crystaldiskinfo可查sata/nvme硬盘总写入量,powershell适用于nvme,wmic粗略估算sata ssd,nvmecli提供nvme设备最精确数据。

一、使用CrystalDiskInfo查看硬盘读写总量与SMART信息
CrystalDiskInfo是一款轻量级、无需安装的第三方工具,可直接读取硬盘固件层的SMART数据,其中包含“Total LBAs Written”(总逻辑块写入数)或“Host Writes”等关键指标,经换算即可得出硬盘累计读写总量(单位TB)。该方法适用于SATA与NVMe硬盘,且支持实时刷新。
1、访问CrystalDiskInfo官网下载最新绿色版(.zip格式),解压后以管理员身份运行CrystalDiskInfo.exe。
2、等待界面加载完成,在主窗口中找到目标硬盘设备,确认其状态为“良好”或“警告”。
3、向下滚动右侧信息栏,定位至“SMART信息”区域,查找以下任一字段:Total LBAs Written(机械盘/部分SSD)、Host Writes (GiB)(多数NVMe SSD)、NAND Writes (GiB)(部分厂商SSD)。
4、将数值除以1024²(即1,048,576)换算为TB:例如显示“Host Writes = 352874523456”,则352874523456 ÷ 1024 ÷ 1024 ÷ 1024 ≈ 328.6 TB。
二、通过PowerShell调用WMI获取NVMe硬盘写入量
Windows 10 2004及以上版本原生支持通过WMI接口读取NVMe设备的“Write Commands”和“Bytes Written”计数器,该数据由驱动直接上报,精度高且无需额外软件。此方法仅适用于NVMe协议硬盘,不兼容SATA SSD或HDD。
1、右键点击开始按钮,选择“Windows PowerShell(管理员)”或“终端(管理员)”。
2、输入以下命令并回车执行:Get-WmiObject -Namespace "RootWMI" -Class "MSStorageDriver_FailurePredictData" | ForEach-Object { $_.FailurePredictData[4] + $_.FailurePredictData[5] }(注:索引4与5分别对应低/高32位字节写入量,需组合解析)。
3、若返回值为十六进制大整数(如0x00000001A2B3C4D5),将其转为十进制后除以1024³,即得TB级写入总量。
4、更直观方式是运行:Get-PhysicalDisk | Where-Object MediaType -eq "SSD" | Select-Object FriendlyName, @{n="TB Written";e={$_.Size / 1TB * $_.HealthStatus}} (仅作示意,实际需配合NVMe专用cmdlet或第三方模块如NVMeCLI)。
三、使用wmic命令粗略估算SATA SSD总写入量
wmic虽已弃用但仍在Win10中可用,可通过调取磁盘驱动器的“Caption”与“Size”辅助识别设备,并结合SMART原始值间接推导。该方法依赖硬盘厂商是否在SMART第241(Total_LBAs_Written)或第175(Host_Writes_32MiB)属性中公开写入统计,成功率约70%。
1、以管理员身份打开命令提示符(CMD)。
2、输入命令:wmic diskdrive get caption,size,model,确认目标硬盘型号及物理容量。
3、执行:wmic /namespace:\rootwmi path MSStorageDriver_ATAPISmartData get VendorSpecific,输出为十六进制字符串数组。
4、提取字符串中第241号属性所在位置的连续4字节(小端序),例如“00 00 02 A3”表示十进制169,026个LBA(默认512字节/LBA),则总写入量为169026 × 512 ÷ 1024³ ≈ 0.083 TB。
四、借助NVMeCLI工具精确读取NVMe设备写入数据
NVMeCLI是Linux开发的开源命令行工具,微软官方WSL2环境及部分Win10用户可通过编译版或预编译二进制文件直接调用,能完整解析NVMe Identify Controller与Log Page数据,其中Log ID 02h(SMART/Health Information)明确包含“Data Units Written”字段,每单位为1MB,精度达1MB级。
1、从GitHub下载适用于Windows的nvme-cli-win预编译包(如nvme64.exe),解压至任意目录。
2、以管理员身份运行CMD,cd进入该目录,执行:nvme64 smart-log "\.PhysicalDrive0"(需替换PhysicalDrive0为目标盘符)。
3、在输出结果中定位“data_units_written”字段,其值为十六进制大整数(如0x000000000012a3f4)。
4、将该值转换为十进制后乘以1000000(因单位为MB),再除以1024³,即得TB总量;例如0x12a3f4 = 1,221,620 → 1,221,620 × 10⁶ ÷ 1024³ ≈ 1.14 TB。










