Поделиться через


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