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).
As new technologies emerge, it's difficult to see how they will shape and evolve over time. One thing's for sure, though, I don't think anyone predicted computers would eventually develop from this data input and manipulation box:
To this meme generating, 4K 60fps eye-watering, noob crushing, crypto mining, trance-inducing powerhouse:
Now, excuse me while I put on my sunglasses for the remainder of this article.
Same, but Different, but Still the Same
While these two machines may look drastically different, it's like my mom always said: it's what's on the inside that counts. Sure, the IMB PC XT didn't have all the RGB, which is obviously where most of the performance comes from. However, it had a processor, 128KB of RAM, and a motherboard--and it was the first personal computer to come with a built-in hard drive.
Fast forward to today, and once you put on your sunglasses to see past the RGB, you'll see that computers today are still rocking these components. However, the speeds, capacities, and heat generated by these components have vastly increased, which is why we need to keep a watchful eye on our components to ensure they continue to operate at peak performance.
With Great Power Comes Great Responsibility
If you read my recent blog, What Is The PowerShell Equivalent Of Chkdsk, you'll know that, in my opinion, the hard drive (HDD or SDD) 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, which have been one of the most significant computer advancements in the last 15 years, resolve some of the fragility issues of hard disk drives because they don't have any moving parts. However, SSD's 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 SSD's 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?
Monitoring Your Precious Data With PowerShell
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.
The 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.com is full of PowerShell wizards. Thanks to Andrew Pla, who you may have seen in our recent webcasts, for throwing this one together.
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.
Creating a PowerShell Scanner in PDQ Inventory
Now that we've got our PowerShell dialed in, it's time to create a PowerShell scanner in PDQ Inventory. PowerShell scanners are great because they can be configured to run on a schedule, and all the data it returns will be stored in PDQ Inventory for us to view whenever we need it.
Since I want this data collected regularly, we'll create a new scanner and attach it to the existing Standard scan profile.
1. In PDQ Inventory, click Scan Profiles
2. Double-click the Standard scan profile
3. Click Add > PowerShell
4. Give the new scanner a descriptive name
5. Either save the script to your repository in a ps1 file or paste the script into the Script field
6. Click OK twice to save and close the open windows.
That's all there is to it! So, now you can go ahead and run the standard scan profile against your computers to return all that helpful drive data. Once the scan finishes, double-click on any computer in Inventory and then click on the PowerShell menu option.
Finally, ensure you have the correct PowerShell scanner selected to view the results.
Here are the results:
Reducing Your Risk Moving Forward
While this data won't stop us from ever experiencing a drive failure again, it will reduce unexpected failures significantly. So, make sure to review this information periodically to catch drives that are looking to bite the bullet soon. And, as a good rule of thumb, make sure your data is backed up.