ErrorVariable является System.Management.Automation.ErrorRecord
.
Если вы сделаете Get-Member
для этой переменной, вы увидите, что она имеет следующие методы и свойства:
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetObjectData Method void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context), void ISeri...
GetType Method type GetType()
ToString Method string ToString()
writeErrorStream NoteProperty bool writeErrorStream=True
CategoryInfo Property System.Management.Automation.ErrorCategoryInfo CategoryInfo {get;}
ErrorDetails Property System.Management.Automation.ErrorDetails ErrorDetails {get;set;}
Exception Property System.Exception Exception {get;}
FullyQualifiedErrorId Property string FullyQualifiedErrorId {get;}
InvocationInfo Property System.Management.Automation.InvocationInfo InvocationInfo {get;}
PipelineIterationInfo Property System.Collections.ObjectModel.ReadOnlyCollection[int] PipelineIterationInfo {get;}
ScriptStackTrace Property string ScriptStackTrace {get;}
TargetObject Property System.Object TargetObject {get;}
PSMessageDetails ScriptProperty System.Object PSMessageDetails {get=& { Set-StrictMode -Version 1; $this.Exception.InnerException.PSMessageDetails };}
Если вы пропустите Write-Host
и просто закроете свой код
$errmsg
Будет возвращена вся ошибка (цвет ошибки, т. Е. Красный)
Вы можете создать полное сообщение об ошибке, комбинируя различные свойства объекта $errmsg
следующим образом:
$err = "`r`nError: {0}`r`n + CategoryInfo : {1}`r`n + FullyQualifiedErrorId : {2}" -f $errmsg.ErrorDetails, $errmsg.CategoryInfo, $errmsg.FullyQualifiedErrorId
Write-Host $err
Или используйте Here-String для лучшей читаемости:
$err = @"
Error: $($errmsg.ErrorDetails)
+ CategoryInfo : $($errmsg.CategoryInfo)
+ FullyQualifiedErrorId : $($errmsg.FullyQualifiedErrorId)
"@
Write-Host $err
Возможно, к нему добавится еще несколько интересных свойств, но это зависит от вас.