Compartir a través de


Write-Error

Escribe un objeto en la secuencia de errores.

Sintaxis

NoException (Es el valor predeterminado).

Write-Error
    [-Message] <string>
    [-Category <ErrorCategory>]
    [-ErrorId <string>]
    [-TargetObject <Object>]
    [-RecommendedAction <string>]
    [-CategoryActivity <string>]
    [-CategoryReason <string>]
    [-CategoryTargetName <string>]
    [-CategoryTargetType <string>]
    [<CommonParameters>]

WithException

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

ErrorRecord

Write-Error
    [-ErrorRecord] <ErrorRecord>
    [-RecommendedAction <string>]
    [-CategoryActivity <string>]
    [-CategoryReason <string>]
    [-CategoryTargetName <string>]
    [-CategoryTargetType <string>]
    [<CommonParameters>]

Description

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

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 Write-Error para rellenar el registro de 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 continúa procesando los demás elementos de la colección.

Para declarar un error de terminación, use la palabra clave throw. Para obtener más información, vea 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 cmdlet Get-ChildItem devuelve un objeto Microsoft.Win32.RegistryKey, como los objetos de la HKLM: o las unidades de HKCU: 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 de parámetro opcional Message.

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 variable $E. Puede usar una tabla hash para crear cualquier objeto de un tipo que tenga un constructor NULL.

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

Parámetros

-Category

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

  • No especificado
  • OpenError
  • CloseError
  • DeviceError
  • InterbloqueoDetected
  • InvalidArgument
  • Datos no válidos
  • Operación no válida
  • Resultado no válido
  • TipoInválido
  • MetadataError
  • No Implementado
  • NotInstalled
  • ObjetoNoEncontrado
  • Operación detenida
  • OperationTimeout
  • SintaxisError
  • ParserError
  • PermisoDenegado
  • ResourceBusy
  • ResourceExists
  • RecursoNo disponible
  • ReadError
  • WriteError
  • DesdeStdErr
  • Error de seguridad
  • ProtocolError
  • ConnectionError
  • AuthenticationError
  • LimitsExceed
  • QuotaExceeded
  • NotEnabled

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

Propiedades del parámetro

Tipo:ErrorCategory
Valor predeterminado:NotSpecified
Valores aceptados: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
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

NoException
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
WithException
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-CategoryActivity

Especifica la acción que provocó el error.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:Actividad

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-CategoryReason

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:Motivo

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-CategoryTargetName

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:TargetName

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-CategoryTargetType

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:TargetType (Tipo de destino)

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ErrorId

Especifica una cadena de identificador para identificar el error. La cadena debe ser única para el error.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

NoException
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
WithException
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ErrorRecord

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

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

Propiedades del parámetro

Tipo:ErrorRecord
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ErrorRecord
Posición:0
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 cmdlet New-Object.

Propiedades del parámetro

Tipo:Exception
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

WithException
Posición:0
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Message

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:Msg

Conjuntos de parámetros

NoException
Posición:0
Mandatory:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
WithException
Posición:0
Mandatory:False
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-RecommendedAction

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 .

Propiedades del parámetro

Tipo:Object
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

NoException
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
WithException
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

String

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

Salidas

None

Este cmdlet no devuelve ninguna salida. Solo escribe en el flujo de mensajes de error.

Notas

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