Búsqueda de sitios web

Write-Error (Microsoft.PowerShell.Utility)


Write-Error

Módulo:
Microsoft.PowerShell.Utility

Escribe un objeto en la secuencia de errores.

Sintaxis

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>]

Descripción

El cmdlet Write-Error declara un error sin terminación. De forma predeterminada, los errores se envían en el flujo de errores al programa host para que se muestren, junto con el resultado.

Para escribir un error sin terminación, ingrese una cadena de mensaje de error, un objeto ErrorRecord o un objeto Exception. Utilice los otros parámetros de Write-Error para completar el registro de error.

Los errores que no terminan escriben un error en la secuencia de errores, pero no detienen el procesamiento del comando. Si se declara un error sin 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, utilice la palabra clave Throw. Para obtener más información, consulte about_Throw.

Ejemplos

Ejemplo 1: escribir 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 sin terminación cuando el cmdlet Get-ChildItem devuelve un objeto Microsoft.Win32.RegistryKey, como los objetos en HKLM: o HKCU: unidades del proveedor de 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 utiliza el parámetro Mensaje para especificar el mensaje, pero omite el nombre del parámetro Mensaje 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 sin terminación y especifica una categoría de error.

Ejemplo 4: escribir un error utilizando un objeto de excepción

$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 utiliza un objeto Exception para declarar un error sin terminación.

El primer comando utiliza una tabla hash para crear el objeto System.Exception. Guarda el objeto de excepción en la variable $E. Puede utilizar una tabla hash para crear cualquier objeto de un tipo que tenga un constructor nulo.

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

Parámetros

-Category

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

  • NotSpecified
  • OpenError
  • CloseError
  • DeviceError
  • DeadlockDetected
  • InvalidArgument
  • InvalidData
  • InvalidOperation
  • InvalidResult
  • InvalidType
  • MetadataError
  • NotImplemented
  • NotInstalled
  • Objeto no encontrado
  • OperationStopped
  • OperationTimeout
  • SyntaxError
  • ParserError
  • PermissionDenied
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • DeStdErr
  • SecurityError
  • ProtocolError
  • ConnectionError
  • AuthenticationError
  • LimitsExceeded
  • QuotaExceeded
  • NotEnabled

Para obtener información sobre las categorías de error, consulte Enumeración de categorías de error.

Tipo :

ErrorCategory

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, Error, desdeStdErr, Error de seguridad, error de protocolo, error de conexión, error de autenticación, límites excedidos, cuota excedida, no habilitado

Posición:

Nombrado

Valor predeterminado:

NotSpecified

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-CategoryActivity

Especifica la acción que provocó el error.

Tipo :

String

Alias:

Activity

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-CategoryReason

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

Tipo :

String

Alias:

Reason

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-CategoryTargetName

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

Tipo :

String

Alias:

TargetName

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-CategoryTargetType

Especifica el tipo de objeto que se estaba procesando cuando ocurrió el error.

Tipo :

String

Alias:

TargetType

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ErrorId

Especifica una cadena de ID para identificar el error. La cadena debe ser exclusiva del error.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-ErrorRecord

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

Para crear un objeto de registro de error, utilice el cmdlet New-Object u obtenga un objeto de registro de error de la matriz en la variable automática $Error.

Tipo :

ErrorRecord

Posición:

0

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Exception

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

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

Tipo :

Excepción

Posición:

0

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

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.

Tipo :

String

Alias:

Msg

Posición:

0

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

True

Aceptar caracteres comodín:

False

-RecommendedAction

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

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-TargetObject

Especifica el objeto que se estaba procesando cuando ocurrió el error. Ingrese el objeto, una variable que contenga el objeto o un comando que obtenga el objeto.

Tipo :

Objeto

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

Entradas

Cadena

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

Salidas

Ninguno

Este cmdlet no devuelve ningún resultado. Sólo 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 señalar un error de terminación, utilice el método $PSCmdlet.WriteError().

Artículos relacionados