다음을 통해 공유


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

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 레지스트리 공급자의 Microsoft.Win32.RegistryKey 또는 HKLM: 드라이브에 있는 개체와 같은 HKCU: 개체를 반환할 때 종료가 아닌 오류를 선언합니다.

예제 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 변수에 저장합니다. 해시 테이블을 사용하여 null 생성자가 있는 형식의 개체를 만들 수 있습니다.

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

매개 변수

-Category

오류의 범주를 지정합니다. 기본값은 notSpecified. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 지정되지 않음
  • 열기 오류
  • 닫기 오류
  • 장치 오류
  • 교착 상태 감지됨
  • InvalidArgument
  • 유효하지 않은 데이터
  • 잘못된 작업
  • 유효하지 않은 결과
  • 유효하지 않은 유형
  • 메타데이터 오류
  • 구현되지 않음
  • 설치되지 않음
  • ObjectNotFound
  • 작업 중지됨
  • 작업 시간 초과
  • 구문 오류
  • 파서 오류
  • 권한 거부됨
  • 자원바쁨
  • 리소스Exists
  • 리소스사용할 수 없음
  • 읽기 오류
  • 쓰기 오류
  • FromStdErr
  • 보안 오류
  • 프로토콜 오류
  • ConnectionError
  • AuthenticationError
  • 한도초과됨
  • 할당량 초과
  • 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
별칭:활동

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-CategoryReason

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False
별칭:이유

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-CategoryTargetName

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False
별칭:타겟명

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-CategoryTargetType

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False
별칭:해당 유형

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-ErrorId

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

NoException
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False
WithException
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-ErrorRecord

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

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

매개 변수 속성

형식:ErrorRecord
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

ErrorRecord
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Exception

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

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

매개 변수 속성

형식:Exception
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

WithException
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Message

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False
별칭:메시지

매개 변수 집합

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

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

String

오류 메시지가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다. 오류 메시지 스트림에만 씁니다.

참고

Write-Error $? 자동 변수의 값을 변경하지 않으므로 종료 오류 조건을 알리지 않습니다. 종료 오류를 알리려면 $PSCmdlet.WriteError() 메서드를 사용합니다.