Write an object to the error pipeline. Write error messages along with other information such as an id, object data, and suggested actions.
Syntax
Write-Error [-message] string [-exception Exception] [-category ErrorCategory]
[-errorId string] [-targetObject Object] [-recommendedAction string]
[-categoryActivity string] [-categoryReason string]
[-categoryTargetName string] [-categoryTargetType string]
[CommonParameters]
Write-Error -errorRecord ErrorRecord [-recommendedAction string]
[-categoryActivity string] [-categoryReason string]
[-categoryTargetName string] [-categoryTargetType string]
[CommonParameters]
Key
-Message string
The message text of the error.
-Exception Exception
The exception type of the error. This can be used in place of Message and
ErrorRecord, in which case it should appear as the first parameter.
-Category ErrorCategory
The category of the error:
NotSpecified, OpenError, CloseError, DeviceError, DeadlockDetected,
InvalidArgument, InvalidData, InvalidOperation, InvalidResult, InvalidType,
MetadataError, NotImplemented, NotInstalled, ObjectNotFound, OperationStopped,
OperationTimeout, SyntaxError, ParserError, PermissionDenied, ResourceBusy,
ResourceExists, ResourceUnavailable, ReadError, WriteError, FromStdErr, SecurityError
-ErrorId string
A unique ID to associate with the error.
-TargetObject Object
The object with which the error is associated.
-RecommendedAction string
Describe the recommended response to the error.
-CategoryActivity string
Describe the action which overrides the ErrorCategoryInfo default.
-CategoryReason string
Describes the reason the ErrorCategoryInfo default is overridden.
-CategoryTargetName string
The target name of the ErrorCategoryInfo override.
-CategoryTargetType string
The target type to override the ErrorCategoryInfo default.
-ErrorRecord ErrorRecord
An error record describing details about the error. This can be used in
place of Message and Exception, in which case it should appear as the
first parameter.
CommonParameters:
-Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer -OutVariable.
$error is an array containing recent errors, $error[0] is the most recent.
$? is a boolean variable for executable status, it will be true if an entire script succeded, if any operations generated an error then $? will be false.
Examples
Force a single error using Get-Date and then display the $error[0] variable:
PS C:\> Get-Date | foreach-Object {Write-Error "Demo Error" -errorID T1 -targetobject $_}
PS C:\> $error[0]
“Knowledge rests not upon truth alone, but upon error also” ~ Carl Gustav Jung
Related PowerShell Cmdlets:
Write-Debug - Write a debug message to the host display.
Write-Host - Display objects through the host user interface.
Write-Output - Write an object to the pipeline.
Write-Progress - Display a progress bar.
Write-Verbose - Write a string to the host’s verbose display.
Write-Warning - Write a warning message.