PowerShellは、またはでマークされたパラメーターの既定値を読み取り、パイプラインから取得した新しい値を割り当てる前にバックアップを作成します。ValueFromPipeline
ValueFromPipelineByPropertyName
次のコマンドレットを検討してください。
New-Post -Title <string>
Set-Post -InputObject <Post> -Title <string>
以下が適用されます。
New-Post
コマンドレットは、プロパティを持つパイプラインに新しく作成されたオブジェクトを返します。Post
Title
- コマンドレットの
InputObject
プロパティはSet-Post
ValueFromPipeline = true
- コマンドレットの
Title
プロパティSet-Post
は でマークされていValueFromPipelineByPropertyName = true
ます。
次のコマンドでそれらを組み合わせます。
New-Post -Title "Foo" | Set-Post
Set-Post
コマンドレットのプロパティの get アクセサーにブレークポイントを設定するとTitle
、次のスタック トレースが生成されます。

ご覧のとおり、コマンドレットのプロパティを、パイプラインから取得したオブジェクトの対応するプロパティの値にバインドするプロセス中に、メソッドがCmdletParameterBinderController.GetDefaultParameterValue
呼び出されます。Title
Set-Post