Formats/System.Management.Automation.ErrorRecord.format.ps1xml
<?xml version="1.0" encoding="utf-8"?>
<Configuration> <ViewDefinitions> <View> <Name>ErrorInstance</Name> <OutOfBand /> <ViewSelectedBy> <TypeName>System.Management.Automation.ErrorRecord</TypeName> </ViewSelectedBy> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <ExpressionBinding> <ScriptBlock> if ($_.FullyQualifiedErrorId -ne "NativeCommandErrorMessage" -and $ErrorView -ne "CategoryView") { $myinv = $_.InvocationInfo if ($myinv -and $myinv.MyCommand) { switch -regex ( $myinv.MyCommand.CommandType ) { ([System.Management.Automation.CommandTypes]::ExternalScript) { if ($myinv.MyCommand.Path) { $myinv.MyCommand.Path + " : " } break } ([System.Management.Automation.CommandTypes]::Script) { if ($myinv.MyCommand.ScriptBlock) { $myinv.MyCommand.ScriptBlock.ToString() + " : " } break } default { if ($myinv.InvocationName -match '^[&\.]?$') { if ($myinv.MyCommand.Name) { $myinv.MyCommand.Name + " : " } } else { $myinv.InvocationName + " : " } break } } } elseif ($myinv -and $myinv.InvocationName) { $myinv.InvocationName + " : " } } </ScriptBlock> </ExpressionBinding> <ExpressionBinding> <ScriptBlock> if ($_.FullyQualifiedErrorId -eq "NativeCommandErrorMessage") { $_.Exception.Message } else { $myinv = $_.InvocationInfo if ($myinv -and ($myinv.MyCommand -or ($_.CategoryInfo.Category -ne 'ParserError'))) { $posmsg = $myinv.PositionMessage } else { $posmsg = "" } if( $_ | Get-Member -Name 'ScriptStackTrace' ) { $stackTraceLines = $_.ScriptStackTrace -split ([Environment]::NewLine) | Select-Object | ForEach-Object { ' {0}' -f $_ } if( $stackTraceLines ) { $posmsg = $stackTraceLines -join ([Environment]::NewLine) } } if ($posmsg -ne "") { $posmsg = "`n" + $posmsg } if ( & { Set-StrictMode -Version 1; $_.PSMessageDetails } ) { $posmsg = " : " + $_.PSMessageDetails + $posmsg } $indent = 4 $width = $host.UI.RawUI.BufferSize.Width - $indent - 2 $errorCategoryMsg = & { Set-StrictMode -Version 1; $_.ErrorCategory_Message } if ($errorCategoryMsg -ne $null) { $indentString = "+ CategoryInfo : " + $_.ErrorCategory_Message } else { $indentString = "+ CategoryInfo : " + $_.CategoryInfo } $posmsg += "`n" foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } } $indentString = "+ FullyQualifiedErrorId : " + $_.FullyQualifiedErrorId $posmsg += "`n" foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } } $originInfo = & { Set-StrictMode -Version 1; $_.OriginInfo } if (($originInfo -ne $null) -and ($originInfo.PSComputerName -ne $null)) { $indentString = "+ PSComputerName : " + $originInfo.PSComputerName $posmsg += "`n" foreach($line in @($indentString -split "(.{$width})")) { if($line) { $posmsg += (" " * $indent + $line) } } } if ($ErrorView -eq "CategoryView") { $_.CategoryInfo.GetMessage() } elseif (! $_.ErrorDetails -or ! $_.ErrorDetails.Message) { $_.Exception.Message + $posmsg + "`n " } else { $_.ErrorDetails.Message + $posmsg } } </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </View> </ViewDefinitions> </Configuration> |