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