Write-Error
Записывает объект в поток ошибок.
Синтаксис
Write-Error -ErrorRecord <ErrorRecord> [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]
Write-Error [-Message] <string> [-Category {<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>}] [-ErrorId <string>] [-TargetObject <Object>] [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]
Write-Error -Exception <Exception> [-Category {<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>}] [-ErrorId <string>] [-Message <string>] [-TargetObject <Object>] [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]
Описание
Командлет Write-Error записывает ошибку в поток ошибок Windows PowerShell. По умолчанию ошибки отправляются в основную программу для отображения вместе с выводом.
Ошибку можно записать путем отправки строки сообщения об ошибки, объекта ErrorRecord или объекта Exception. С помощью других параметров командлета Write-Error сформируйте запись об ошибке.
Параметры
-Category <ErrorCategory>
Задает категорию ошибки. По умолчанию используется значение "NotSpecified".
Дополнительные сведения о категориях ошибок см. в разделе "Перечисление ErrorCategory" библиотеки MSDN (Microsoft Developer Network) по адресу https://go.microsoft.com/fwlink/?LinkId=143600.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
NotSpecified |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-CategoryActivity <string>
Описывает действие, вызвавшее ошибку.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-CategoryReason <string>
Описывает, каким образом или почему операция вызвала ошибку.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-CategoryTargetName <string>
Задает имя объекта, который обрабатывался во время возникновения ошибки.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-CategoryTargetType <string>
Задает тип .NET объекта, который обрабатывался во время возникновения ошибки.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ErrorId <string>
Задает идентификатор строки для идентификации ошибки. Эта строка должна быть уникальной для конкретной ошибки.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ErrorRecord <ErrorRecord>
Задает объект записи об ошибке, которые включает свойства и описание ошибки.
Чтобы получить объект записи об ошибке, используйте командлет New-Object или воспользуйтесь объектом записи об ошибке из массива, хранящегося в автоматической переменной $Error.
Обязательно? |
true |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Exception <Exception>
Задает исключение, представляющее ошибку.
Вместо указания текста сообщения или записи об исключении можно использовать исключение.
Обязательно? |
true |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Message <string>
Задает текст сообщения об ошибке. Если текст содержит пробелы или специальные символы, его нужно заключить в кавычки. Кроме того, строку сообщения можно передать командлету Write-Error по конвейеру.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
-RecommendedAction <string>
Описывает действие, которое пользователь должен выполнить, чтобы устранить или предотвратить ошибку.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-TargetObject <Object>
Задает объект, который обрабатывался во время возникновения ошибки. Укажите объект (например строку), переменную, содержащую объект, либо команду, которая получает этот объект.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Нет |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.String Строку, содержащую сообщение об ошибке, можно передать командлету Write-Error по конвейеру. |
Выходные данные |
Объект ошибки Командлет Write-Error осуществляет запись только в поток ошибок. Он не возвращает никаких объектов. |
Пример 1
C:\PS>get-childitem | foreach-object { if ($_.gettype().tostring() -eq "Microsoft.Win32.RegistryKey") {write-error "Out-of-band object" -errorID B1 -targetobject $_ } else {$_ } }
Описание
-----------
Эта команда записывает ошибку, если командлет Get-ChildItem возвращает объект типа Microsoft.Win32.RegistryKey, такой как объекты на дисках HKLM и HKCU поставщика реестра Windows PowerShell.
Пример 2
C:\PS>write-error "Access denied."
Описание
-----------
Эта команда записывает ошибку "Отказано в доступе". В команде используется параметр Message для задания сообщения, однако необязательное имя параметра Message в данном случае опущено.
Пример 3
C:\PS>write-error -message "Error: Too many input values." -category InvalidArgument
Описание
-----------
Эта команда записывает ошибку и указывает категорию ошибки.
См. также
Концепции
Write-Debug
Write-Verbose
Write-Output
Write-Host
Write-Progress
Write-Warning