Write-Error

Escribe un objeto en la secuencia de error.

Syntax

Write-Error
     [-Message] <string>
     [-Category <ErrorCategory>]
     [-ErrorId <string>]
     [-TargetObject <Object>]
     [-RecommendedAction <string>]
     [-CategoryActivity <string>]
     [-CategoryReason <string>]
     [-CategoryTargetName <string>]
     [-CategoryTargetType <string>]
     [<CommonParameters>]
Write-Error
     [-Exception] <Exception>
     [-Message <string>]
     [-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>]

Description

El Write-Error cmdlet declara un error de no terminación. De forma predeterminada, los errores se envían en la secuencia de error al programa host que se va a mostrar, junto con el resultado.

Para escribir un error de no terminación, escriba una cadena de mensaje de error, un objeto ErrorRecord o un objeto Exception . Use los demás parámetros de para rellenar el registro de Write-Error error.

Los errores de no terminación escriben un error en la secuencia de errores, pero no detienen el procesamiento de comandos. Si se declara un error de no terminación en un elemento de una colección de elementos de entrada, el comando sigue procesando los demás elementos de la colección.

Para declarar un error de terminación, use la Throw palabra clave . Para obtener más información, consulte about_Throw.

Ejemplos

Ejemplo 1: Escritura de un error para el objeto RegistryKey

Get-ChildItem | ForEach-Object {
    if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
    {
        Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
    }
    else
    {
        $_
    }
}

Este comando declara un error de no terminación cuando el Get-ChildItem cmdlet devuelve un Microsoft.Win32.RegistryKey objeto, como los objetos de o HKLM:HKCU: las unidades del proveedor del Registro de PowerShell.

Ejemplo 2: Escribir un mensaje de error en la consola

Write-Error "Access denied."

Este comando declara un error de no terminación y escribe un error de acceso denegado. El comando usa el parámetro Message para especificar el mensaje, pero omite el nombre del parámetro Message opcional.

Ejemplo 3: Escribir un error en la consola y especificar la categoría

Write-Error -Message "Error: Too many input values." -Category InvalidArgument

Este comando declara un error de no terminación y especifica una categoría de error.

Ejemplo 4: Escritura de un error mediante un objeto Exception

$E = [System.Exception]@{Source="Get-ParameterNames.ps1";HelpLink="https://go.microsoft.com/fwlink/?LinkID=113425"}
Write-Error -Exception $E -Message "Files not found. The $Files location doesn't contain any XML files."

Este comando usa un objeto Exception para declarar un error de no terminación.

El primer comando usa una tabla hash para crear el objeto System.Exception . Guarda el objeto de excepción en la $E variable . Una tabla hash se puede usar para crear cualquier objeto de un tipo que tenga un constructor nulo.

El segundo comando usa el Write-Error cmdlet para declarar un error de no terminación. El valor del parámetro Exception es el objeto Exception de la $E variable .

Parámetros

-Category

Especifica la categoría del error. El valor predeterminado es NotSpecified. Los valores permitidos para este parámetro son los siguientes:

  • NotSpecified
  • OpenError
  • CloseError
  • DeviceError
  • InterbloqueoDetected
  • InvalidArgument
  • InvalidData
  • InvalidOperation
  • InvalidResult
  • InvalidType
  • MetadataError
  • NotImplemented
  • NotInstalled
  • ObjectNotFound
  • Operación detenida
  • OperationTimeout
  • SyntaxError
  • ParserError
  • PermissionDenied
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • FromStdErr
  • SecurityError
  • ProtocolError
  • Conectar ionError
  • AuthenticationError
  • LimitsExceed
  • QuotaExceeded
  • NotEnabled

Para obtener información sobre las categorías de error, vea ErrorCategory (enumeración).

Type:ErrorCategory
Accepted values: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, ProtocolError, ConnectionError, AuthenticationError, LimitsExceeded, QuotaExceeded, NotEnabled
Position:Named
Default value:NotSpecified
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryActivity

Especifica la acción que provocó el error.

Type:String
Aliases:Activity
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryReason

Especifica cómo o por qué la actividad provocó el error.

Type:String
Aliases:Reason
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryTargetName

Especifica el nombre del objeto que se estaba procesando cuando se produjo el error.

Type:String
Aliases:TargetName
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CategoryTargetType

Especifica el tipo del objeto que se estaba procesando cuando se produjo el error.

Type:String
Aliases:TargetType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorId

Especifica una cadena de identificación para identificar el error. La cadena debe ser única para el error.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorRecord

Especifica un objeto de registro de error que representa el error. Use las propiedades del objeto para describir el error.

Para crear un objeto de registro de errores, use el New-Object cmdlet o obtenga un objeto de registro de errores de la matriz en la $Error variable automática.

Type:ErrorRecord
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Exception

Especifica un objeto de excepción que representa el error. Use las propiedades del objeto para describir el error.

Para crear un objeto de excepción, use una tabla hash o use el New-Object cmdlet .

Type:Exception
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Message

Especifica el texto del mensaje de error. Si el texto incluye espacios o caracteres especiales, entrecomíllelo. También puede canalizar una cadena de mensaje a Write-Error.

Type:String
Aliases:Msg
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-RecommendedAction

Especifica la acción que el usuario debe realizar para resolver o evitar el error.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetObject

Especifica el objeto que se estaba procesando cuando se produjo el error. Escriba el objeto , una variable que contiene el objeto o un comando que obtiene el objeto .

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

Puede canalizar una cadena que contenga un mensaje de error a este cmdlet.

Salidas

None

Este cmdlet no devuelve ningún resultado. Solo escribe en el flujo de mensajes de error.

Notas

Write-Error no cambia el valor de la $? variable automática, por lo que no indica una condición de error de terminación. Para indicar un error de terminación, use el método $PSCmdlet.WriteError().