Marli-Smartdata.ps1

function Marli-Smartdata{
$ErrorActionPreference = "SilentlyContinue"
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$testadmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if ($testadmin -eq $false) {
Write-Host 'You must start this Command as Administrator!' -ForegroundColor Red
break
}
 ################################################################################################
 
 $Smartdata = @()
 Foreach ($Disk in Get-Disk)
 {
  $Line = '' | Select-Object Disk, ReadErrorsCorrected, ReadErrorsTotal, ReadErrorsUncorrected, WriteErrorsCorrected, WriteErrorsTotal, WriteErrorsUncorrected
  $Line.Disk =  $Disk.FriendlyName
  Foreach ($error in $Disk | Get-StorageReliabilityCounter | Select-Object -Property *error*)
  {
   $Line.ReadErrorsCorrected = $error.ReadErrorsCorrected
   $Line.ReadErrorsTotal = $error.ReadErrorsTotal
   $Line.ReadErrorsUncorrected = $error.ReadErrorsUncorrected
   $Line.WriteErrorsCorrected = $error.WriteErrorsCorrected
   $Line.WriteErrorsTotal = $error.WriteErrorsTotal
   $Line.WriteErrorsUncorrected = $error.WriteErrorsUncorrected
   $Smartdata += $Line
  } 
 }
 return $Smartdata
}