TL;DR: PDQ PowerShell scanners can help sysadmins monitor drive health across their fleet without manually checking each device. By collecting data like drive type, health status, wear, read errors, and temperature, teams can spot early warning signs, reduce surprise failures, and protect critical data with better visibility and backups.
I love to see how technology evolves over time. For example, cars went from nothing more than a motor, a seat, and a steering mechanism, to world-class sound systems, massaging seats, and fully autonomous self-driving (well, almost). Computers have come a long way too, but the parts storing your data still deserve regular attention.
Why drive health still matters on modern computers
Drive health still matters because the drive is where your users’ data, applications, and operating system live. Sure, computers have come a long way since the IBM PC XT, which had 128 KB of RAM and no RGB.
But the basic idea has not changed much. Modern computers still rely on drives to store critical data, and those drives now handle larger capacities, faster workloads, and more heat than ever. That makes drive monitoring a practical way to catch early warning signs before a failure turns into a very bad day.
Why should sysadmins monitor drive health?
Sysadmins should monitor drive health because drive failure can lead to data loss, downtime, and very sad users.
In my opinion, the hard drive (HDD or SSD) is the most critical component in computers. My reasoning is simple. The hard drive is responsible for storing our precious data. If you've ever had a hard drive fail, you know what true despair feels like.
While drives have progressed leaps and bounds in recent years, they are still a bit on the fragile side. For example, I once had an external hard drive that I set down a little too harshly while it was running … it died. I wasn't being careless or anything, but it's not like I was setting down a newborn for a nap. I just set it down, and the next thing I heard was a subtle, steady clicking sound, indicating my drive had just given up the ghost.
Solid-state drives resolve some of the fragility issues of hard disk drives because they don't have any moving parts. However, SSDs have their own disadvantages that users need to be aware of. For one, data recovery can be much more difficult if your SSD fails versus a traditional HDD. Another shortcoming is that SSDs have a limited life span. Cells on an SSD have a limited number of writes they can perform before they become unusable.
So, what can you do to ensure your drives are in good condition, especially when you may have hundreds or thousands of computers you manage?
How can you check drive health with PowerShell?
You can use PowerShell to check drive health by collecting physical disk details and storage reliability counters. These commands can return useful indicators like drive type, health status, operational status, wear, read errors, current temperature, and maximum temperature.
While you can never predict 100% of drive failures, it is possible to predict a good majority of them. Using PowerShell, we can collect a lot of valuable diagnostic data from our drives, which will help us know if one will soon be kicking the bucket. Here are the PowerShell commands we'll be focusing on.
Get-PhysicalDiskGet-PhysicalDisk | Get-StorageReliabilityCounterThe first command, Get-PhysicalDisk, is excellent at returning identification data about the drives installed in your computer.
The second command, Get-StorageReliabilityCounter, will return a wealth of information about the health of the drives when added to the first command.
Here's an example of some of the useful data that can be returned with Get-PhysicalDisk.

And here's an example of some of the helpful data that can be returned with Get-PhysicalDisk | Get-StorageReliabilityCounter.

As you can see, we're able to return some excellent identification and drive condition data. Unfortunately, since these are two separate commands, we'll need to use some PowerShell wizardry to combine the returned information. Luckily, PDQ is full of PowerShell wizards. Thanks to Andrew Pla, who you may know from The PowerShell Podcast, for throwing this one together.
$disks = get-physicaldisk
foreach($disk in $disks){
$storageCounter = $disk | Get-StorageReliabilityCounter
[pscustomobject]@{FriendlyName = $disk.FriendlyName
MediaType = $disk.MediaType
HealthStatus = $disk.HealthStatus
OperationalStatus = $disk.OperationalStatus
Wear = $storageCounter.Wear
ReadErrorsTotal = $storageCounter.ReadErrorsTotal
Temperature = $storageCounter.Temperature
TemperatureMax = $storageCounter.TemperatureMax}}
Look at all that sweet data. While this is super helpful stuff, nobody wants to run this command manually, especially if you manage hundreds or thousands of computers, so it's time to bring in the big guns.
How do you create a PowerShell Scanner in PDQ?
Now that we've got our PowerShell dialed in, it's time to create a PowerShell Scanner in PDQ. PowerShell scanners can run on a schedule, collect drive health data across your fleet, and store the results in PDQ so you can review them whenever you need them.
1. In PDQ Connect, click Scanners.

2. Click Create scanner.

3. Name your scanner and select PowerShell from the Type drop-down menu.

4. Input your script or import it as a .ps1 file.

5. Select a test device using the drop-down menu. Then, click Run script to validate the output.

6. Once validated, click Save.

That's it! Now, you have an easy way to return device health info across your fleet.
How does drive health monitoring reduce risk?
While this data won't prevent every drive failure, it can help reduce surprise failures by giving you visibility into warning signs like wear, read errors, and temperature issues. Review this information periodically to catch drives that are looking to bite the bullet soon. And, of course, always make sure your data is backed up for when those inevitable failures happen.
Manage Windows & macOS devices from anywhere
With PDQ Connect, get real-time visibility into remote and local devices, deploy software, remediate vulnerabilities, automate routine maintenance, and remotely troubleshoot endpoints from one easy-to-use platform.




