Skip to content

Commit

Permalink
Rework error processing
Browse files Browse the repository at this point in the history
  • Loading branch information
sethvs committed Feb 7, 2024
1 parent ccaa926 commit 7834635
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 13 deletions.
40 changes: 32 additions & 8 deletions functions/DiskSmartInfo.functions.internal.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,22 @@ function inGetDiskSmartInfo
$initialOffset = 2
$attributeLength = 12

$errorParameters = @{
ErrorVariable = 'cimInstanceErrors'
ErrorAction = 'SilentlyContinue'
}

$parameters = @{}

if ($Session)
{
$parameters.Add('CimSession', $Session)
}

if (($disksSmartData = Get-CimInstance -Namespace $namespaceWMI -ClassName $classSmartData @parameters @cimErrorParameters) -and
($disksThresholds = Get-CimInstance -Namespace $namespaceWMI -ClassName $classThresholds @parameters @cimErrorParameters) -and
($disksFailurePredictStatus = Get-CimInstance -Namespace $namespaceWMI -ClassName $classFailurePredictStatus @parameters @cimErrorParameters) -and
($diskDrives = Get-CimInstance -ClassName $classDiskDrive @parameters @cimErrorParameters))
if (($disksSmartData = Get-CimInstance -Namespace $namespaceWMI -ClassName $classSmartData @parameters @errorParameters) -and
($disksThresholds = Get-CimInstance -Namespace $namespaceWMI -ClassName $classThresholds @parameters @errorParameters) -and
($disksFailurePredictStatus = Get-CimInstance -Namespace $namespaceWMI -ClassName $classFailurePredictStatus @parameters @errorParameters) -and
($diskDrives = Get-CimInstance -ClassName $classDiskDrive @parameters @errorParameters))
{
if ($ShowHistory)
{
Expand Down Expand Up @@ -178,6 +183,10 @@ function inGetDiskSmartInfo
inUpdateHistoricalData -disksSmartData $disksSmartData -disksThresholds $disksThresholds -diskDrives $diskDrives -session $Session
}
}
else
{
inReportErrors -CimErrors $cimInstanceErrors
}
}

function inOverwriteAttributes
Expand Down Expand Up @@ -450,13 +459,28 @@ function inGetHistoricalData
}
}

# function inReportErrors
# {
# foreach ($cimSessionError in $Script:cimSessionErrors)
# {
# $message = "ComputerName: ""$($cimSessionError.OriginInfo.PSComputerName)"". $($cimSessionError.Exception.Message)"
# $exception = [System.Exception]::new($message, $cimSessionError.Exception)
# $errorRecord = [System.Management.Automation.ErrorRecord]::new($exception, $cimSessionError.FullyQualifiedErrorId, $cimSessionError.CategoryInfo.Category, $cimSessionError.TargetObject)
# $PSCmdlet.WriteError($errorRecord)
# }
# }

function inReportErrors
{
foreach ($cimSessionError in $Script:cimSessionErrors)
Param (
$CimErrors
)

foreach ($cimError in $CimErrors)
{
$message = "ComputerName: ""$($cimSessionError.OriginInfo.PSComputerName)"". $($cimSessionError.Exception.Message)"
$exception = [System.Exception]::new($message, $cimSessionError.Exception)
$errorRecord = [System.Management.Automation.ErrorRecord]::new($exception, $cimSessionError.FullyQualifiedErrorId, $cimSessionError.CategoryInfo.Category, $cimSessionError.TargetObject)
$message = "ComputerName: ""$($cimError.OriginInfo.PSComputerName)"". $($cimError.Exception.Message)"
$exception = [System.Exception]::new($message, $cimError.Exception)
$errorRecord = [System.Management.Automation.ErrorRecord]::new($exception, $cimError.FullyQualifiedErrorId, $cimError.CategoryInfo.Category, $cimError.TargetObject)
$PSCmdlet.WriteError($errorRecord)
}
}
15 changes: 10 additions & 5 deletions functions/DiskSmartInfo.functions.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,14 @@ function Get-DiskSmartInfo

begin
{
$Script:cimSessionErrors = @()
# $Script:cimSessionErrors = @()

$Script:cimErrorParameters = @{
ErrorVariable = '+Script:CimSessionErrors'
# $Script:cimErrorParameters = @{
# ErrorVariable = '+Script:CimSessionErrors'
# ErrorAction = 'SilentlyContinue'
# }
$errorParameters = @{
ErrorVariable = 'cimSessionErrors'
ErrorAction = 'SilentlyContinue'
}

Expand Down Expand Up @@ -150,8 +154,9 @@ function Get-DiskSmartInfo
{
foreach ($scd in $sessionsComputersDisks)
{
if ($scd.ComputerName -and -not ($scd.CimSession = New-CimSession -ComputerName $scd.ComputerName @cimErrorParameters))
if ($scd.ComputerName -and -not ($scd.CimSession = New-CimSession -ComputerName $scd.ComputerName @errorParameters))
{
inReportErrors -CimErrors $cimSessionErrors
continue
}

Expand All @@ -178,6 +183,6 @@ function Get-DiskSmartInfo
}
}

inReportErrors
# inReportErrors
}
}

0 comments on commit 7834635

Please sign in to comment.