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.
$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.
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
Write-Debug - Write a debug message to the host display.
Write-Host - Display objects through the host user interface.
Write-Information - Write to the information data stream (6).
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.