PowerShell Genie

Write-Error

Use Write-Error to write a non-terminating error to the error stream without stopping execution.

Command 1 min read Windows PowerShell 5.1 and PowerShell 7

Documentation: Microsoft Learn — Write-Error

Syntax

1PS> Write-Error [-Message] <String> [-Category <ErrorCategory>] [-ErrorId <String>] [-TargetObject <Object>] [<CommonParameters>]
See the command anatomy

Read the command and its supplied arguments. This example requires real PowerShell or its module; this diagram does not execute it.

Write-Error [-Message] <String> [-Category <ErrorCategory>] [-ErrorId <String>] [-TargetObject <Object>] [<CommonParameters>]
  1. Stage 1Write-Error-Message -Category -ErrorId -TargetObject

    Try it

    Windows PowerShell

    PowerShell example · browser support is limited.

    Execution scope: The full example below requires PowerShell outside this browser. You can edit this runner to use the supported practice commands; unsupported syntax returns an explanation.

    Interactive simulation · fictional data

    Examples

    Write with Write-Error

    1PS> Write-Error 'Configuration file not found'
    Show reference output

    Sample output · fictional data, shaped like the real thing

    Write-Error: Configuration file not found
    + CategoryInfo : NotSpecified
    + FullyQualifiedErrorId : PowerShellGenie.SampleError

    Write-Error -Category ResourceUnavailable

    1PS> Write-Error 'Server unreachable' -Category ResourceUnavailable -TargetObject 'WEB01'
    Show reference output

    Sample output · fictional data, shaped like the real thing

    Write-Error: Server unreachable
    + CategoryInfo : NotSpecified
    + FullyQualifiedErrorId : PowerShellGenie.SampleError

    Write-Error -ErrorId 'BadRetryValue'

    1PS> Write-Error 'Invalid retry count' -ErrorId 'BadRetryValue'
    Show reference output

    Sample output · fictional data, shaped like the real thing

    Write-Error: Invalid retry count
    + CategoryInfo : NotSpecified
    + FullyQualifiedErrorId : PowerShellGenie.SampleError

    Parameters

    Parameter definitions:

    • -Message
    • -Category
    • -ErrorId
    • -TargetObject

    Write-Error on Microsoft Learn

    Practical use and troubleshooting

    Practical scenario: Use Write-Error when you need to write a non-terminating error to the error stream without stopping execution. Start with one identified target and inspect the returned values before extending the operation to a list. Keep the identity in your report so you can trace each result back to the object or path that produced it.

    Common error and fix: A catch block may not run for a non-terminating error. Use -ErrorAction Stop where a terminating failure is required, and preserve the original error details for diagnosis. In an unattended script, capture this failure with its original error record and record which target failed. An empty result and an unsuccessful query must remain distinguishable in the final report.

    See also: Write-Warning. Write-Error records an error; Write-Warning records a warning. A warning does not automatically make a script fail, and a non-terminating error does not automatically enter catch. Read the linked command before substituting it; similar names do not imply identical inputs or output.

    Write-Error reference on Microsoft Learn

    Recap

    Write-Error Use Write-Error to write a non-terminating error to the error stream without stopping execution.

    Next: Write-Debug
    Genie guideWrite-Error

    Use Write-Error to write a non-terminating error to the error stream without stopping execution. The console below is pre-loaded — run it, then change a value and run it again.