Home
> Programming > New S.M.A.R.T Monitor Tool for Hard Drive Health
New S.M.A.R.T Monitor Tool for Hard Drive Health

Simon's SmartInfo Monitor
Further to my post on S.M.A.R.T, I got around to making a simple little HTA which uses my SMART class to display useful info on your drives. You can get it from CTOGoneWild. It gives you an example of how to make a useful HTA, and how to embed VBScript classes in a way where they can be used in either a normal VBScript, or a HTA itself. You can also find the SmartDump script which does much the same thing, but outputs to a file name (either set on the command line, or in the script itself).
Categories: Programming
Programming
Hi Simon,
Since a few years, i have been interested in your studies on the recovery of SMART information from a hard drive and I like your work “SmartDisplay.hta” (nice aspect and very clear display).
Unfortunately, on all the drives I was able to test and concerning the number of hours of operation (id009 – POH), the displayed value is bad for me.
For the POH, the correct syntax (current for SATA drives) seems to be:
sData = Split(Join(.VendorSpecific, “,”), “,”)
item = 9
(sData(item + 8) * 65536 + sData(item + 7) * 4096 + sData(item + 6) * 256 + sData(item + 5))
and not (line 805) : tmpArray(4,j)
For the pleasure of your many fans I am, I hope this information will make you want to update your scripting work on SMART disks…
Best regards,
Stéphane
Good catch! I didn’t realize that the value could span multiple bytes. The actual oversight is in the section “calculate and display smart attributes for current drive number” – the arrDriveRawData should be set as below.
Let me know if that works for you and gives the desired result.
arrDriveRawData(arrVendorSpecificData(i*12+2))= (arrVendorSpecificData(i*12+12)*2^40) + (arrVendorSpecificData(i*12+11)*2^32) +(arrVendorSpecificData(i*12+10)*2^24) + (arrVendorSpecificData(i*12+9)*2^16) + (arrVendorSpecificData(i*12+8)*2^8) + (arrVendorSpecificData(i*12+7))
I just made the test, with your modification the return of the value of id 009 (POH) is now GOOD.
But, now this has distorted the return of several IDs that have erroneous values, such as (in my case, same problem with HDD SATA and SSD):
ID001: 226117360 instead of 240
ID004: 1940 instead of 148
ID007: 10157225 instead of 169
ID012: 640 instead of 128
ID190: 454361115 instead of 29 (it’s very hot !)
ID192: 446 instead of 190
ID193: 3863 instead of 23
ID194: 68719476763 instead of 29 (idem)