Write-Error
Escribe un objeto en la secuencia de error.
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>]
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
- ConnectionError
- AuthenticationError
- LimitsExceed
- QuotaExceeded
- NotEnabled
Para obtener información sobre las categorías de error, vea ErrorCategory (enumeración).
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, WriteError, FromStdErr, SecurityError, ProtocolError, ConnectionError, AuthenticationError, LimitsExceeded, QuotaExceeded, NotEnabled |
Posición: | Named |
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: | Named |
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: | Named |
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 se produjo el error.
Tipo: | String |
Alias: | TargetName |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CategoryTargetType
Especifica el tipo del objeto que se estaba procesando cuando se produjo el error.
Tipo: | String |
Alias: | TargetType |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ErrorId
Especifica una cadena de identificación para identificar el error. La cadena debe ser única para el error.
Tipo: | String |
Posición: | Named |
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. 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.
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. 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 .
Tipo: | Exception |
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 de error. Si el texto incluye espacios o caracteres especiales, entrecomíllelo. 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: | Named |
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 se produjo el error. Escriba el objeto , una variable que contiene el objeto o un comando que obtiene el objeto .
Tipo: | Object |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
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().