Pipeline input
Using the Parameter attribute to set either ValueFromPipeline or ValueFromPipelineByPropertyName sets a parameter up to fill from the input pipeline.
The pipeline is a complex topic and requires a background in the use of named blocks. Named blocks, along with a broader set of examples for pipeline usage, were discussed in Chapter 17, Scripts, Functions, and Script Blocks.
About ValueFromPipeline
ValueFromPipeline allows the entire object to be passed into a parameter from an input pipeline. The following function implements an InputObject parameter, which accepts a pipeline input by using the ValueFromPipeline property of the Parameter attribute:
function Get-InputObject {
[CmdletBinding()]
param (
[Parameter(Mandatory, ValueFromPipeline)]
$InputObject
)
process {
'Input object was of type {0}' -f @(
$InputObject.GetType().FullName
)
}
}
Remember that values read from an...