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 InvalidArgumentEste 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().