Public/Get-SurfBoardForwardErrorCorrection.ps1
Function Get-SurfBoardForwardErrorCorrection { [CmdletBinding(SupportsShouldProcess=$True)] Param ( [Parameter(ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$true)] [Alias("CN", "SurfBoard", "SB")] [String[]] $ComputerName = $surfboard ) Begin { Write-Verbose "Begin $($MyInvocation.MyCommand)" } Process { if ($PSCmdlet.ShouldProcess($ComputerName)){ $codewords = Get-SurfBoardSignalStatus -ComputerName $ComputerName $fecs = @() $unerrored = $($codewords.'Total Unerrored Codewords' | Measure-Object -Sum).Sum $corrected = $($codewords.'Total Correctable Codewords' | Measure-Object -Sum).Sum $uncorrected = $($codewords.'Total Uncorrectable Codewords' | Measure-Object -Sum).Sum $errored = $corrected + $uncorrected $total = $unerrored + $errored $fec = [ordered]@{} $fec.'Channel ID' = "All" $fec.'Unerrored (%)' = $unerrored/$total*100 $fec.'Errored (%)' = $errored/$total*100 $fec.'Errors Corrected (%)' = $corrected/$errored*100 $fec.'Errors Uncorrected (%)' = $uncorrected/$errored*100 $fecs += $fec foreach ($codeword in $codewords) { $fec = [ordered]@{} $channel = $codeword.'Channel ID' $unerrored = $codeword.'Total Unerrored Codewords' $corrected = $codeword.'Total Correctable Codewords' $uncorrected = $codeword.'Total Uncorrectable Codewords' $errored = $corrected + $uncorrected $total = $unerrored + $errored $fec.'Channel ID' = $channel $fec.'Unerrored (%)' = $unerrored/$total*100 $fec.'Errored (%)' = $errored/$total*100 $fec.'Errors Corrected (%)' = $corrected/$errored*100 $fec.'Errors Uncorrected (%)' = $uncorrected/$errored*100 $fecs += $fec } Return $fecs } } End { Write-Verbose "End $($MyInvocation.MyCommand)" } } Set-Alias -Name gsbfec -Value Get-SurfBoardForwardErrorCorrection |