【发布时间】:2016-06-23 08:01:26
【问题描述】:
最近我发现了 S.M.A.R.T.只需调用 WMI (Windows Management Instrumentation) 的Win32_DiskDrive,Toshiba SSD 的磨损均衡器值就会降低。
我想要做的只是每秒监控和记录磁盘驱动器(例如 USB 闪存、SD 卡、外部 CD/DVD 驱动器)的连接/移除。客户的要求是通过这些设备监控可能的信息泄露。
但是,当我通过 VBScript 或 PowerShell 为 SanDisk、Micron (Crucial)、三星和东芝等各种供应商的 SSD 调用 Win32_DiskDrive 时,只有东芝 SSD 的磨损均衡器 S.M.A.R.T. 'AD' 值不断下降并导致 Toshiba 磁盘实用程序或 Windows 磁盘警报弹出窗口。
我了解Win32_DiskDrive 确实不会在磁盘驱动器上写入/读取任何数据。
我的问题是如何在不影响东芝 SSD 磨损均衡器“AD”值的情况下调用 Win32_DiskDrive。
受影响的东芝固态硬盘如下。
- 东芝_THNSNF128GMCS
- 东芝_THNSNJ128GMCU
- 东芝_THNSNS128GMCP
【问题讨论】:
-
对我来说听起来像是一个错误。您是否检查过固件和/或设备驱动程序更新?
-
@Harry Johnston,感谢您的评论。今天问了东芝技术支持,得到了答复。他们说这些SSD在调用Win32_DiskDrive时会将响应数据写入自己,因此我们不应过于频繁地调用Win32_DiskDrive。他们说这是这些模型的规格。
-
好的,所以驱动器在设计上是错误的,这很不幸。您可能想将其发布为答案。 (您可能已经注意到它正在发生,但大多数软件供应商没有任何理由进行检查。所以可能有很多软件使用 Win32_DiskDrive,可能不是每秒一次,但频率足以影响这些驱动器的使用寿命. 我想知道 Windows 本身多久会这样做一次?)
-
我猜想 Win32_DiskDrive 会转化为对驱动器的多个 I/O 请求。如果是这样,那么可能只有一个 I/O 请求实际上会影响驱动器。例如,它可能会转化为获取模式页面 80h 和 83h(可能还有其他),但可能只有 83h 会导致驱动器写入。如果是这种情况,那么您可以用一个 I/O 请求代替 Win32_DiskDrive。您可以使用 OSR 的 IRP 跟踪器查看实际发出的 I/O 请求。然后,您将编写一个 Win32 程序来发出与 I/O 请求相对应的 IOCTL,并穿插获取 SMART 信息
-
顺便说一句,过滤器驱动程序将是检查信息泄漏的一种更强大的方法。它将看到对驱动器的所有 I/O 请求。泄露信息的程序可以定时将其写入驱动器(以及切换驱动器脱机/联机或类似情况)以避免检测。更好的是,假设没有可移动媒体业务,客户可以通过填充环氧树脂来物理禁用 USB 端口、SD 插槽等。或者某些供应商允许在 BIOS 中禁用端口。
标签: windows powershell vbscript wmi solid-state-drive