Write-Error (Microsoft.PowerShell.Utility)
Write-Error
- Модуль:
- Microsoft.PowerShell.Utility
Записывает объект в поток ошибок.
Синтаксис
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>]Описание
Командлет Write-Error объявляет о непрерывающейся ошибке. По умолчанию ошибки отправляются в потоке ошибок в хост-программу для отображения вместе с выводом.
Чтобы записать непрерывную ошибку, введите строку сообщения об ошибке, объект ErrorRecord или объект Exception. Используйте другие параметры Write-Error, чтобы заполнить запись об ошибке.
Непрерывные ошибки записывают ошибку в поток ошибок, но не останавливают обработку команды. Если для одного элемента коллекции входных элементов объявлена непрерывная ошибка, команда продолжает обрабатывать другие элементы коллекции.
Чтобы объявить завершающую ошибку, используйте ключевое слово Throw. Дополнительные сведения см. в разделе about_Throw.
Примеры
Пример 1. Запись ошибки для объекта RegistryKey.
Get-ChildItem | ForEach-Object {
if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
{
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
}
else
{
$_
}
}Эта команда объявляет непрерывную ошибку, когда командлет Get-ChildItem возвращает объект Microsoft.Win32.RegistryKey, например объекты в HKLM: или HKCU: диски поставщика реестра PowerShell.
Пример 2. Вывод сообщения об ошибке в консоль
Write-Error "Access denied."Эта команда объявляет непрерывную ошибку и пишет ошибку «Доступ запрещен». Команда использует параметр Message для указания сообщения, но опускает необязательное имя параметра Message.
Пример 3: Выводим ошибку в консоль и указываем категорию
Write-Error -Message "Error: Too many input values." -Category InvalidArgumentЭта команда объявляет непрерывную ошибку и указывает категорию ошибки.
Пример 4. Запись ошибки с использованием объекта 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."Эта команда использует объект Exception для объявления непрерывающейся ошибки.
Первая команда использует хеш-таблицу для создания объекта System.Exception. Он сохраняет объект исключения в переменной $E. Вы можете использовать хеш-таблицу для создания любого объекта типа, имеющего пустой конструктор.
Вторая команда использует командлет Write-Error для объявления непрерывающейся ошибки. Значением параметра Exception является объект Exception в переменной $E.
Параметры
-Category
Указывает категорию ошибки. Значение по умолчанию — NotSpecified. Допустимые значения этого параметра:
- NotSpecified
- OpenError
- CloseError
- DeviceError
- DeadlockDetected
- InvalidArgument
- InvalidData
- InvalidOperation
- InvalidResult
- InvalidType
- MetadataError
- NotImplemented
- NotInstalled
- Объектнотфаунд
- OperationStopped
- OperationTimeout
- SyntaxError
- ParserError
- PermissionDenied
- ResourceBusy
- ResourceExists
- ResourceUnavailable
- ReadError
- WriteError
- Фромстдерр
- SecurityError
- ProtocolError
- ConnectionError
- AuthenticationError
- LimitsExceeded
- QuotaExceeded
- NotEnabled
Сведения о категориях ошибок см. в разделе Перечисление ErrorCategory.
- Тип :
ErrorCategory
- Принятые значения:
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
- Позиция:
Именованный
- Значение по умолчанию:
NotSpecified
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-CategoryActivity
Указывает действие, вызвавшее ошибку.
- Тип :
String
- Псевдонимы:
Activity
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-CategoryReason
Указывает, как и почему действие вызвало ошибку.
- Тип :
String
- Псевдонимы:
Reason
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-CategoryTargetName
Указывает имя объекта, который обрабатывался в момент возникновения ошибки.
- Тип :
String
- Псевдонимы:
TargetName
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-CategoryTargetType
Указывает тип объекта, который обрабатывался в момент возникновения ошибки.
- Тип :
String
- Псевдонимы:
TargetType
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-ErrorId
Указывает строку идентификатора для идентификации ошибки. Строка должна быть уникальной для ошибки.
- Тип :
String
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-ErrorRecord
Указывает объект записи ошибки, представляющий ошибку. Используйте свойства объекта для описания ошибки.
Чтобы создать объект записи ошибки, используйте командлет New-Object или получите объект записи ошибки из массива в автоматической переменной $Error.
- Тип :
ErrorRecord
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Exception
Указывает объект исключения, представляющий ошибку. Используйте свойства объекта для описания ошибки.
Чтобы создать объект исключения, используйте хеш-таблицу или командлет New-Object.
- Тип :
Исключение
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Message
Указывает текст сообщения об ошибке. Если текст содержит пробелы или специальные символы, заключите его в кавычки. Вы также можете передать строку сообщения в Write-Error.
- Тип :
String
- Псевдонимы:
Msg
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-RecommendedAction
Указывает действие, которое должен предпринять пользователь для устранения или предотвращения ошибки.
- Тип :
String
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-TargetObject
Указывает объект, который обрабатывался в момент возникновения ошибки. Введите объект, переменную, содержащую объект, или команду, получающую объект.
- Тип :
Объект
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
Строка
В этот командлет можно передать строку, содержащую сообщение об ошибке.
Выходы
Нет
Этот командлет не возвращает никаких результатов. Он записывает только в поток сообщений об ошибках.
Примечания
Write-Error не меняет значение автоматической переменной $?, поэтому не сигнализирует о завершающей ошибке. Чтобы сигнализировать о завершающей ошибке, используйте метод $PSCmdlet.WriteError().