다음을 통해 공유


Write-Error

오류 스트림에 개체를 씁니다.

구문

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>]

Description

Write-Error cmdlet은 종료하지 않는 오류를 선언합니다. 기본적으로 오류 스트림의 오류는 출력과 함께 표시할 호스트 프로그램으로 전송됩니다.

종료하지 않는 오류를 작성하려면 오류 메시지 문자열, 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 cmdlet이 PowerShell 레지스트리 공급자의 HKLM 또는 HKCU: 드라이브의 개체와 같은 Microsoft.Win32.RegistryKey 개체를 반환할 때 종료하지 않는 오류를 선언합니다.

예제 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 does not contain any XML files."

이 명령은 Exception 개체를 사용하여 종료하지 않는 오류를 선언합니다.

첫 번째 명령은 해시 테이블을 사용하여 System.Exception 개체를 만듭니다. 예외 개체를 $E 변수에 저장합니다. 해시 테이블을 사용하여 null 생성자가 있는 형식의 개체를 만들 수 있습니다.

두 번째 명령은 Write-Error cmdlet을 사용하여 종료하지 않는 오류를 선언합니다. Exception 매개 변수의 값은 $E 변수의 Exception 개체입니다.

매개 변수

-Category

오류의 범주를 지정합니다. 기본값은 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

오류 범주에 대한 자세한 내용은 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
Position:Named
Default value:NotSpecified
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-CategoryActivity

오류를 발생시킨 작업을 지정합니다.

형식:String
별칭:Activity
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-CategoryReason

활동이 오류를 발생시킨 방법 또는 이유를 지정합니다.

형식:String
별칭:Reason
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-CategoryTargetName

오류가 발생했을 때 처리 중인 개체의 이름을 지정합니다.

형식:String
별칭:TargetName
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-CategoryTargetType

오류가 발생했을 때 처리 중인 개체의 형식을 지정합니다.

형식:String
별칭:TargetType
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ErrorId

오류를 식별할 ID 문자열을 지정합니다. 문자열은 오류에 고유해야 합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ErrorRecord

오류를 나타내는 오류 레코드 개체를 지정합니다. 개체의 속성을 사용하여 오류를 설명합니다.

오류 레코드 개체를 만들려면 New-Object cmdlet을 사용하거나 $Error 자동 변수의 배열에서 오류 레코드 개체를 가져옵니다.

형식:ErrorRecord
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Exception

오류를 나타내는 예외 개체를 지정합니다. 개체의 속성을 사용하여 오류를 설명합니다.

예외 개체를 만들려면 해시 테이블을 사용하거나 New-Object cmdlet을 사용합니다.

형식:Exception
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Message

오류의 메시지 텍스트를 지정합니다. 텍스트에 공백이나 특수 문자가 포함된 경우 따옴표로 묶습니다. 메시지 문자열을 Write-Error파이프할 수도 있습니다.

형식:String
별칭:Msg
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-RecommendedAction

사용자가 오류를 해결하거나 방지하기 위해 수행해야 하는 작업을 지정합니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-TargetObject

오류가 발생했을 때 처리 중인 개체를 지정합니다. 개체, 개체를 포함하는 변수 또는 개체를 가져오는 명령을 입력합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

String

오류 메시지가 포함된 문자열을 Write-Error파이프할 수 있습니다.

출력

Error object

Write-Error 오류 스트림에만 씁니다. 개체를 반환하지 않습니다.