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


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