Write-Error
Записывает объект в поток ошибок.
Синтаксис
NoException (по умолчанию)
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>]
Описание
Командлет 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."
Эта команда использует объект исключения
Первая команда использует хэш-таблицу для создания объекта System.Exception $E
. Хэш-таблица можно использовать для создания любого объекта типа с конструктором NULL.
Вторая команда использует командлет Write-Error
для объявления неустранимой ошибки. Значение параметра исключения
Параметры
-Category
Указывает категорию ошибки. Значение по умолчанию — NotSpecified. Допустимые значения для этого параметра:
- Не указано
- Ошибка OpenError
- Ошибка CloseError
- Ошибка устройства
- ВзаимоблокировкаDetected
- InvalidArgument
- Недействительные данные
- Недопустимая операция
- НедействительныйРезультат
- НеверныйТип
- Ошибка метаданных
- Не реализовано
- NotInstalled
- ObjectNotFound (ОбъектНеНайден)
- ОперацияStopped
- Время ожидания операции
- СинтаксисError
- Ошибка парсера
- PermissionDenied
- РесурсЗанят
- РесурсСуществует
- РесурсНедоступно
- Ошибка чтения
- Ошибка записи
- FromStdErr
- SecurityError (Ошибка безопасности)
- ProtocolError
- ConnectionError
- AuthenticationError
- ОграниченияExceed
- Квота превышена
- NotEnabled
Сведения о категориях ошибок см. в перечисления errorCategory.
Свойства параметра
Тип: | ErrorCategory |
Default value: | NotSpecified |
Допустимые значения: | 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 |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
NoException
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
WithException
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-CategoryActivity
Указывает действие, вызвавшее ошибку.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | Активность |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-CategoryReason
Указывает, как или почему действие вызвало ошибку.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | Причина |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-CategoryTargetName
Указывает имя объекта, обрабатываемого при возникновении ошибки.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | TargetName |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-CategoryTargetType
Указывает тип объекта, который обрабатывается при возникновении ошибки.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | Тип Цели |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-ErrorId
Указывает строку идентификатора для идентификации ошибки. Строка должна быть уникальной для ошибки.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
NoException
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
WithException
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-ErrorRecord
Указывает объект записи об ошибке, представляющий ошибку. Используйте свойства объекта для описания ошибки.
Чтобы создать объект записи об ошибке, используйте командлет New-Object
или получите объект записи ошибок из массива в $Error
автоматической переменной.
Свойства параметра
Тип: | ErrorRecord |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ErrorRecord
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Exception
Указывает объект исключения, представляющий ошибку. Используйте свойства объекта для описания ошибки.
Чтобы создать объект исключения, используйте хэш-таблицу или используйте командлет New-Object
.
Свойства параметра
Тип: | Exception |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
WithException
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Message
Задает текст сообщения об ошибке. Если текст содержит пробелы или специальные символы, заключите его в кавычки. Можно также передать строку сообщения в Write-Error
.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | Msg |
Наборы параметров
NoException
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
WithException
Position: | 0 |
Обязательно: | False |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-RecommendedAction
Указывает действие, которое пользователь должен предпринять, чтобы устранить или предотвратить ошибку.
Свойства параметра
Тип: | String |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-TargetObject
Указывает объект, обрабатываемый при возникновении ошибки. Введите объект, переменную, содержащую объект, или команду, которая получает объект.
Свойства параметра
Тип: | Object |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
NoException
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
WithException
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
String
Вы можете передать строку, содержащую сообщение об ошибке в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные. Он записывает только в поток сообщений об ошибке.
Примечания
Write-Error
не изменяет значение автоматической переменной $?
, поэтому она не сигнализирует о завершающейся ошибке. Чтобы сигнализировать об ошибке конца, используйте метод $PSCmdlet.WriteError().