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
cmdlet은 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
{
$_
}
}
이 명령은 cmdlet이 PowerShell 레지스트리 공급자의 드라이브에 HKCU:
있는 HKLM:
개체와 같은 개체를 반환 Microsoft.Win32.RegistryKey
할 때 Get-ChildItem
종료하지 않는 오류를 선언합니다.
예제 2: 콘솔에 오류 메시지 작성
Write-Error "Access denied."
이 명령은 종료되지 않는 오류를 선언하고 "액세스 거부됨" 오류를 씁니다. 이 명령은 메시지 매개 변수를 사용하여 메시지를 지정하지만 선택적 메시지 매개 변수 이름은 생략합니다.
예제 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 생성자가 있는 형식의 개체를 만들 수 있습니다.
두 번째 명령은 cmdlet을 Write-Error
사용하여 종료하지 않는 오류를 선언합니다. Exception 매개 변수의 값은 변수의 Exception 개체입니다$E
.
매개 변수
-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
오류를 나타내는 오류 레코드 개체를 지정합니다. 개체의 속성을 사용하여 오류를 설명합니다.
오류 레코드 개체를 만들려면 cmdlet을 New-Object
사용하거나 자동 변수의 배열에서 오류 레코드 개체를 $Error
가져옵니다.
형식: | ErrorRecord |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Exception
오류를 나타내는 예외 개체를 지정합니다. 개체의 속성을 사용하여 오류를 설명합니다.
예외 개체를 만들려면 해시 테이블을 사용하거나 cmdlet을 New-Object
사용합니다.
형식: | Exception |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Message
오류 메시지 텍스트를 지정합니다. 텍스트에 공백이나 특수 문자가 포함되어 있으면 따옴표로 묶습니다. 메시지 문자열을 .에 파이프할 Write-Error
수도 있습니다.
형식: | String |
별칭: | Msg |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-RecommendedAction
사용자가 오류를 해결하거나 방지하기 위해 수행해야 하는 작업을 지정합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-TargetObject
오류가 발생했을 때 처리 중인 개체를 지정합니다. 개체, 개체를 포함하는 변수 또는 개체를 가져오는 명령을 입력합니다.
형식: | Object |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
오류 메시지가 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.
출력
None
이 cmdlet은 출력을 반환하지 않습니다. 오류 메시지 스트림에만 씁니다.
참고
Write-Error
는 자동 변수의 $?
값을 변경하지 않으므로 종료 오류 조건에 대한 신호를 표시하지 않습니다. 종료 오류를 알리려면 $PSCmdlet.WriteError() 메서드를 사용합니다.
관련 링크
PowerShell