--- Preface: ---
I believe that a PowerShell solution would meet your needs. Unfortunately, there doesn't appear to be a way of obtaining all S.M.A.R.T. information available from various storage devices via PowerShell only, as PowerShell's is a rather generic implentation of the functionality, and S.M.A.R.T. is varied in its implementation across storage device vendors.
Having said that, the method described below should satisfy the key requirements of typical S.M.A.R.T. checks performed by users, including predicted lifespan, reallocated and uncorrectable sectors, etc., though using rather generic PowerShell terminology (e.g. lifespan = "Wear").
--- Information: ---
With a combination of two PowerShell cmdlets, we can easily view some of the the S.M.A.R.T. data offered by storage devices:
Get-StorageReliabilityCounter
"The Get-StorageReliabilityCounter cmdlet gets the storage reliability
counters for the specified disk or physical disk. These counters
include information about such things as the device temperature,
errors, wear, and length of time the device has been in use."
This is the cmdlet that will actually return the S.M.A.R.T data we seek. However, unlike many other cmdlets you may be familiar with, this cmdlet needs to be pointed to the target disk(s) by way of a PowerShell object(s). (If you're new to PowerShell, this is not as complex as it may sound, so fear not.)
Get-Disk
"The Get-Disk cmdlet gets one or more Disk objects visible to the
operating system, or optionally a filtered list."
This is the cmdlet we will use to provide the required PowerShell object(s), so that Get-StorageReliabilityCounter knows which disk(s) to query.
--- Code: ---
As with anything, there are multiple ways to actually execute the code, so I'm just going to provide code to obtain the desired information in the simplest way possible, in my opinion.
For simple S.M.A.R.T. information on all local disks (run as Administrator):
Get-Disk | Get-StorageReliabilityCounter
Sample output:
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter
DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
1 0 0 5505
2 0 0 572
0 0 2799
For extended S.M.A.R.T. information on all local disks (run as Administrator):
Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"
Truncated sample output:
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"
DeviceId : 1
FlushLatencyMax : 46
LoadUnloadCycleCount :
LoadUnloadCycleCountMax :
ManufactureDate :
PowerOnHours : 5505
ReadErrorsCorrected : 0
ReadErrorsTotal : 0
ReadErrorsUncorrected : 0
ReadLatencyMax : 231
StartStopCycleCount :
StartStopCycleCountMax :
Temperature : 27
TemperatureMax : 0
Wear : 0
WriteErrorsCorrected :
WriteErrorsTotal :
WriteErrorsUncorrected :
WriteLatencyMax : 69
PSComputerName :
As you can see, listed are some of those desirable indicators that may or may not allow you to circumvent disaster.
--- tl;dr: ---
Run
Get-Disk | Get-StorageReliabilityCounter
or
Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"
as Administrator to get most important S.M.A.R.T. information.