I have MSI laptop with SSD primary and HDD secondary, HDD goes to sleep in 30s. It is so frustrating every time I do something I have to wait a second or two, cause I keep only system on ssd the rest is on hdd. Found no way to adjust it in windows settings etc.
However, I worked off the Task Schedule approach that I found on internet for not letting external HDD to go to sleep HERE. There was a problem though, cause Scheduler wont allow <1min interval. So I wrote vbs script that copies 3 times at 0, 20 and 40s:
keepspinning.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "C:\Temp\keepspinning.txt", "D:\", True
WScript.Sleep 20000
fso.CopyFile "C:\Temp\keepspinning.txt", "D:\", True
WScript.Sleep 20000
fso.CopyFile "C:\Temp\keepspinning.txt", "D:\", True
that I trigger at logon from Scheduler and run at 1min interval.
And that was the only way I came up with to deal with this annoyance, and it is safer for hdd not to spin up so much.
Hope it helps somebody.
Since, Jim asked about just reading, the following worked - open file for writing, you need to have the file on D: before you can run it:
Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\keepspinning.txt",2)
objFileToWrite.Close
Set objFileToWrite = Nothing
WScript.Sleep 20000
Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\keepspinning.txt",2)
objFileToWrite.Close
Set objFileToWrite = Nothing
WScript.Sleep 20000
Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\keepspinning.txt",2)
objFileToWrite.Close
Set objFileToWrite = Nothing