Functions/Private/Get-MsGErrorMessage.ps1
|
function Get-MsGErrorMessage { [CmdletBinding()] param( [parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)][System.Management.Automation.ErrorRecord]$ErrorRecord ) # Validate if error message is in json. try { $errorJson = $ErrorRecord.ErrorDetails.Message | ConvertFrom-Json -Depth 10 -ErrorAction 'Stop' # Output JSON error message. if ($errorJson.PSObject.Properties.Name -contains 'error') { $errorMessage = $errorJson | ConvertTo-Json -Depth 10 -Compress } else { $errorMessage = $ErrorRecord.Exception.Message } } catch { $errorMessage = $ErrorRecord.Exception.Message } # Output $errorMessage return $errorMessage } |