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 |
입력
오류 메시지가 포함된 문자열을 Write-Error
파이프할 수 있습니다.
출력
Error object
Write-Error
오류 스트림에만 씁니다. 개체를 반환하지 않습니다.