Write-Error

オブジェクトをエラー ストリームに書き込みます。

構文

Write-Error -ErrorRecord <ErrorRecord> [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]

Write-Error [-Message] <string> [-Category {<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>}] [-ErrorId <string>] [-TargetObject <Object>] [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]

Write-Error -Exception <Exception> [-Category {<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>}] [-ErrorId <string>] [-Message <string>] [-TargetObject <Object>] [-CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [<CommonParameters>]

説明

Write-Error コマンドレットは、エラーを Windows PowerShell エラー ストリームに書き込みます。既定では、エラーは、出力と共に、表示するホスト プログラムに送信されます。

エラーは、エラー メッセージ文字列、ErrorRecord オブジェクト、または Exception オブジェクトを送信することて書き込むことができます。エラー レコードに値を設定するには、Write-Error の他のパラメーターを使用します。

パラメーター

-Category <ErrorCategory>

このエラーのカテゴリを指定します。既定値は NotSpecified です。

エラー カテゴリの詳細については、MSDN (Microsoft Developer Network) ライブラリの「ErrorCategory Enumeration (ErrorCategory 列挙型)」(https://go.microsoft.com/fwlink/?LinkId=143600) を参照してください。

必須

false

位置

named

既定値

NotSpecified

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CategoryActivity <string>

このエラーの原因になったアクションを記述します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CategoryReason <string>

動作によってエラーが発生した経緯と理由について説明します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CategoryTargetName <string>

エラーが発生したときに処理していたオブジェクトの名前を指定します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-CategoryTargetType <string>

エラーが発生したときに処理していたオブジェクトの .NET 型を指定します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ErrorId <string>

エラーを識別する ID 文字列を指定します。文字列はエラーに固有である必要があります。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ErrorRecord <ErrorRecord>

エラーを記述するプロパティが含まれているエラー レコード オブジェクトを指定します。

エラー レコード オブジェクトを取得するには、New-Object コマンドレットを使用するか、$Error 自動変数内の配列からエラー レコード オブジェクトを取得します。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Exception <Exception>

エラーを表す例外を指定します。

メッセージ テキストまたは例外レコードを指定する代わりに、例外を使用できます。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Message <string>

このエラーのメッセージ テキストを指定します。テキストにスペースまたは特殊文字が含まれている場合は、引用符で囲みます。Write-Error に対してメッセージ文字列をパイプ処理することもできます。

必須

true

位置

1

既定値

なし

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

-RecommendedAction <string>

ユーザーがエラーを解決または防止するために実行するアクションを記述します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-TargetObject <Object>

エラーが発生したときに処理していたオブジェクトを指定します。オブジェクト (文字列など)、オブジェクトが含まれている変数、またはオブジェクトを取得するコマンドを入力します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.String

パイプを使用してエラー メッセージを含む文字列を Write-Error に渡すことができます。

出力

エラー オブジェクト

Write-Error は、エラー ストリームに対してのみ書き込みを行います。このコマンドレットはオブジェクトを返しません。

例 1

C:\PS>get-childitem | foreach-object { if ($_.gettype().tostring() -eq "Microsoft.Win32.RegistryKey") {write-error "Out-of-band object" -errorID B1 -targetobject $_ } else {$_ } }

説明
-----------
このコマンドは、Get-ChildItem コマンドレットにより、Windows PowerShell レジストリ プロバイダーの HKLM: ドライブまたは HKCU ドライブ内のオブジェクトなどの Microsoft.Win32.RegistryKey オブジェクトが返された場合、エラーを書き込みます。





例 2

C:\PS>write-error  "Access denied."

説明
-----------
このコマンドは、"Access denied" というエラーを書き込みます。このコマンドは Message パラメーターを使用してメッセージを指定しますが、オプションの Message パラメーター名は省略します。





例 3

C:\PS>write-error -message "Error: Too many input values." -category InvalidArgument

説明
-----------
このコマンドは、エラーを書き込み、エラー カテゴリを指定します。





関連項目

概念

Write-Debug
Write-Verbose
Write-Output
Write-Host
Write-Progress
Write-Warning